Recherche de données dans une base access

Résolu
themioux Messages postés 45 Date d'inscription dimanche 29 mai 2005 Statut Membre Dernière intervention 14 avril 2011 - 10 nov. 2005 à 14:54
themioux Messages postés 45 Date d'inscription dimanche 29 mai 2005 Statut Membre Dernière intervention 14 avril 2011 - 14 nov. 2005 à 09:21
Salut à tous

Voilà mon problème, je cherceh à faire une recherche dans une base de donnée acces à partir d'un formulaire

Il s'agit en fait de chercher un enregistrement en fonction de mots clefs définis par l'utilisateur dans une InputBox

mais plutot qu'un long discours je vous donne le code que j'ai fais (à partir d'un tuto du site )

------
Rem Variable de recherche
Dim reqRecherche As String
reqRecherche = InputBox("Entrez les mots clefs de votre recherche", "Recherche d'archive")

Rem Bout de code "volé" sur le site concernant la recherche SQL
chaine1 = ""
chaine_complete = Trim(reqRecherche)
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 titre like "
chaine_complete = Mid(chaine_complete, X + 1, lg - X)
End If
Loop

Rem La fin diffère (pour ceux qui connaissent le code source) car je travaille directement sur le formulaire (je pense que mon erreur est dans le coin)
Me.RecordSource = "SELECT * FROM archives where titre like " & chaine1 & ""
Me.Refresh
----

J'ai rajouté un peu de cmmmentaire, assez inutile ^^, pour faciliter la compréhension du code

Je charge ce code au démarrage (donc dans Form_Laod() ), l'utilisateur tape sa recherche (par exemple "Influence MSN") et j'obtiens le message suivant :

"Erreur d'exécution '2580'

La source d'enregistrement 'SELECT * FROM archives WHERE titre Like "*Influence*" AND titre Like "*MSN*"' spécifié dans ce formulaire ou état n'existe pas

Merci d'avance pour vos plus amples précisions et éventuelles réponses

5 réponses

themioux Messages postés 45 Date d'inscription dimanche 29 mai 2005 Statut Membre Dernière intervention 14 avril 2011
14 nov. 2005 à 09:21
Merci du coup de main, mais j'ai trouvé...

Mon code est bon mais il faut mettre la bonne source

en gros "SELECT * FROM archive ......" fonctionne mieux que "SELECT * FROM archiveS ....."

Rhaaaa, 3 jours pour une faute de frappe !!!

@+

Mioux
3
themioux Messages postés 45 Date d'inscription dimanche 29 mai 2005 Statut Membre Dernière intervention 14 avril 2011
10 nov. 2005 à 14:57
Re moi, je viens de me rendre compte que ce ne sont pas des guillemets mais des apostrophes qui entourent les mot clefs

titre Like '*Influence*'

Je sais pas si ca change grand chose mais je précise
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
10 nov. 2005 à 15:47
salut

peux tu nous mettre la ligne ou ca plante.

est ce que tu as essayé en lancant une requete plus simple ?

lorsque tu fait un like, les métacaractéres a utiliser ne sont pas le * et le ? comme sous DOS, mais le % (0 à n caracteres) et le _ (souligné : 1 et 1 seul caractere)
0
themioux Messages postés 45 Date d'inscription dimanche 29 mai 2005 Statut Membre Dernière intervention 14 avril 2011
10 nov. 2005 à 17:15
Je vous envoie ca dès que possible, c'est à dire surement pas avant lundi parce que c'est au boulot



A moins que je n'arive à ouvrir la base chez moi, mais c'est pas sûr, vu que j'ai pas access ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
themioux Messages postés 45 Date d'inscription dimanche 29 mai 2005 Statut Membre Dernière intervention 14 avril 2011
14 nov. 2005 à 08:46
Resalut

Voilà la ligne qui plante

Me.RecordSource = "SELECT * FROM archives WHERE titre Like " & chaine1 & ""

chaine1 contient du texte comme ceci : 'mot 1' titre Like 'mot 2' And...
0
Rejoignez-nous