Recherche de données dans une base access [Résolu]

Signaler
Messages postés
45
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
14 avril 2011
-
Messages postés
45
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
14 avril 2011
-
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

Messages postés
45
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
14 avril 2011

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
Merci

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

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

Messages postés
45
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
14 avril 2011

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
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
2
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)
Messages postés
45
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
14 avril 2011

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 ^^
Messages postés
45
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
14 avril 2011

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...