Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Créer par code 1 nouvelle requête par docmd.openquery ?

8 réponses
Avatar
tf
Bonjour à tous,


Par code vba, je crée une requête dynamiquement en
utilisant un chaine de caractère :

par exemple:
chaineSQL="select ... from "

Je voudrais créer l'objet requête en base d'après
cette chaine puis ouvrir directement cet objet
par un docmd.openQuery

Savez-vous comment coder cela ?


Merci
T.

8 réponses

Avatar
Gilbert
Bonjour,

Voila un exemple :

Dim strSql As String
Dim strPivot As String
Dim Rqte As QueryDef

strSql = "Select......"
If ChercherRequete("Nom_Requete", CurrentDb.Name) Then
CurrentDb.QueryDefs("Nom_Requete").SQL = strSql
Else
Set Rqte = CurrentDb.CreateQueryDef("Nom_Requete", strSql)
End If
Set Rqte = Nothing

Cordialement
Gilbert

"tf" a écrit dans le message de news:
3fce0c4f$0$6980$
Bonjour à tous,


Par code vba, je crée une requête dynamiquement en
utilisant un chaine de caractère :

par exemple:
chaineSQL="select ... from "

Je voudrais créer l'objet requête en base d'après
cette chaine puis ouvrir directement cet objet
par un docmd.openQuery

Savez-vous comment coder cela ?


Merci
T.




Avatar
Damien Mermoz
salut,

Par code vba, je crée une requête dynamiquement en
utilisant un chaine de caractère :


Heu oui si ca t'es utile ...

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

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

strSql = "select champs1 from matable"
qd.SQL = strSql

qd.Close
Set qd = Nothing
db.Close
Set db = Nothing

Voilà :-)

A +
Damien.

"tf" a écrit dans le message news:
3fce0c4f$0$6980$
Bonjour à tous,


Par code vba, je crée une requête dynamiquement en
utilisant un chaine de caractère :

par exemple:
chaineSQL="select ... from "

Je voudrais créer l'objet requête en base d'après
cette chaine puis ouvrir directement cet objet
par un docmd.openQuery

Savez-vous comment coder cela ?


Merci
T.




Avatar
3stone
Salut,

"tf"
Par code vba, je crée une requête dynamiquement en
utilisant un chaine de caractère :

par exemple:
chaineSQL="select ... from "

Je voudrais créer l'objet requête en base d'après
cette chaine puis ouvrir directement cet objet
par un docmd.openQuery



Dim sSQL = "Select * From Machin"

Set MaReq = currentdb.CreateQueryDef ("NomRequete", sSQL)

DoCmd.OpenQuery (MaReq)


Ok ?

--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------

Avatar
3stone
Hmmm ;-)

Dim sSQL As String

sSQL = "Select * From Machin"

Set MaReq = currentdb.CreateQueryDef ("NomRequete", sSQL)

DoCmd.OpenQuery (MaReq)



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------
Avatar
Damien Mermoz
re :
DoCmd.OpenQuery (MaReq)


t'es sûr ? :-)


"3stone" a écrit dans le message news:
3fce1578$0$272$
Hmmm ;-)

Dim sSQL As String

sSQL = "Select * From Machin"

Set MaReq = currentdb.CreateQueryDef ("NomRequete", sSQL)

DoCmd.OpenQuery (MaReq)



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------








Avatar
tf
Ca marche !!

Comment effacer l'objet requête "R_test"
par code vba ? (pas le contenu de la
requête mais l'objet lui-même)


Merci




"Damien Mermoz" a écrit dans le message news:
#4jE#
salut,

Par code vba, je crée une requête dynamiquement en
utilisant un chaine de caractère :


Heu oui si ca t'es utile ...

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

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

strSql = "select champs1 from matable"
qd.SQL = strSql

qd.Close
Set qd = Nothing
db.Close
Set db = Nothing

Voilà :-)

A +
Damien.

"tf" a écrit dans le message news:
3fce0c4f$0$6980$
Bonjour à tous,


Par code vba, je crée une requête dynamiquement en
utilisant un chaine de caractère :

par exemple:
chaineSQL="select ... from "

Je voudrais créer l'objet requête en base d'après
cette chaine puis ouvrir directement cet objet
par un docmd.openQuery

Savez-vous comment coder cela ?


Merci
T.








Avatar
3stone
"Damien Mermoz"
re :
DoCmd.OpenQuery (MaReq)


t'es sûr ? :-)



Bien sûr que je suis sûr...

si... tu ajoute les guillemets ;-)))


Avatar
Damien Mermoz
Il serait temps pour toi de faire un petit tour du côté de l'explorateur
d'objet [F2 dans VBE], ca t'aidera à trouver des methodes facilement.

pour supprimer (définitivement) une requete en vb

CurrentDb.QueryDefs.Delete ("le nom de la requete")


A +
Damien.


"tf" a écrit dans le message news:
3fce18c8$0$6982$
Ca marche !!

Comment effacer l'objet requête "R_test"
par code vba ? (pas le contenu de la
requête mais l'objet lui-même)


Merci




"Damien Mermoz" a écrit dans le message
news:

#4jE#
salut,

Par code vba, je crée une requête dynamiquement en
utilisant un chaine de caractère :


Heu oui si ca t'es utile ...

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

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

strSql = "select champs1 from matable"
qd.SQL = strSql

qd.Close
Set qd = Nothing
db.Close
Set db = Nothing

Voilà :-)

A +
Damien.

"tf" a écrit dans le message news:
3fce0c4f$0$6980$
Bonjour à tous,


Par code vba, je crée une requête dynamiquement en
utilisant un chaine de caractère :

par exemple:
chaineSQL="select ... from "

Je voudrais créer l'objet requête en base d'après
cette chaine puis ouvrir directement cet objet
par un docmd.openQuery

Savez-vous comment coder cela ?


Merci
T.