Recherche dans plusieurs champs en sql

Résolu
cs_amita Messages postés 151 Date d'inscription samedi 17 juillet 2004 Statut Membre Dernière intervention 11 mai 2012 - 16 mars 2011 à 15:04
cs_amita Messages postés 151 Date d'inscription samedi 17 juillet 2004 Statut Membre Dernière intervention 11 mai 2012 - 17 mars 2011 à 17:51
cher ami, voici mon problème :
je possède une table access avec les champs suivant:
NumFixe
NumGsm
NumFax
j'arrive pas a faire une recherche a la fois dans c'est trois champs

j'essayer :

je suis en DAO 3,6

Set sTemp = sDB.OpenRecordset("SELECT * FROM " & sTable & " WHERE " & NumFixe& " LIKE '" & sTextbox.Text & "*'", dbOpenDynaset)

cette syntaxe me recherche sur un seul champ par exp NumFixe
par contre ce que je veux c'est que la personne peut rechercher un numméro à la fois dans NumFixe, NumGsm,NumFax
merci pour l'aide
Merci à l'équipe

11 réponses

cs_amita Messages postés 151 Date d'inscription samedi 17 juillet 2004 Statut Membre Dernière intervention 11 mai 2012
17 mars 2011 à 17:51
voici mon ami une réponse que j'ai corriger ça marche impec
enfin merci pour l'aide, mille fois merci


Dim StrSqlTelNum As String
StrSqlTelNum = "SELECT * FROM CtcPerso"
StrSqlTelNum = StrSqlTelNum & " WHERE TelDom LIKE '" & FrmPatient.Text2(53).Text & "*'"
StrSqlTelNum = StrSqlTelNum & " Or TelDomIP LIKE '" & FrmPatient.Text2(53).Text & "*'"
StrSqlTelNum = StrSqlTelNum & " Or GSM1 LIKE '" & FrmPatient.Text2(53).Text & "*'"
StrSqlTelNum = StrSqlTelNum & " Or GSM2 LIKE '" & FrmPatient.Text2(53).Text & "*'"
StrSqlTelNum = StrSqlTelNum & " Or TelTrav1 LIKE '" & FrmPatient.Text2(53).Text & "*'"
StrSqlTelNum = StrSqlTelNum & " Or TelTrav2 LIKE '" & FrmPatient.Text2(53).Text & "*'"
StrSqlTelNum = StrSqlTelNum & " Or TelTravIP LIKE '" & FrmPatient.Text2(53).Text & "*'"
StrSqlTelNum = StrSqlTelNum & " Or Fax LIKE '" & FrmPatient.Text2(53).Text & "*'"
Set sDB = OpenDatabase(App.Path & "\MLDatasTel\RepTel.mdb")
Set sTemp = sDB.OpenRecordset(StrSqlTelNum)
Merci à l'équipe
3
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
16 mars 2011 à 15:12
Bonjour
A adapter

SELECT MSysObjects.*, MSysObjects.Database, MSysObjects.ForeignName, MSysObjects.Name
FROM MSysObjects
WHERE (((MSysObjects.Database) Like "aa" & "*")) OR (((MSysObjects.ForeignName) Like "aa" & "*")) OR (((MSysObjects.Name) Like "aa" & "*"));

Bonne journée
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
16 mars 2011 à 15:18
Si NumFixe, NumGsm,NumFax sont du type numérique je dirais:

Set sTemp sDB.OpenRecordset("SELECT * FROM " & sTable & " WHERE " & NumFixe& " LIKE '" & sTextbox.Text & "*'" AND NumFixe " & nombre1 & " AND NumGsm= " & nombre2 " AND NumFax = " & nombre3 & ";" , dbOpenDynaset)

Si NumFixe, NumGsm,NumFax sont de types texte alors .

Set sTemp sDB.OpenRecordset("SELECT * FROM " & sTable & " WHERE " & NumFixe& " LIKE '" & sTextbox.Text & "*'" AND NumFixe '" & nombre1 & "' AND NumGsm= '" & nombre2 "' AND NumFax = '" & nombre3 & "';" , dbOpenDynaset)
0
cs_amita Messages postés 151 Date d'inscription samedi 17 juillet 2004 Statut Membre Dernière intervention 11 mai 2012
16 mars 2011 à 16:49
cher 4u4me4us

il m'affiche une erreur syntaxe dans

Si NumFixe, NumGsm,NumFax sont du type numérique je dirais:

Set sTemp sDB.OpenRecordset("SELECT * FROM " & sTable & " WHERE " & NumFixe& " LIKE '" & sTextbox.Text & "*'" AND NumFixe " & nombre1 & " AND NumGsm= " & nombre2 " AND NumFax = " & nombre3 & ";" , dbOpenDynaset)

erreur séparateur de liste ou )

et quand je met

Set sTemp sDB.OpenRecordset("SELECT * FROM " & sTable & " WHERE " & NumFixe & " LIKE '" & sTextbox.Text & "*'" AND NumFixe " & nombre1 & " AND NumGsm= " & nombre2 " AND NumFax = " & nombre3 & "
;" , dbOpenDynaset)

erreur séparateur de liste ou )



Si NumFixe, NumGsm,NumFax sont de types texte alors .

Set sTemp sDB.OpenRecordset("SELECT * FROM " & sTable & " WHERE " & NumFixe& " LIKE '" & sTextbox.Text & "*'" AND NumFixe '" & nombre1 & "' AND NumGsm= '" & nombre2 "' AND NumFax = '" & nombre3 & "';" , dbOpenDynaset)

erreur Attendu : expression
svp aidez moi et merci aussi pour c148270



Merci à l'équipe
0

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

Posez votre question
cs_amita Messages postés 151 Date d'inscription samedi 17 juillet 2004 Statut Membre Dernière intervention 11 mai 2012
16 mars 2011 à 16:51
avec cette syntaxe

Set sTemp = sDB.OpenRecordset("SELECT MSysObjects.*, MSysObjects.Database, MSysObjects.ForeignName, MSysObjects.Name From MSysObjects WHERE (((MSysObjects.Database) Like "aa" & "*")) OR (((MSysObjects.ForeignName) Like "aa" & "*")) OR (((MSysObjects.Name) Like "aa" & "*"));

erreur : séparateur de liste ou )


Merci à l'équipe
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
16 mars 2011 à 17:12
J'ai oublier de te dire que j'ai tapé de tête, donc il faut adapter.

De plus j'espère que tu as changer nombre 1,2,3 par de vrais variable.
0
cs_amita Messages postés 151 Date d'inscription samedi 17 juillet 2004 Statut Membre Dernière intervention 11 mai 2012
16 mars 2011 à 17:45
toujours la même erreur mon ami

Merci à l'équipe
0
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
16 mars 2011 à 18:49
Bonjour
Dans l'exemple que je t'ai donné :
Set sTemp = sDB.OpenRecordset("SELECT MSysObjects.*, MSysObjects.Database, MSysObjects.ForeignName, MSysObjects.Name From MSysObjects WHERE (((MSysObjects.Database) Like 'aa' & '*')) OR (((MSysObjects.ForeignName) Like 'aa' & '*')) OR (((MSysObjects.Name) Like 'aa' & '*'));")

bonne journée
0
cs_amita Messages postés 151 Date d'inscription samedi 17 juillet 2004 Statut Membre Dernière intervention 11 mai 2012
17 mars 2011 à 13:29
désolé mon hière j'avais trops de patients avoir , donc j'ai pas pus consulter :
cette dernière solution m'affiche impossible de lire les enregistrements; pas d'autorisation de lecture de lecture sur MSysObjetcs
en plus j'arrive pas a adapter selon ma demande
merci de m'aidez


Merci à l'équipe
0
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
17 mars 2011 à 15:00
Bonjour

Pour mon exemple, la réponse est normale.

Pour les autres vérifie l'écriture, elle répond à des règles stricts.
Voic en rouge quelques erreurs que j'ai pu repérer. Ils y en a peut-être d'autres

Set sTemp sDB.OpenRecordset("SELECT * FROM " & sTable & " WHERE " & NumFixe& " LIKE '" & sTextbox.Text & "*'" AND NumFixe " & nombre1 & " AND NumGsm= " & nombre2 " AND NumFax = " & nombre3 & ";" , dbOpenDynaset)

le & doit être précédé et suvi par un espace
toute chaîne de caractères commence et finie par "

"*'" = chaîne de caractères complète suivie de AND Numfix= " qui est une chaîne de caractère incomplète, le début n'est pas précisé

il doit y avoir un espace entre numgsm et le signe =

A toi la suite

bonne journée
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
17 mars 2011 à 15:14
Utilise la méthode de c148270 et si cela ne fonctionne tjs pas affiche la requête.
0
Rejoignez-nous