Requête SQL en VBA

Le
RENAUD Eric
Bonjour,

Je souhaite effectuer une requête SQL sous VBA.

Celle qui suit fonctionne (DELETE)
Dim SQL As String
SQL = "DELETE [Réfs contrat Airbus].* " & _
"FROM [Réfs contrat Airbus]"
DoCmd.RunSQL SQL

J'en ai crée une seconde à l'identique avec SELECT
Dim SQL As String
SQL = "SELECT [Suivi OF-ZPP11].[N° OF], [Suivi OF-ZPP11].Gestionnaire " & _
"FROM [Suivi OF-ZPP11]"
DoCmd.RunSQL SQL
Cette fois j'ai un message
Une action ExecuterSQL nécessite un argument consistant en une instruction
SQL
Pourquoi ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel__D
Le #17678901
Bonjour,

"RENAUD Eric"
Bonjour,

Je souhaite effectuer une requête SQL sous VBA.

Celle qui suit fonctionne (DELETE)
Dim SQL As String
SQL = "DELETE [Réfs contrat Airbus].* " & _
"FROM [Réfs contrat Airbus]"
DoCmd.RunSQL SQL

J'en ai crée une seconde à l'identique avec SELECT
Dim SQL As String
SQL = "SELECT [Suivi OF-ZPP11].[N° OF], [Suivi OF-ZPP11].Gestionnaire " & _
"FROM [Suivi OF-ZPP11]"
DoCmd.RunSQL SQL
Cette fois j'ai un message
Une action ExecuterSQL nécessite un argument consistant en une instruction
SQL
Pourquoi ?



Que cherche-tu as faire ?

PS:Une requête selection sert à renvoyer un jeu d'enregistrements et le code
utilisé n'est pas approprié.
RENAUD Eric
Le #17680651
Bonjour,
J'ai quelque peu avancé.
On m'a dit que la commande ExecuteSQL ne s'applique qu'aux requêtes Action.
J'ai modifié mon code

Dim SQL As String
Dim rs As Recordset

SQL = "SELECT [Suivi OF-ZPP11].[N° OF], [Suivi OF-ZPP11].[Gestionnaire]
" & _
"FROM [Suivi OF-ZPP11]"
Set Db = CurrentDb()
Set rs = CurrentDb.OpenRecordset(SQL)

et là je sais qu'il fonctionne car j'ai fait un test avec le code suivant
pour voir dans la fen^tre d'exécution
With rs
Do While Not .EOF
Debug.Print , .Fields(0), .Fields(1)
.MoveNext
Loop
End With

Par contre je ne sais pas comment afficher le recordset comme je le ferais
avec une requête Sélection standard
D'avance merci


"Michel__D" news: ge9fee$gan$
Bonjour,

"RENAUD Eric" news:
Bonjour,

Je souhaite effectuer une requête SQL sous VBA.

Celle qui suit fonctionne (DELETE)
Dim SQL As String
SQL = "DELETE [Réfs contrat Airbus].* " & _
"FROM [Réfs contrat Airbus]"
DoCmd.RunSQL SQL

J'en ai crée une seconde à l'identique avec SELECT
Dim SQL As String
SQL = "SELECT [Suivi OF-ZPP11].[N° OF], [Suivi OF-ZPP11].Gestionnaire " &
_
"FROM [Suivi OF-ZPP11]"
DoCmd.RunSQL SQL
Cette fois j'ai un message
Une action ExecuterSQL nécessite un argument consistant en une
instruction
SQL
Pourquoi ?



Que cherche-tu as faire ?

PS:Une requête selection sert à renvoyer un jeu d'enregistrements et le
code
utilisé n'est pas approprié.



Michel__D
Le #17680941
re,

Essaye avec ce qui suit.

SQL = "SELECT [N° OF], [Gestionnaire] FROM [Suivi OF-ZPP11];"
Set oQry = CurrentDb().CreateQueryDef("rQryTmp", SQL)
DoCmd.OpenQuery "rQryTmp"


"RENAUD Eric"
Bonjour,
J'ai quelque peu avancé.
On m'a dit que la commande ExecuteSQL ne s'applique qu'aux requêtes Action.
J'ai modifié mon code

Dim SQL As String
Dim rs As Recordset

SQL = "SELECT [Suivi OF-ZPP11].[N° OF], [Suivi OF-ZPP11].[Gestionnaire]
" & _
"FROM [Suivi OF-ZPP11]"
Set Db = CurrentDb()
Set rs = CurrentDb.OpenRecordset(SQL)

et là je sais qu'il fonctionne car j'ai fait un test avec le code suivant
pour voir dans la fen^tre d'exécution
With rs
Do While Not .EOF
Debug.Print , .Fields(0), .Fields(1)
.MoveNext
Loop
End With

Par contre je ne sais pas comment afficher le recordset comme je le ferais
avec une requête Sélection standard
D'avance merci


"Michel__D" news: ge9fee$gan$
> Bonjour,
>
> "RENAUD Eric" > news:
>> Bonjour,
>>
>> Je souhaite effectuer une requête SQL sous VBA.
>>
>> Celle qui suit fonctionne (DELETE)
>> Dim SQL As String
>> SQL = "DELETE [Réfs contrat Airbus].* " & _
>> "FROM [Réfs contrat Airbus]"
>> DoCmd.RunSQL SQL
>>
>> J'en ai crée une seconde à l'identique avec SELECT
>> Dim SQL As String
>> SQL = "SELECT [Suivi OF-ZPP11].[N° OF], [Suivi OF-ZPP11].Gestionnaire " &
>> _
>> "FROM [Suivi OF-ZPP11]"
>> DoCmd.RunSQL SQL
>> Cette fois j'ai un message
>> Une action ExecuterSQL nécessite un argument consistant en une
>> instruction
>> SQL
>> Pourquoi ?
>
> Que cherche-tu as faire ?
>
> PS:Une requête selection sert à renvoyer un jeu d'enregistrements et le
> code
> utilisé n'est pas approprié.
>




RENAUD Eric
Le #17681261
Bonjour,
C'est super, ça fonctionne.
J'ai rajouté au début le code
Db.Execute ("DROP TABLE rQryTmp")
pour effacer la table rQRYTmp
Encore merci

"Michel__D" news: ge9n00$if7$
re,

Essaye avec ce qui suit.

SQL = "SELECT [N° OF], [Gestionnaire] FROM [Suivi OF-ZPP11];"
Set oQry = CurrentDb().CreateQueryDef("rQryTmp", SQL)
DoCmd.OpenQuery "rQryTmp"


"RENAUD Eric" news:Oe61%
Bonjour,
J'ai quelque peu avancé.
On m'a dit que la commande ExecuteSQL ne s'applique qu'aux requêtes
Action.
J'ai modifié mon code

Dim SQL As String
Dim rs As Recordset

SQL = "SELECT [Suivi OF-ZPP11].[N° OF], [Suivi
OF-ZPP11].[Gestionnaire]
" & _
"FROM [Suivi OF-ZPP11]"
Set Db = CurrentDb()
Set rs = CurrentDb.OpenRecordset(SQL)

et là je sais qu'il fonctionne car j'ai fait un test avec le code suivant
pour voir dans la fen^tre d'exécution
With rs
Do While Not .EOF
Debug.Print , .Fields(0), .Fields(1)
.MoveNext
Loop
End With

Par contre je ne sais pas comment afficher le recordset comme je le
ferais
avec une requête Sélection standard
D'avance merci


"Michel__D" de
news: ge9fee$gan$
> Bonjour,
>
> "RENAUD Eric" > de
> news:
>> Bonjour,
>>
>> Je souhaite effectuer une requête SQL sous VBA.
>>
>> Celle qui suit fonctionne (DELETE)
>> Dim SQL As String
>> SQL = "DELETE [Réfs contrat Airbus].* " & _
>> "FROM [Réfs contrat Airbus]"
>> DoCmd.RunSQL SQL
>>
>> J'en ai crée une seconde à l'identique avec SELECT
>> Dim SQL As String
>> SQL = "SELECT [Suivi OF-ZPP11].[N° OF], [Suivi OF-ZPP11].Gestionnaire
>> " &
>> _
>> "FROM [Suivi OF-ZPP11]"
>> DoCmd.RunSQL SQL
>> Cette fois j'ai un message
>> Une action ExecuterSQL nécessite un argument consistant en une
>> instruction
>> SQL
>> Pourquoi ?
>
> Que cherche-tu as faire ?
>
> PS:Une requête selection sert à renvoyer un jeu d'enregistrements et le
> code
> utilisé n'est pas approprié.
>







Michel__D
Le #17682491
Si la requête existe déja au lieu de la supprimer et de la recréer, on peut utiliser ceci :

SQL = "SELECT [N° OF], [Gestionnaire] FROM [Suivi OF-ZPP11];"
Set oQry = CurrentDb().QueryDefs("rQryTmp")
oQry.SQL = SQL
DoCmd.OpenQuery "rQryTmp"
Set oQry = Nothing


"RENAUD Eric"
Bonjour,
C'est super, ça fonctionne.
J'ai rajouté au début le code
Db.Execute ("DROP TABLE rQryTmp")
pour effacer la table rQRYTmp
Encore merci

"Michel__D" news: ge9n00$if7$
> re,
>
> Essaye avec ce qui suit.
>
> SQL = "SELECT [N° OF], [Gestionnaire] FROM [Suivi OF-ZPP11];"
> Set oQry = CurrentDb().CreateQueryDef("rQryTmp", SQL)
> DoCmd.OpenQuery "rQryTmp"
>
>
> "RENAUD Eric" > news:Oe61%
>> Bonjour,
>> J'ai quelque peu avancé.
>> On m'a dit que la commande ExecuteSQL ne s'applique qu'aux requêtes
>> Action.
>> J'ai modifié mon code
>>
>> Dim SQL As String
>> Dim rs As Recordset
>>
>> SQL = "SELECT [Suivi OF-ZPP11].[N° OF], [Suivi
>> OF-ZPP11].[Gestionnaire]
>> " & _
>> "FROM [Suivi OF-ZPP11]"
>> Set Db = CurrentDb()
>> Set rs = CurrentDb.OpenRecordset(SQL)
>>
>> et là je sais qu'il fonctionne car j'ai fait un test avec le code suivant
>> pour voir dans la fen^tre d'exécution
>> With rs
>> Do While Not .EOF
>> Debug.Print , .Fields(0), .Fields(1)
>> .MoveNext
>> Loop
>> End With
>>
>> Par contre je ne sais pas comment afficher le recordset comme je le
>> ferais
>> avec une requête Sélection standard
>> D'avance merci
>>
>>
>> "Michel__D" >> de
>> news: ge9fee$gan$
>> > Bonjour,
>> >
>> > "RENAUD Eric" >> > de
>> > news:
>> >> Bonjour,
>> >>
>> >> Je souhaite effectuer une requête SQL sous VBA.
>> >>
>> >> Celle qui suit fonctionne (DELETE)
>> >> Dim SQL As String
>> >> SQL = "DELETE [Réfs contrat Airbus].* " & _
>> >> "FROM [Réfs contrat Airbus]"
>> >> DoCmd.RunSQL SQL
>> >>
>> >> J'en ai crée une seconde à l'identique avec SELECT
>> >> Dim SQL As String
>> >> SQL = "SELECT [Suivi OF-ZPP11].[N° OF], [Suivi OF-ZPP11].Gestionnaire
>> >> " &
>> >> _
>> >> "FROM [Suivi OF-ZPP11]"
>> >> DoCmd.RunSQL SQL
>> >> Cette fois j'ai un message
>> >> Une action ExecuterSQL nécessite un argument consistant en une
>> >> instruction
>> >> SQL
>> >> Pourquoi ?
>> >
>> > Que cherche-tu as faire ?
>> >
>> > PS:Une requête selection sert à renvoyer un jeu d'enregistrements et le
>> > code
>> > utilisé n'est pas approprié.
>> >
>>
>>
>




Publicité
Poster une réponse
Anonyme