Probleme de recherche et evenement keypress

bruce207 Messages postés 106 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 2 mai 2012 - 26 mars 2008 à 13:35
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 - 27 mars 2008 à 13:23
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

jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 1
26 mars 2008 à 13:49
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é
@+
0
bruce207 Messages postés 106 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 2 mai 2012
27 mars 2008 à 10:44
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
0
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 1
27 mars 2008 à 13:23
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)
0
Rejoignez-nous