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

themioux 51 Messages postés dimanche 29 mai 2005Date d'inscription 14 avril 2011 Dernière intervention - 10 nov. 2005 à 14:54 - Dernière réponse : themioux 51 Messages postés dimanche 29 mai 2005Date d'inscription 14 avril 2011 Dernière intervention
- 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
Afficher la suite 

5 réponses

Meilleure réponse
themioux 51 Messages postés dimanche 29 mai 2005Date d'inscription 14 avril 2011 Dernière intervention - 14 nov. 2005 à 09:21
3
Merci
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

Merci themioux 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

themioux 51 Messages postés dimanche 29 mai 2005Date d'inscription 14 avril 2011 Dernière intervention - 10 nov. 2005 à 14:57
0
Merci
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
aieeeuuuuu 698 Messages postés jeudi 16 janvier 2003Date d'inscription 20 mai 2011 Dernière intervention - 10 nov. 2005 à 15:47
0
Merci
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)
themioux 51 Messages postés dimanche 29 mai 2005Date d'inscription 14 avril 2011 Dernière intervention - 10 nov. 2005 à 17:15
0
Merci
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 ^^
themioux 51 Messages postés dimanche 29 mai 2005Date d'inscription 14 avril 2011 Dernière intervention - 14 nov. 2005 à 08:46
0
Merci
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...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.