Probleme avec la recheche

Résolu
Signaler
Messages postés
3
Date d'inscription
lundi 20 novembre 2000
Statut
Membre
Dernière intervention
15 juillet 2005
-
Messages postés
3
Date d'inscription
lundi 20 novembre 2000
Statut
Membre
Dernière intervention
15 juillet 2005
-
slt tt le monde je ss debutant en vb , et g un probleme avec la recherche et l'actualisation de la table, quant je lence la recherche et j'appuie sur le boutton actualiser il remblace l'enregistrement existante par la 1ère
et je comprend pas pour quoi?
svp aider moi! c urgent

private_sub cmd rechercher
strin = "select * from table where champ='" & Combo.Text & "'"
rs.Open strin, cn, adOpenDynamic, adLockBatchOptimistic
If Not rs.EOF Then
Text4 = rs("champ")
Text1 = rs("champ")
Text2 = rs("champ")
Text3 = rs("champ")
End If
rs.Close
end sub et pour la form
cn.Provider = "Microsoft.Jet.Oledb.3.51"
cn.ConnectionString = "C:\application\basecomplet.mdb"
cn.Open


rs.Open "SELECT * FROM employé", cn, adOpenStatic, adLockOptimistic, adCmdText
rsa.Open " select *from avance", cn, adOpenStatic, adLockOptimistic, adCmdText


Text4.Text = rsa!nom_prenom
Text1.Text = rsa!date_avance
Text2.Text = rsa!montant_avance
Text3.Text = rsa!Remarque


While Not rs.EOF
Combo5.AddItem (rs!nom_prenom)
rs.MoveNext
Wend
rs.MoveFirst
rs.Close
End Sub
et merci d'avance

3 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut
Ta question n'est pas claire, le code que tu as mis n'est pas authentique : tu aurais dû faire un copier/coller.
"Quand je lance la recherche" : Quand tu lances la sub "cmd_recherche" ? (avec le _ au bon endroit)
Ta Sub ne fait que recopier dans des TextBox le contenu de chaque champ.
Par contre, il prendra le premier enregistrement correspondant à ta recherche.
S'il y en a plusieurs, tu ne les verras pas.
"il remplace l'enregistrement" : dans quoi ? Dans la DB ? Dans le Combo ?


Affine ta programmation :
Un coup tu utilises Text1 = rs("champ")
et après, cette syntaxe beaucoup plus propre Text1.Text = rsa!nom_prenom
Uniformise avec cette dernière syntaxe


Il faudrait que tu charges une source qui utilise une DB pour analyser comment il faut faire, parce que, par exemple, à la fin, tu fais rs.MoveFirst juste avant le rs.Close : quel intérêt ?
Sais tu à quoi sert le rs.MoveFirst ?


Dans les syntaxes SQL, attention à bien mettre des espaces entre les termes : entre le '*' et 'from' de 'rsa' par exemple.


Reposte avec des questions plus précises ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
(je
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
278
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
13 avril 2013
2
Dans text4.text, text1.text, text2.text et text3.text tu récupéres toujours la même chose non ??? C'est volontaire?

Et qu'entent tu par actualiser la base? explique un peu plus stp !
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
3
Date d'inscription
lundi 20 novembre 2000
Statut
Membre
Dernière intervention
15 juillet 2005

merci pour vs et voila un exp de source pour la forme gestion des avences:

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim rsa As New ADODB.Recordset


Private Sub cmdAdd_Click()
Data1.Recordset.AddNew
End Sub


Private Sub cmdDelete_Click()
MsgBox (" Etes vous sur de vouloir supprimmer cette enregistrement?,vbOKCancel,")
Data1.Recordset.Delete
Data1.Recordset.MoveNext
End Sub


Private Sub cmdRefresh_Click()
Data1.Refresh
End Sub


Private Sub cmdUpdate_Click()


Data1.UpdateRecord
Data1.Recordset.Bookmark = Data1.Recordset.LastModified

End Sub


Private Sub cmdClose_Click()
Unload fmravance
End Sub


Private Sub Command2_Click()


strin "select * from avance where nom_prenom'" & Combo5.Text & "'"
rs.Open strin, cn, adOpenDynamic, adLockBatchOptimistic
If Not rs.EOF Then

Text4 = rs("nom_prenom")
Text1 = rs("date_avance")
Text2 = rs("montant_avance")
Text3 = rs("Remarque")

End If
rs.Close


End Sub


Private Sub Command3_Click()
DataReport3.Show
End Sub


Private Sub Data1_Validate(Action As Integer, Save As Integer)
Select Case Action
Case vbDataActionMoveFirst
Case vbDataActionMovePrevious
Case vbDataActionMoveNext
Case vbDataActionMoveLast
Case vbDataActionAddNew
Case vbDataActionUpdate
Case vbDataActionDelete
Case vbDataActionFind
Case vbDataActionBookmark
Case vbDataActionClose
End Select
Screen.MousePointer = vbHourglass
End Sub


Private Sub Form_Load()


cn.Provider = "Microsoft.Jet.Oledb.3.51"
cn.ConnectionString = "C:\application\basecomplet.mdb"
cn.Open


rs.Open "SELECT * FROM employé", cn, adOpenStatic, adLockOptimistic, adCmdText
rsa.Open " select *from avance", cn, adOpenStatic, adLockOptimistic, adCmdText


Text4.Text = rsa!nom_prenom
Text1.Text = rsa!date_avance
Text2.Text = rsa!montant_avance
Text3.Text = rsa!Remarque


While Not rs.EOF
Combo5.AddItem (rs!nom_prenom)
rs.MoveNext
Wend
rs.MoveFirst
rs.Close
End Sub

cmd2: je charge les "nom_prenom" dans "combo5" depuis la table "employé" et je lance la recherche des enregistrements qui correspend a cette enreg dans la table "avance" (il y a un lien entre les 2 tables), et quant je fais "actualiser" il remplace l'enregistrement courante par la premiere et j'aurrai 2 enreg (les memes) dans ma table et la premiere disparaitra
svp je veux savoir si le code et bon? et merci bcp