Je fais une requete dans une base sql server 2000 d'établissements correspondants à des critères de recherche.
Cependant il y a des doublons inévitables mais qui ne se suivent pas dans la liste.
Je souhaite donc ne pas afficher un établissement déjà listé.
J'ai essayé des choses du genre :
Dim l_a_etab_affiche()
Redim l_a_etab_affiche(l_r_rs.recordcount) 'l_r_rs est mon recordset
l_i_compteur = 0
Do While Not l_r_rs.Eof
l_b_exist_deja = False
For z = 0 To Ubound(l_a_etab_affiche)
If Cint(l_a_etab_affiche(z)) = Cint(l_r_rs("code_etab")) Then
l_b_exist_deja = True
Exit For
End If
Next
If Not l_b_exist_deja Then
l_a_etab_affiche(l_i_compteur) = Cint(l_r_rs("code_etab"))
' puis j'affiche mon établissement
End If
l_r_rs.Movenext
l_i_compteur = l_i_compteur + 1
Loop
Mais ça ne fonctionne pas...
Quelqu'un aurait-il une idée ? ou un lien où je peux trouver une réponse ?
Merci pour votre aide.
cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 201416 25 oct. 2004 à 19:31
Si ta liste d'établissement n'est pas trop longue, tu peux la stockée dans un tableau, ou dans une variable avec des ";" qui sépare les noms ou alors te faire un control listbox qui contient tous les nom d'établissement mais là c'est un peu trop lourd, donc j'opterais surement pour le tableau ou la variable string.
Ensuite dans ta boucle après chaque RecordSet.movenext tu test le nom de l'établissement et le recherche dans ton tableau ou variable, et s'il est présent tu refait .movenext
exemple rapide :
Dim toto as string
if instr(toto,rs.fields("nom_etablissement"))<>0 then
rs.movenext
else
.
.
. Ton code habituel
.
.
end if
Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]