Probleme de recherche et evenement keypress

Signaler
Messages postés
106
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
2 mai 2012
-
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
-
Bonjour,
j'ai tapé le code ci dessous pour retrouver un enregistrement dans ma base de données à partir d'un textbox:
Private Sub Command1_Click()
rst.Find " Mat_mem = '" & Text1.Text & " ' ", , adSearchForward, 1
Do While Not rst.EOF
MsgBox "nom de l'auteur -->" & rst!Nom_mem
rst.Find "Mat_mem = '" & Text1.Text & " ' ", 1, adSearchForward
Loop
End Sub
Mais j'ai l'erreur suivante : errreur d'execution '91' variable bloc With non definie, que faire ?
 Aussi je voudrais savoir quel est le code qu'il faut taper ou ajouter pour que lorsque je saisi les premieres lettres de l'element recherché il trouve les elements correspondants et commence à affiche ( J'ai entendu dire qu'on utlise l'evenement keypress?) et dans le meme ordre d'idée je voudrais savoir aussi comment faire pour que lorsque le focus est sur un bouton command_click je peux aussi apppuyer sur la touche Entrée pour l'exécuter
j'aimerais que quelqu'un m'aide un peu et je le remecie d'avance.

3 réponses

Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
Bonjour,

Essayez cela

Private Sub Command1_Click()
Sqlt = "select * from Table"    'Si votre table Access n'est pas ouverte
Set Rst = DBase.OpenRecordset(Sqlt, dbOpenDynaset)

rst.Find " Mat_mem = '" & Text1.Text & " ' ", , adSearchForward, 1



While Not Rst.EOF


MsgBox "nom de l'auteur -->" & rst!Nom_mem
rst.Find "Mat_mem = '" & Text1.Text & " ' ", 1, adSearchForward    RsVS.MoveNext
Wend
Rst.Close     'Fermeture

Tenez moi informé
@+
Messages postés
106
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
2 mai 2012

Bonjour,
J'ai tapé le code suivant :
Private Sub Command1_Click()
Sqlt = "select * from Table"    'Si votre table Access n'est pas ouverte
Set Rst = DBase.OpenRecordset(Sqlt, dbOpenDynaset) ' ligne souligné


rst.Find " Mat_mem = '" & Text1.Text & " ' ", , adSearchForward, 1


While Not Rst.EOF


MsgBox "nom de l'auteur -->" & rst!Nom_mem
rst.Find "Mat_mem = '" & Text1.Text & " ' ", 1, adSearchForward    Rst..MoveNext ' confusion
Wend
Rst.Close     'Fermeture

Et bien il m'affiche erreur '424' un objet est requis
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
Vous avez sans doute oublié de déclarer certaines variables.
On reprend:

Private Sub Command1_Click()





'Déclaration des variables access


Dim DBase As Database
Dim Rst As Recordset
Dim Sqlt As String



Dim Lien As String
Dim LienBase As String







'Ouverture de la base access

Lien = LienBase & "\Nom_de_la_base.mdb" 'LienBase est le chemin d'accés de votrebase
Set DBase = OpenDatabase(Lien)          'Ouverture de la base







'Ouverture de la table access
Sqlt = "select * from Table"            'Table est le nom de la table acces à ouvrir
Set Rst = DBase.OpenRecordset(Sqlt, dbOpenDynaset)






Rst.Find " Mat_mem = '" & Text1.Text & " ' ", , adSearchForward, 1





While Not Rst.EOF   'Tant que nous ne pas au dernier enregistrement






MsgBox "nom de l'auteur -->" & Rst!Nom_mem
Rst.Find "Mat_mem = '" & Text1.Text & " ' ", 1, adSearchForward





Rst.MoveNext      'Enregistement suivante
Wend
Rst.Close     'Fermeture






End Sub


Je ne vous garantie pas le fonctionnement des lignes bleus, mais pour le reste c'est du 100%.

Attention à vote syntaxe:



Rst..MoveNext  (il y a un point de trop)