OVH Cloud OVH Cloud

Requête SQL en VBA

7 réponses
Avatar
JM
Bonjour.

Dans du code événementiel, j'affecte des valeurs à des variables, fonction
de divers crières et calculs. Cette manière de faire fonctionne, mais trouve
ses limites, en particulier pour la maintenance. Je souhaiterait modifier
cette méthode et renvoyer les valeurs dans des champs d'une table. Je ne
sais pas faire, je veux dire que je ne sais pas comment écrire 'Update TOTO
set Champ1=NomdeLaVariable' dans le code. Je suppose que c'est possible,
mais comment faire comprendre à Access que l'instruction est une instruction
SQL ?

Quelqu'un aurait-il l'amabilité de me donner un exemple, ou m'iniquer un
tutoriel efficace sur ce sujet ?

Avec mes remerciement,

7 réponses

Avatar
Gafish
JM wrote:
Bonjour.


Bonjour

Dans du code événementiel, j'affecte des valeurs à des variables,
fonction de divers crières et calculs. Cette manière de faire
fonctionne, mais trouve ses limites, en particulier pour la
maintenance. Je souhaiterait modifier cette méthode et renvoyer les
valeurs dans des champs d'une table. Je ne sais pas faire, je veux
dire que je ne sais pas comment écrire 'Update TOTO set
Champ1=NomdeLaVariable' dans le code. Je suppose que c'est possible,
mais comment faire comprendre à Access que l'instruction est une
instruction SQL ?



essaie quelque chose du genre :

CurrentDb.Execute "UPDATE TOTO SET [Champ1]=" & taVariable & ";"

et si ton champ est de type texte, il te faudra des guillemets simples '
comme suit :

CurrentDb.Execute "UPDATE TOTO SET [Champ1]=' " & taVariable & " ';"

(j'ai espacé expres les " et les ' mais tu peux enlever les espaces entres)

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Whitetown
Bonjour,

Essaye ca!

Dim SQL as string
SQL="Ta requête SQL"
Docmd.runsql(SQL)

Cordialement


Bonjour.

Dans du code événementiel, j'affecte des valeurs à des variables, fonction
de divers crières et calculs. Cette manière de faire fonctionne, mais trouve
ses limites, en particulier pour la maintenance. Je souhaiterait modifier
cette méthode et renvoyer les valeurs dans des champs d'une table. Je ne
sais pas faire, je veux dire que je ne sais pas comment écrire 'Update TOTO
set Champ1=NomdeLaVariable' dans le code. Je suppose que c'est possible,
mais comment faire comprendre à Access que l'instruction est une instruction
SQL ?

Quelqu'un aurait-il l'amabilité de me donner un exemple, ou m'iniquer un
tutoriel efficace sur ce sujet ?

Avec mes remerciement,





Avatar
JM
Merci !



"Whitetown" a écrit dans le message de
news:
Bonjour,

Essaye ca!

Dim SQL as string
SQL="Ta requête SQL"
Docmd.runsql(SQL)

Cordialement


Bonjour.

Dans du code événementiel, j'affecte des valeurs à des variables,
fonction


de divers crières et calculs. Cette manière de faire fonctionne, mais
trouve


ses limites, en particulier pour la maintenance. Je souhaiterait
modifier


cette méthode et renvoyer les valeurs dans des champs d'une table. Je ne
sais pas faire, je veux dire que je ne sais pas comment écrire 'Update
TOTO


set Champ1=NomdeLaVariable' dans le code. Je suppose que c'est possible,
mais comment faire comprendre à Access que l'instruction est une
instruction


SQL ?

Quelqu'un aurait-il l'amabilité de me donner un exemple, ou m'iniquer un
tutoriel efficace sur ce sujet ?

Avec mes remerciement,







Avatar
JM
Bonjour.

J'ai bien compris que l'instruction RunSql (xxx) lancait l'exécution d'une
requête défine dans la chaine xxx.
Je vous remercie.

Je crois constater, mais je peux me tromper, que cette manière de faire ne
fonctionne que pour des requêtes 'action', comme Update. Mais pas en requête
SELECT.

Alors je me permets une nouvelle question : comment récupérer en VBA le
contenu d'un champ d'une table, un simple SELECT Monchamp FROM Matable...

?

Merci d'avance.


"JM" a écrit dans le message de
news:
Merci !



"Whitetown" a écrit dans le message
de

news:
Bonjour,

Essaye ca!

Dim SQL as string
SQL="Ta requête SQL"
Docmd.runsql(SQL)

Cordialement


Bonjour.

Dans du code événementiel, j'affecte des valeurs à des variables,
fonction


de divers crières et calculs. Cette manière de faire fonctionne, mais
trouve


ses limites, en particulier pour la maintenance. Je souhaiterait
modifier


cette méthode et renvoyer les valeurs dans des champs d'une table. Je
ne



sais pas faire, je veux dire que je ne sais pas comment écrire 'Update
TOTO


set Champ1=NomdeLaVariable' dans le code. Je suppose que c'est
possible,



mais comment faire comprendre à Access que l'instruction est une
instruction


SQL ?

Quelqu'un aurait-il l'amabilité de me donner un exemple, ou m'iniquer
un



tutoriel efficace sur ce sujet ?

Avec mes remerciement,











Avatar
Gafish
JM wrote:
J'ai bien compris que l'instruction RunSql (xxx) lancait l'exécution
d'une requête défine dans la chaine xxx.
Je vous remercie.
Je crois constater, mais je peux me tromper, que cette manière de
faire ne fonctionne que pour des requêtes 'action', comme Update.
Mais pas en requête SELECT.
Alors je me permets une nouvelle question : comment récupérer en VBA
le contenu d'un champ d'une table, un simple SELECT Monchamp FROM
Matable...


Pour un select c'est plus délicat effectivement, il te faut jongler avec des
objets que l'on nomme "recordset"
Tu trouveras toutes les infos ici :
http://officesystem.access.free.fr/vba/recordset.htm

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
JM
Très bien, j'y vais.

Merci !




"Gafish" a écrit dans le message de
news:
JM wrote:
J'ai bien compris que l'instruction RunSql (xxx) lancait l'exécution
d'une requête défine dans la chaine xxx.
Je vous remercie.
Je crois constater, mais je peux me tromper, que cette manière de
faire ne fonctionne que pour des requêtes 'action', comme Update.
Mais pas en requête SELECT.
Alors je me permets une nouvelle question : comment récupérer en VBA
le contenu d'un champ d'une table, un simple SELECT Monchamp FROM
Matable...


Pour un select c'est plus délicat effectivement, il te faut jongler avec
des

objets que l'on nomme "recordset"
Tu trouveras toutes les infos ici :
http://officesystem.access.free.fr/vba/recordset.htm

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr





Avatar
JM
Bonjour,

avec l'aide indiquée, ça devient un jeu d'enfant. Mais encore fallait-il
trouver l'aide, et la bonne. alors merci infiniment, j'ai pu grâce à toi
terminer mon travail rapidement. Bravo !


"JM" a écrit dans le message de
news:%
Très bien, j'y vais.

Merci !




"Gafish" a écrit dans le message de
news:
JM wrote:
J'ai bien compris que l'instruction RunSql (xxx) lancait l'exécution
d'une requête défine dans la chaine xxx.
Je vous remercie.
Je crois constater, mais je peux me tromper, que cette manière de
faire ne fonctionne que pour des requêtes 'action', comme Update.
Mais pas en requête SELECT.
Alors je me permets une nouvelle question : comment récupérer en VBA
le contenu d'un champ d'une table, un simple SELECT Monchamp FROM
Matable...


Pour un select c'est plus délicat effectivement, il te faut jongler avec
des

objets que l'on nomme "recordset"
Tu trouveras toutes les infos ici :
http://officesystem.access.free.fr/vba/recordset.htm

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr