Moteur de recherche pour access, probléme!!!!

jimluis Messages postés 90 Date d'inscription jeudi 17 mars 2005 Statut Membre Dernière intervention 16 juin 2005 - 11 avril 2005 à 11:58
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 12 avril 2005 à 19:37
Alors voila, je veux créer un moteur de recherche sur une base de donnée access. Le truc, c'est que j'ai ma base de donnée, mais aucune recherche ne se fait, et j'ai un erreur que me dit "erreur de syntaxe dans la clause FROM", je ne comprends pas le probléme.
adodc1 est un controle data mis en relation avec un datagrid.


Voici mon code :


Private Sub Command1_Click()
Adodc1.RecordSource = "SELECT % FROM produit "
Adodc1.Refresh

End Sub


Private Sub TxtRecherche_Avancee_KeyPress(KeyAscii As Integer)
On Error Resume Next


If (KeyAscii = 13) Then
chaine1 = ""
chaine_complete = Trim(TxtRecherche_Avancee)
lg = Len(chaine_complete)
X = 1
Do Until X = 0
X = InStr(1, chaine_complete, " ")
If X = 0 Then
chaine1 = chaine1 & "'%" & chaine_complete & "*%"
Else
chaine1 = Left(chaine_complete, X - 1)
chaine1 = "'%" & chaine1 & "%' AND référence produit like "
chaine_complete = Mid(chaine_complete, X + 1, lg - X)
End If
Loop

Adodc1.RecordSource = "SELECT % FROM produit " & _
"where référence produit like " & chaine1 & ""
Adodc1.Refresh
End If


End Sub


Private Sub Form_Load()
On Error Resume Next
Adodc1.RecordSource = "produit"
Adodc1.RefreshEnd Sub

JIMM

4 réponses

HDelarse Messages postés 13 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 12 avril 2005
11 avril 2005 à 18:07
Access n'aime pas le accents ni les espaces dans les nom de champs.
Remplace "référence produit" par "Reference_produit" ou "ReferenceProduit".
Aprés If X=0 chaine1 = Il manque une simple cote ' aprés le *%'"
Sinon, tu devrais tester tes requètes directement dans ACCESS.
J'espère que cela ira....
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
11 avril 2005 à 19:29
Salut,

1 - Pour les noms de champs, s'ils comprennent des espaces, encadre les par des crochets : [référence produit]
2 - Remplace les '%' par des '*'

Loup Gris
0
jimluis Messages postés 90 Date d'inscription jeudi 17 mars 2005 Statut Membre Dernière intervention 16 juin 2005
12 avril 2005 à 07:54
C'est vrai que c'est mieux comme ça, mais le probléme ne vient pas de la.

Le probléme vient de " adodc1.refresh " , j'ai d'abord " erreur de syntaxe dans la méthode FROM" puis " la méthode refresh de l'objet adodc a échoué ". En fait c'est tout se qu'il y a dans command1_click.
Voila, je cherche, mais moi je trouve pas, si vous trouvez, j'en serais ravie.

Private Sub Command1_Click()
Adodc1.RecordSource = "SELECT * FROM produit "
Adodc1.Refresh

End Sub

JIMM
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
12 avril 2005 à 19:37
Dis voir, produit est bien le nom d'une table de la base que tu ouvres dans Adodc1.ConnectionString ?

Loup Gris
0
Rejoignez-nous