VBA_dev_Anne_Marie
XLDnaute Occasionnel
Bonjour,
J'ai un comportement étrange de ADODB pendant l'affichage de valeur : il y a des ligne en double, alors que la même extraction n'affiche pas de doublons quand je l'exécute sur sas. Par exemple, sur la première ligne j'ai la donnée commençant par A, ensuite, à partir de la ligne 100, j'ai la même donnée commençant par A, alors que "distinct" et "order by" sont bien appliqués.
Peut-être l'anomalie est dans la partie Do While Not RECSET2.EOF.
Merci pour votre aide.
Voici mon code.
J'ai un comportement étrange de ADODB pendant l'affichage de valeur : il y a des ligne en double, alors que la même extraction n'affiche pas de doublons quand je l'exécute sur sas. Par exemple, sur la première ligne j'ai la donnée commençant par A, ensuite, à partir de la ligne 100, j'ai la même donnée commençant par A, alors que "distinct" et "order by" sont bien appliqués.
Peut-être l'anomalie est dans la partie Do While Not RECSET2.EOF.
Merci pour votre aide.
Voici mon code.
VB:
Public Sub GET_INFO_CONTRAT(ByRef strQ As String)
Call GET_INFO_0
Dim xlRow As Integer
Dim RECSET2 As New ADODB.Recordset
Worksheets("1 - Résultat").Activate
ActiveWindow.DisplayGridlines = Not (ActiveWindow.DisplayGridlines)
ActiveWindow.DisplayGridlines = False
Call CONNEXION_P("xxx", "xxx", "xxx")
RECSET2.Open "select distinct doss.no_police as contrat, decode(pers.s_raisonsoc,null,pers.LP_CIVILITE||' '||pers.s_nom,pers.s_raisonsoc) as nom, decode (pers.s_raisonsoc,null,pers.s_prenom,pers.s_raisonsoc) as prenom," & _
" prod.cd_produit as code_produit, prod.lb_long as libelle_prod, proto.cd_protocole as code_proto from db_dossier doss" & _
" left join db_tiers tiers on doss.is_tiers = tiers.is_tiers" & _
" left join db_protocole proto on doss.is_protocole = proto.is_protocole" & _
" left join db_produit prod on doss.is_produit = prod.is_produit" & _
" left join db_contractant cntrct on doss.is_contractant = cntrct.is_contractant" & _
" left join db_personne pers on cntrct.is_personne = pers.is_personne" & _
" where doss.cd_dossier = 'SOUSC' and tiers.cd_tiers='" & strQ & "' order by contrat", cnn_Pegase, adOpenDynamic, adLockBatchOptimistic
xlRow = Range("Chapeau").Row + 1 + xlRow
Do While Not RECSET2.EOF
Sheets("1 - Résultat").Cells(xlRow, Range("Police_1").Column).Value = RECSET2("contrat").Value
Sheets("1 - Résultat").Cells(xlRow, Range("Nom_1").Column).Value = RECSET2("nom").Value
Sheets("1 - Résultat").Cells(xlRow, Range("Prenom_1").Column).Value = RECSET2("prenom").Value
Sheets("1 - Résultat").Cells(xlRow, Range("Code_produit_1").Column).Value = RECSET2("code_produit").Value
Sheets("1 - Résultat").Cells(xlRow, Range("Nom_produit_1").Column).Value = RECSET2("libelle_prod").Value
Sheets("1 - Résultat").Cells(xlRow, Range("Protocole_1").Column).Value = RECSET2("code_proto").Value
RECSET2.MoveNext
xlRow = xlRow + 1
Loop
RECSET2.Close
Call DECONNEXION_P
End Sub