OVH Cloud OVH Cloud

Select from where

8 réponses
Avatar
Sergio
Bonjour à tous

je n'arrive pas à paramètrer le SELECT FROM.....
par exemple dans ce qui suit :

'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dim DB As DAO.Database
Set DB = Application.CurrentDb

Dim rqt As String
rqt = "Suivi_R"

Dim QD As DAO.QueryDef

Set QD = DB.QueryDefs("SELECT * from rqt WHERE _
[Champ date 1] = 01/01/2003 _
AND [Champ date 2] = 01/02/2003 ;")

nbchp = QD.Fields.count ' etc.....
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

j'ai beau tourner la formule dans tous les sens
même en simplifiant à l'extrème

"SELECT * FROM Rqt ;" ou

"SELCT * FROM " & rqt & " ;)"

rien ne marche

si quelqu'un pouvait m'éclairer !

A+
Sergio

8 réponses

Avatar
jean
Bonjour,

As-tu essayé d'écrire les dates à l'anglo-saxonne et de les
encadrer par #
#mm/jj/aaaa#

Cordialement,

jean
-----Message d'origine-----
Bonjour à tous

je n'arrive pas à paramètrer le SELECT FROM.....
par exemple dans ce qui suit :

'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dim DB As DAO.Database
Set DB = Application.CurrentDb

Dim rqt As String
rqt = "Suivi_R"

Dim QD As DAO.QueryDef

Set QD = DB.QueryDefs("SELECT * from rqt WHERE _
[Champ date 1] = 01/01/2003 _
AND [Champ date 2] = 01/02/2003 ;")

nbchp = QD.Fields.count ' etc.....
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

j'ai beau tourner la formule dans tous les sens
même en simplifiant à l'extrème

"SELECT * FROM Rqt ;" ou

"SELCT * FROM " & rqt & " ;)"

rien ne marche

si quelqu'un pouvait m'éclairer !

A+
Sergio



.



Avatar
jean
Bonjour,

SELECT FROM doit s'adresser à une table.
Si Rqt est une requête, regarde l'aide sur "sous-requête"

Cordialement,

jean
Avatar
Sergio
Bonsoir,

j'ai supprimé la condition where pour simplifier
et j'ai transformé ma requête en une table Suivi_rqt
dont la variable Suiv_rqt = "Suivi_rqt"

puis j'essaie désespérément :

Set QD = DB.QueryDefs("SELECT * from suiv_rqt ;")
et là, j'ai en message d'erreur :
"élément non trouvé dans cette collection"

est-ce que ma ligne set QDÛ...... est incorrecte
(le point-virgule, les guillemets etc..)
ou est-ce qu'il faut chercher ailleur ?

Merci A+
Sergio

"jean" a écrit dans le message de news:
002201c3cd71$fb41ae10$
Bonjour,

SELECT FROM doit s'adresser à une table.
Si Rqt est une requête, regarde l'aide sur "sous-requête"

Cordialement,

jean
Avatar
Damien Mermoz
Salut,

tu t'y prends mal, quand tu déclares :
Set QD = DB.QueryDefs("SELECT * from suiv_rqt ;")

Access recherche une requête qui s'appelle select * from suiv_rqt ;
et évidemment il ne la trouve pas.
donc soit tu crées une nouvelle requête :
set qd = db.CreateQueryDef("nom de la requête")
qd.sql = "Select machin from truc where ..."

soit tu en appelles une que tu modifies
set qd = db.QueryDefs("ma requête")
qd.sql = "select ..."

L'intérêt des querydef est que tu stockes ta requêtes, si tu n'as pas besoin
de la stocker passe plutôt par un recordset c'est plus simple.

En espèrant t'avoir aidé

A +
Damien.

"Sergio" a écrit dans le message de
news:
Bonsoir,

j'ai supprimé la condition where pour simplifier
et j'ai transformé ma requête en une table Suivi_rqt
dont la variable Suiv_rqt = "Suivi_rqt"

puis j'essaie désespérément :

Set QD = DB.QueryDefs("SELECT * from suiv_rqt ;")
et là, j'ai en message d'erreur :
"élément non trouvé dans cette collection"

est-ce que ma ligne set QDÛ...... est incorrecte
(le point-virgule, les guillemets etc..)
ou est-ce qu'il faut chercher ailleur ?

Merci A+
Sergio

"jean" a écrit dans le message de news:
002201c3cd71$fb41ae10$
Bonjour,

SELECT FROM doit s'adresser à une table.
Si Rqt est une requête, regarde l'aide sur "sous-requête"

Cordialement,

jean




Avatar
Sergio
Bonjour

merci pour l'explication, ça m'éclaire beaucoup
et je retourne au boulot de suite.

A+
Sergio

"Damien Mermoz" a écrit dans le message de
news: #
Salut,

tu t'y prends mal, quand tu déclares :
Set QD = DB.QueryDefs("SELECT * from suiv_rqt ;")

Access recherche une requête qui s'appelle select * from suiv_rqt ;
et évidemment il ne la trouve pas.
donc soit tu crées une nouvelle requête :
set qd = db.CreateQueryDef("nom de la requête")
qd.sql = "Select machin from truc where ..."

soit tu en appelles une que tu modifies
set qd = db.QueryDefs("ma requête")
qd.sql = "select ..."

L'intérêt des querydef est que tu stockes ta requêtes, si tu n'as pas
besoin

de la stocker passe plutôt par un recordset c'est plus simple.

En espèrant t'avoir aidé

A +
Damien.

"Sergio" a écrit dans le message de
news:
Bonsoir,

j'ai supprimé la condition where pour simplifier
et j'ai transformé ma requête en une table Suivi_rqt
dont la variable Suiv_rqt = "Suivi_rqt"

puis j'essaie désespérément :

Set QD = DB.QueryDefs("SELECT * from suiv_rqt ;")
et là, j'ai en message d'erreur :
"élément non trouvé dans cette collection"

est-ce que ma ligne set QDÛ...... est incorrecte
(le point-virgule, les guillemets etc..)
ou est-ce qu'il faut chercher ailleur ?

Merci A+
Sergio

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


002201c3cd71$fb41ae10$
Bonjour,

SELECT FROM doit s'adresser à une table.
Si Rqt est une requête, regarde l'aide sur "sous-requête"

Cordialement,

jean








Avatar
Sergio
j'ai bien essayé avec

Set QD = DB.CreateQueryDef("TEST")
QD.SQL = "SELECT * FROM suiv_rqt ;"

et quoi que je mette à la place de TEST,

j'ai : l'objet 'TEST' existe déjà
alors que ce n'est pas vrai !

et de plus doit on déclarer TEST en String ?


"Sergio" a écrit dans le message de news:
ugq7d#
Bonjour

merci pour l'explication, ça m'éclaire beaucoup
et je retourne au boulot de suite.

A+
Sergio



Avatar
Damien Mermoz
Gnnéé ???
crée un bouton sur ton form
met ceci texto sur événement click:

Dim db As DAO.Database
Dim qd As DAO.QueryDef

Set db = CurrentDb
Set qd = db.CreateQueryDef("R_truc")

qd.SQL = "Select * from suiv_rqt "

DoCmd.OpenQuery ("R_truc")
qd.Close
db.Close
Set db = Nothing
Set qd = Nothing

Si ça, ça marche pas, je passe la main.

PS : suiv_rqt c'est vraiment le nom de ta table ? Ne me dis pas que c'est
une variable :-)

PS2 : le code ci-dessus ne fonctionne qu'une fois bien sûr. Pour le relancer
il faut supprimer la requête R_truc.

A +
Damien.
"Sergio" a écrit dans le message de
news:%
j'ai bien essayé avec

Set QD = DB.CreateQueryDef("TEST")
QD.SQL = "SELECT * FROM suiv_rqt ;"

et quoi que je mette à la place de TEST,

j'ai : l'objet 'TEST' existe déjà
alors que ce n'est pas vrai !

et de plus doit on déclarer TEST en String ?



Avatar
Sergio
désolé,

je n'avais pas vu que j'avais créé automatiquement
la requête donc je ne pouvais pas la créer une deuxieme fois

j'y retourne donc avec ton modèle.

merci
A+
Sergio



"Damien Mermoz" a écrit dans le message de
news:
Gnnéé ???
crée un bouton sur ton form
met ceci texto sur événement click:

Dim db As DAO.Database
Dim qd As DAO.QueryDef

Set db = CurrentDb
Set qd = db.CreateQueryDef("R_truc")

qd.SQL = "Select * from suiv_rqt "

DoCmd.OpenQuery ("R_truc")
qd.Close
db.Close
Set db = Nothing
Set qd = Nothing

Si ça, ça marche pas, je passe la main.

PS : suiv_rqt c'est vraiment le nom de ta table ? Ne me dis pas que c'est
une variable :-)

PS2 : le code ci-dessus ne fonctionne qu'une fois bien sûr. Pour le
relancer

il faut supprimer la requête R_truc.

A +
Damien.
"Sergio" a écrit dans le message de
news:%
j'ai bien essayé avec

Set QD = DB.CreateQueryDef("TEST")
QD.SQL = "SELECT * FROM suiv_rqt ;"

et quoi que je mette à la place de TEST,

j'ai : l'objet 'TEST' existe déjà
alors que ce n'est pas vrai !

et de plus doit on déclarer TEST en String ?