basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention 8 mars 2008
-
1 mai 2007 à 17:03
Philppe2007
Messages postés41Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention 5 mars 2008
-
2 mai 2007 à 19:35
bonjour,
j'ai un bouton qui effectue une recherche et m'affiche les résultats trouvés dans une listbox, voici le code:
Private Sub devis_Click()
Dim bingoo As Boolean
Dim enr(10) As String ' As UInteger
Dim j As Byte
On Error GoTo Err_Update
strDB = "C:\Comerço V1.0.1\comerço.mdb"
strTable = "Devis"
Set oConn = New ADODB.Connection
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.Open strDB
Set oRS = New ADODB.Recordset
oRS.CursorLocation = adUseClient
oRS.Open strTable, oConn, adOpenDynamic, adLockOptimistic, adCmdTable
Do While oRS.EOF = False
If oRS.Fields("Client") = Text1(1).Text Then
bingoo = True
List1.AddItem oRS.Fields("N°devis")
End If
oRS.MoveNext
Loop
If bingoo = True Then
MsgBox ("Un ou plusieurs devis ont été trouvé!")
Else
MsgBox ("Aucun devis n'est trouvé!")
List1.Text = ""
End If
Exit Sub
Err_Update:
MsgBox Err.Description
List1.AddItem ""
End Sub
Avec ce code les résultats sont affichés dans la listbox mais une fois je relance la recherche où je sais pertinement qu'il y a aucun résultat un message dans ce sens s'affiche mais ma listbox garde toujours les résultats précédents et c'est pareil quand je trouve des résultats au lieu qu'ils écrasent les anciens ils viennent se rajoutés à l'ancien résultat.
basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention 8 mars 2008 1 mai 2007 à 18:14
voici une solution plus fiable et stable à mon sens:
Private Sub List1_Click()
Dim a As String
a = List1.Text
Dim bingoo As Boolean
Dim enr(10) As String ' As UInteger
Dim enr10(10), enr20(10), enr30(10), enr40(10) As String
Dim enr1, enr2, enr3 As String
Dim j As Byte
On Error GoTo Err_Update
Frame1.Visible = True
For j = 0 To 3
Text3(j).Visible = False
Text4(j).Visible = False
Text5(j).Visible = False
Text6(j).Visible = False
Next
' Chemin complet et nom de la base
strDB = "C:\Comerço V1.0.1\comerço.mdb"
' Nom de la table
strTable = "Devis"
' Ouverture connexion vers la base
Set oConn = New ADODB.Connection
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.Open strDB
' Ouverture recordset sur la table
Set oRS = New ADODB.Recordset
oRS.CursorLocation = adUseClient
oRS.Open strTable, oConn, adOpenDynamic, adLockOptimistic, adCmdTable
Do While oRS.EOF = False
If oRS.Fields("N°devis") = a Then
bingoo = True
enr1 = oRS.Fields(devis_1.Text1.DataField)
enr2 = oRS.Fields(devis_1.Text2.DataField)
enr3 = oRS.Fields(devis_1.Text8.DataField)
For j = 0 To enr3 - 1
enr10(j) = oRS.Fields(devis_1.Text3(j).DataField)
enr20(j) = oRS.Fields(devis_1.Text4(j).DataField)
enr30(j) = oRS.Fields(devis_1.Text5(j).DataField)
enr40(j) = oRS.Fields(devis_1.Text6(j).DataField)
Next
End If
oRS.MoveNext
Loop
If bingoo = True Then
For j = 0 To enr3 - 1
Text3(j).Visible = True
Text4(j).Visible = True
Text5(j).Visible = True
Text6(j).Visible = True
Next
Text2(0).Text = enr1
Text2(1).Text = enr2
Text2(2).Text = enr3
For j = 0 To enr3
Text3(j).Text = enr10(j)
Text4(j).Text = enr20(j)
Text5(j).Text = enr30(j)
Text6(j).Text = enr40(j)
Next
End If
Exit Sub
Err_Update:
MsgBox Err.Description
End Sub
Ce code permet de chercher la sélection de listbox dans la table en question, une fois le n°devis trouvé en charge dans une frame tous leséléments de ce devis sachant que les lignes sont variables d'où l'utilisation d'une boucle en fonction de nombre de ligne renvoyé par la recherche.
Philppe2007
Messages postés41Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention 5 mars 2008 2 mai 2007 à 19:35
Bonsoir
je vue le programme que vous avez développé sur listbox c'est superbe c'est pour cela je vous demande d'aide ,je suis débutant dans la programmation je vous demande de m'aider pour connecter un listbox avec un ado et d'ajouter des données avec un textbox et un bouton de commande. merci de m'aider