OVH Cloud OVH Cloud

Recherche sql

6 réponses
Avatar
superzinzin
Bonsoir.

J'essaie de progresser en sql et à la place de faire une requête comme j'ai
l'habitude j'ai voulu faire comme çà:

Dim Reponse
reponse=Msgbox("Donnez une partie du nom")
Docmd.runsql "
DoCmd.RunSQL "SELECT Tab_Clients.Nom FROM Tab_Clients WHERE Tab_Clients.Nom
Like' " * " ' & Reponse & '" * " ' '"

Ne riez pas, ça ne marche pas

Merci

6 réponses

Avatar
super zinzin
Lire
reponse=inputbox("Donnez une partie du nom")
"superzinzin" a écrit dans le message de news:
44f09454$0$10266$
Bonsoir.

J'essaie de progresser en sql et à la place de faire une requête comme
j'ai l'habitude j'ai voulu faire comme çà:

Dim Reponse
reponse=Msgbox("Donnez une partie du nom")
Docmd.runsql "
DoCmd.RunSQL "SELECT Tab_Clients.Nom FROM Tab_Clients WHERE
Tab_Clients.Nom Like' " * " ' & Reponse & '" * " ' '"

Ne riez pas, ça ne marche pas

Merci




Avatar
jt
Bonsoir0
"superzinzin" a écrit dans le message de news:
44f09454$0$10266$
Bonsoir.

J'essaie de progresser en sql et à la place de faire une requête comme
j'ai l'habitude j'ai voulu faire comme çà:

Dim Reponse
reponse=Msgbox("Donnez une partie du nom")
Docmd.runsql "
DoCmd.RunSQL "SELECT Tab_Clients.Nom FROM Tab_Clients WHERE
Tab_Clients.Nom Like' " * " ' & Reponse & '" * " ' '"


essaye Like '*" & reponse & "*'"


Ne riez pas, ça ne marche pas

Merci




Avatar
Eric
Bonjour,

Quelques infos:

Pour permettre la saisie d'info, il ne faut pas utiliser la MsgBox mais
une InputBox
Dim Reponse as String
reponse=InputBox("Donnez une partie du nom")

La syntaxe du SQL devrait être:
"SELECT Nom FROM Tab_Clients WHERE Nom like '*" & reponse & "*';"
(PS:Il n'est pas nécessaire de prefixer les champs par le nom de la
table quand il n'y a pas d'ambiguïté.)

Enfin la commande RunSQL n'est utilisable que pour des requêtes Action,
ce qui n'est pas le cas ici.

Dans ton cas il faudrait écrire:

Sub zz()
Dim strReponse As String, strSQL As String, qry As QueryDef
strReponse = InputBox("Donnez une partie du nom")
strSQL = "SELECT Nom FROM Tab_Clients WHERE Nom like '*" &
strReponse & "*';"
' Création de la requête nomée tmp
Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
' Ouverture de la requête
DoCmd.OpenQuery "tmp"
' Suppression de la requête tmp
CurrentDb.QueryDefs.Delete "tmp"
Set qry = Nothing
End Sub

Bonsoir.

J'essaie de progresser en sql et à la place de faire une requête comme j'ai
l'habitude j'ai voulu faire comme çà:

Dim Reponse
reponse=Msgbox("Donnez une partie du nom")
Docmd.runsql "
DoCmd.RunSQL "SELECT Tab_Clients.Nom FROM Tab_Clients WHERE Tab_Clients.Nom
Like' " * " ' & Reponse & '" * " ' '"

Ne riez pas, ça ne marche pas

Merci




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
super zinzin
Merci mais ça ne marche pas

"jt" a écrit dans le message de news:
O58eL%
Bonsoir0
"superzinzin" a écrit dans le message de news:
44f09454$0$10266$
Bonsoir.

J'essaie de progresser en sql et à la place de faire une requête comme
j'ai l'habitude j'ai voulu faire comme çà:

Dim Reponse
reponse=Msgbox("Donnez une partie du nom")
Docmd.runsql "
DoCmd.RunSQL "SELECT Tab_Clients.Nom FROM Tab_Clients WHERE
Tab_Clients.Nom Like' " * " ' & Reponse & '" * " ' '"


essaye Like '*" & reponse & "*'"


Ne riez pas, ça ne marche pas

Merci








Avatar
superzinzin
Merci Eric, que me conseilles tu alors?

J'utilise toujours une requête et après je docmd.openform etc avec le nom de
ma requête.
Comment ferais-tu pour que ce soit élégant. Genre setfilter ce dont je
voudrais apprendre. Merci


"Eric" a écrit dans le message de news:

Bonjour,

Quelques infos:

Pour permettre la saisie d'info, il ne faut pas utiliser la MsgBox mais
une InputBox
Dim Reponse as String
reponse=InputBox("Donnez une partie du nom")

La syntaxe du SQL devrait être:
"SELECT Nom FROM Tab_Clients WHERE Nom like '*" & reponse & "*';"
(PS:Il n'est pas nécessaire de prefixer les champs par le nom de la table
quand il n'y a pas d'ambiguïté.)

Enfin la commande RunSQL n'est utilisable que pour des requêtes Action, ce
qui n'est pas le cas ici.

Dans ton cas il faudrait écrire:

Sub zz()
Dim strReponse As String, strSQL As String, qry As QueryDef
strReponse = InputBox("Donnez une partie du nom")
strSQL = "SELECT Nom FROM Tab_Clients WHERE Nom like '*" & strReponse &
"*';"
' Création de la requête nomée tmp
Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
' Ouverture de la requête
DoCmd.OpenQuery "tmp"
' Suppression de la requête tmp
CurrentDb.QueryDefs.Delete "tmp"
Set qry = Nothing
End Sub

Bonsoir.

J'essaie de progresser en sql et à la place de faire une requête comme
j'ai l'habitude j'ai voulu faire comme çà:

Dim Reponse
reponse=Msgbox("Donnez une partie du nom")
Docmd.runsql "
DoCmd.RunSQL "SELECT Tab_Clients.Nom FROM Tab_Clients WHERE
Tab_Clients.Nom Like' " * " ' & Reponse & '" * " ' '"

Ne riez pas, ça ne marche pas

Merci




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
superzinzin
J'avais pas lu la suite

"Eric" a écrit dans le message de news:

Bonjour,

Quelques infos:

Pour permettre la saisie d'info, il ne faut pas utiliser la MsgBox mais
une InputBox
Dim Reponse as String
reponse=InputBox("Donnez une partie du nom")

La syntaxe du SQL devrait être:
"SELECT Nom FROM Tab_Clients WHERE Nom like '*" & reponse & "*';"
(PS:Il n'est pas nécessaire de prefixer les champs par le nom de la table
quand il n'y a pas d'ambiguïté.)

Enfin la commande RunSQL n'est utilisable que pour des requêtes Action, ce
qui n'est pas le cas ici.

Dans ton cas il faudrait écrire:

Sub zz()
Dim strReponse As String, strSQL As String, qry As QueryDef
strReponse = InputBox("Donnez une partie du nom")
strSQL = "SELECT Nom FROM Tab_Clients WHERE Nom like '*" & strReponse &
"*';"
' Création de la requête nomée tmp
Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
' Ouverture de la requête
DoCmd.OpenQuery "tmp"
' Suppression de la requête tmp
CurrentDb.QueryDefs.Delete "tmp"
Set qry = Nothing
End Sub

Bonsoir.

J'essaie de progresser en sql et à la place de faire une requête comme
j'ai l'habitude j'ai voulu faire comme çà:

Dim Reponse
reponse=Msgbox("Donnez une partie du nom")
Docmd.runsql "
DoCmd.RunSQL "SELECT Tab_Clients.Nom FROM Tab_Clients WHERE
Tab_Clients.Nom Like' " * " ' & Reponse & '" * " ' '"

Ne riez pas, ça ne marche pas

Merci




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr