OVH Cloud OVH Cloud

Requête SQL avec VBA

5 réponses
Avatar
God
Bonjour,

Je suis néophite avec ACCESS. J'ai construit un formulaire basé sur une
requête. J'ai un contrôle (une liste déroulante) dans lequel j'inscrit du
code.
J'inscrit du code dans l'événement "si changement". voici ma ligne de code
DoCmd.RunSQL "Select * from immeuble"

Mais access me retourne l'erreur suivante " Erreur d'Exécution 2342. Une
action exécuterSQL nécessite un arguement consistant en une instruction SQL

Premièrement peut-on inscrire une requête SQL dans un événement ? Il me
semble que oui avec l'instruction Docmd.RunSQL mais bon je me trompe
peut-etre

Si oui quel est mon erreur ? Dois-je déclarer quelque chose avant du genre
Dim db as Database ??

Merci de tout aide

Guy

5 réponses

Avatar
Pierre CFI [mvp]
bonjour
oui, hum , quel est le but de l'opération ???

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net

"God" a écrit dans le message de news: D3Mce.16121$
Bonjour,

Je suis néophite avec ACCESS. J'ai construit un formulaire basé sur une requête. J'ai un contrôle (une liste déroulante) dans
lequel j'inscrit du code.
J'inscrit du code dans l'événement "si changement". voici ma ligne de code DoCmd.RunSQL "Select * from immeuble"

Mais access me retourne l'erreur suivante " Erreur d'Exécution 2342. Une action exécuterSQL nécessite un arguement consistant en
une instruction SQL

Premièrement peut-on inscrire une requête SQL dans un événement ? Il me semble que oui avec l'instruction Docmd.RunSQL mais bon je
me trompe peut-etre

Si oui quel est mon erreur ? Dois-je déclarer quelque chose avant du genre Dim db as Database ??

Merci de tout aide

Guy



Avatar
God
En fait c'est d'aller chercher dans une autre table, qui n'est pas relié à
ma requête, une information relié sur une information que je choisi dans une
liste déroulante.

En gros voici mon projet.

à mon travail nous remplisson à la main un formulaire (formulaire d'une
soumision de travail, pour un ou des immeubles, pour des entrepreneurs) qui
est rédigé avec Word. Je veux remplir les données avec ACCESS étant donné
que les information des entrepreneurs se répètent ainsi que les informations
des immeubles auquels je fais faire des travaux.Quoi de mieux que de la
faire avec ACCESS !!

Je ne peut déroger de la forme du formulaire faite avec Word.

Dans mon formulaire je dois entrée les informations (numéro d'immeuble,
adresse, rue, ville etc.) pour chaque immeuble que je fais faire des
travaux.

Je me suis créé une table appelé "Immeuble". Dans cette table j'entre les
informations de tous les immeubles (adresse, rue, ville etc.) que je
m'occupe.

Sur le formulaire, j'ai trois contrôles listes déroulantes dans lesquelles
je veux donc choisir le numéro d'un immeuble (de la table Immeuble) et par
se numéro aller chercher les informations (adresse rue etc..) et les
inscrires , dans une étiquette, à coté du numéro de l'immeuble (sur mon
formulaire) que j'ai choisi.

Donc dans le contrôle de la liste déroulate sur l'événement "changement"
j'ai inscrit du code afin de créer une requête pour aller chercher les
informations dans la table "immeuble".

Mais je n'y arrive point.. J'ai vu sur le NET qu'on ne peut exécuter la
requête SELECT avec Docmd ! ???

En passant, je peut établir avec une relation un champs dans une table qui
pointe sur trois champs dans une autre table ?
J'ai une table appelée "Relevé d'Adjudication" dans laquelle j'ai trois
champs numériques appelés immeuble1, immeuble2 et immeuble3. Dans ma table
"immeuble" j'ai une clé primaire que je fais pointer sur les trois champs de
la table "Relevé d'Adjudication".
Quand j'ai fais ces trois liens ACCESS m'a créé trois tables différentes
(fondé sur ma table Immeuble) mais appellées immeuble_1 immeuble_2 et
immeuble_3.

Est-ce bizarre cette facon de procéder en programmation ??

Merci

Guy





"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
oui, hum , quel est le but de l'opération ???

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net

"God" a écrit dans le message de news:
D3Mce.16121$
Bonjour,

Je suis néophite avec ACCESS. J'ai construit un formulaire basé sur une
requête. J'ai un contrôle (une liste déroulante) dans lequel j'inscrit du
code.
J'inscrit du code dans l'événement "si changement". voici ma ligne de
code DoCmd.RunSQL "Select * from immeuble"

Mais access me retourne l'erreur suivante " Erreur d'Exécution 2342. Une
action exécuterSQL nécessite un arguement consistant en une instruction
SQL

Premièrement peut-on inscrire une requête SQL dans un événement ? Il me
semble que oui avec l'instruction Docmd.RunSQL mais bon je me trompe
peut-etre

Si oui quel est mon erreur ? Dois-je déclarer quelque chose avant du
genre Dim db as Database ??

Merci de tout aide

Guy







Avatar
Pierre CFI [mvp]
.../....
ben dis donc, tu es du genre compliqué

sur le formulaire qui donne les infos immeuble, tu mets une liste déroulante, tu laisses faire l'assistant qui va te demander ce que
tu veux faire , 3 solutions, tu prends la 3eme marqué trouver un enregistremnt, là tu mets 2 champs le no et un autre champs
significatif
quand tu choisiras un no dans cette liste, , au miracle tu afficheras toutes les infos


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net

"God" a écrit dans le message de news: 5pOce.15612$
En fait c'est d'aller chercher dans une autre table, qui n'est pas relié à ma requête, une information relié sur une information
que je choisi dans une liste déroulante.

En gros voici mon projet.

à mon travail nous remplisson à la main un formulaire (formulaire d'une soumision de travail, pour un ou des immeubles, pour des
entrepreneurs) qui est rédigé avec Word. Je veux remplir les données avec ACCESS étant donné que les information des entrepreneurs
se répètent ainsi que les informations des immeubles auquels je fais faire des travaux.Quoi de mieux que de la faire avec ACCESS
!!

Je ne peut déroger de la forme du formulaire faite avec Word.

Dans mon formulaire je dois entrée les informations (numéro d'immeuble, adresse, rue, ville etc.) pour chaque immeuble que je fais
faire des travaux.

Je me suis créé une table appelé "Immeuble". Dans cette table j'entre les informations de tous les immeubles (adresse, rue, ville
etc.) que je m'occupe.

Sur le formulaire, j'ai trois contrôles listes déroulantes dans lesquelles je veux donc choisir le numéro d'un immeuble (de la
table Immeuble) et par se numéro aller chercher les informations (adresse rue etc..) et les inscrires , dans une étiquette, à coté
du numéro de l'immeuble (sur mon formulaire) que j'ai choisi.

Donc dans le contrôle de la liste déroulate sur l'événement "changement" j'ai inscrit du code afin de créer une requête pour aller
chercher les informations dans la table "immeuble".

Mais je n'y arrive point.. J'ai vu sur le NET qu'on ne peut exécuter la requête SELECT avec Docmd ! ???

En passant, je peut établir avec une relation un champs dans une table qui pointe sur trois champs dans une autre table ?
J'ai une table appelée "Relevé d'Adjudication" dans laquelle j'ai trois champs numériques appelés immeuble1, immeuble2 et
immeuble3. Dans ma table "immeuble" j'ai une clé primaire que je fais pointer sur les trois champs de la table "Relevé
d'Adjudication".
Quand j'ai fais ces trois liens ACCESS m'a créé trois tables différentes (fondé sur ma table Immeuble) mais appellées immeuble_1
immeuble_2 et immeuble_3.

Est-ce bizarre cette facon de procéder en programmation ??

Merci

Guy





"Pierre CFI [mvp]" a écrit dans le message de news:
bonjour
oui, hum , quel est le but de l'opération ???

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net

"God" a écrit dans le message de news: D3Mce.16121$
Bonjour,

Je suis néophite avec ACCESS. J'ai construit un formulaire basé sur une requête. J'ai un contrôle (une liste déroulante) dans
lequel j'inscrit du code.
J'inscrit du code dans l'événement "si changement". voici ma ligne de code DoCmd.RunSQL "Select * from immeuble"

Mais access me retourne l'erreur suivante " Erreur d'Exécution 2342. Une action exécuterSQL nécessite un arguement consistant en
une instruction SQL

Premièrement peut-on inscrire une requête SQL dans un événement ? Il me semble que oui avec l'instruction Docmd.RunSQL mais bon
je me trompe peut-etre

Si oui quel est mon erreur ? Dois-je déclarer quelque chose avant du genre Dim db as Database ??

Merci de tout aide

Guy











Avatar
God
Compliqué moi non !! je veux seulement comprendre le code VBA et écrire une
requête. SQL.

Donc si je suis dans une procédure de type événement appelé "si changement";
Avons-nous le droit (selon la code) d'écrire du code pour aller chercher de
l'information dans une autre table de ma base de donné.

Cette base est appelé SIQ dans laquelle j'ai une requête fondé sur deux
tables appelé Relevé d'adjudication et Immeuble.

Je veux par code pointer sur une enregistrement que je choisi apr code ou
aller chercher de l'information par une requête SQL.

J'ai inscrit en code les lignes suivantes:

Dim DB As Database
Dim rs As Recordset
Set DB = CurrentDb
Set rs = DB.OpenRecordset(immeuble)

Mais j'ai une erreur sur la dernière ligne. L'erreur me dit "Le moteur de
la base de donné Microsoft jet ne peut pas trouver la table ou la requête
source. Assurez vous quelle existe et qu'elle est bien orthographiée!

La table existe bien vu que je fais une requête sur cette table !

Alors où est l'erreur ???

Merci




"God" a écrit dans le message de news:
D3Mce.16121$
Bonjour,

Je suis néophite avec ACCESS. J'ai construit un formulaire basé sur une
requête. J'ai un contrôle (une liste déroulante) dans lequel j'inscrit du
code.
J'inscrit du code dans l'événement "si changement". voici ma ligne de code
DoCmd.RunSQL "Select * from immeuble"

Mais access me retourne l'erreur suivante " Erreur d'Exécution 2342. Une
action exécuterSQL nécessite un arguement consistant en une instruction
SQL

Premièrement peut-on inscrire une requête SQL dans un événement ? Il me
semble que oui avec l'instruction Docmd.RunSQL mais bon je me trompe
peut-etre

Si oui quel est mon erreur ? Dois-je déclarer quelque chose avant du genre
Dim db as Database ??

Merci de tout aide

Guy



Avatar
Eric
Bonjour,

Essaies avec :
Set rs = DB.OpenRecordset("immeuble", dbOpenDynaset)
ou
Set rs = DB.OpenRecordset("immeuble", dbOpenTable)
suivant le traitement que tu fais.

Tu devrais préfixer tes objets
Dim DB As DAO.Database, rs as DAO.Recordset

A+
Eric

Compliqué moi non !! je veux seulement comprendre le code VBA et écrire une
requête. SQL.

Donc si je suis dans une procédure de type événement appelé "si changement";
Avons-nous le droit (selon la code) d'écrire du code pour aller chercher de
l'information dans une autre table de ma base de donné.

Cette base est appelé SIQ dans laquelle j'ai une requête fondé sur deux
tables appelé Relevé d'adjudication et Immeuble.

Je veux par code pointer sur une enregistrement que je choisi apr code ou
aller chercher de l'information par une requête SQL.

J'ai inscrit en code les lignes suivantes:

Dim DB As Database
Dim rs As Recordset
Set DB = CurrentDb
Set rs = DB.OpenRecordset(immeuble)

Mais j'ai une erreur sur la dernière ligne. L'erreur me dit "Le moteur de
la base de donné Microsoft jet ne peut pas trouver la table ou la requête
source. Assurez vous quelle existe et qu'elle est bien orthographiée!

La table existe bien vu que je fais une requête sur cette table !

Alors où est l'erreur ???

Merci




"God" a écrit dans le message de news:
D3Mce.16121$

Bonjour,

Je suis néophite avec ACCESS. J'ai construit un formulaire basé sur une
requête. J'ai un contrôle (une liste déroulante) dans lequel j'inscrit du
code.
J'inscrit du code dans l'événement "si changement". voici ma ligne de code
DoCmd.RunSQL "Select * from immeuble"

Mais access me retourne l'erreur suivante " Erreur d'Exécution 2342. Une
action exécuterSQL nécessite un arguement consistant en une instruction
SQL

Premièrement peut-on inscrire une requête SQL dans un événement ? Il me
semble que oui avec l'instruction Docmd.RunSQL mais bon je me trompe
peut-etre

Si oui quel est mon erreur ? Dois-je déclarer quelque chose avant du genre
Dim db as Database ??

Merci de tout aide

Guy