VBA créer une requete ajout

Signaler
Messages postés
257
Date d'inscription
jeudi 13 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2013
-
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
-
Bonjour
j'aimerais créer une requete ajout en VBA c'est la meme que la graphique sous Access sauf qu'il me manque les objet et le méthodes a utilisé.J'utilise le VBA car les sources et les cibles seront variables.

Si quelqu'un peut m'aider je lui en serais très reconnaissant

13 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
50
Salut,
Est ce que déjà tu arrives à te connecter à ta base depuis VBA?
Si non alors regardes du côté de ADO

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
257
Date d'inscription
jeudi 13 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2013

oui c'est car je l'importe depuis VBA
Mais j'ai pas assez de connaissance en VBA. pour continuer je sais pas ce qu'est l'ADO.

en SQL ca donnerais ca
<code class="symbol">
INSERT INTO tblClients2 
( 
NumCli
, 
NomCli
, 
PreCli 
)
SELECT 
[
Numéro Client
], [
Nom Client
], [
Prénom Client
]
FROM tblClients
;

Mais il me le faudrais en VBA car mes tables sont variables

Merci pour ton aide
</code>
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
2
Dans un premier temps, tu peux voir que pour executer une requete, tu as la méthode RunSQL de l'objet DoCmd il me semble

SQL = "INSERT INTO tblClients2
( 
NumCli
, 
NomCli
, 
PreCli 
)
SELECT 
[
Numéro Client
], [
Nom Client
], [
Prénom Client
]
FROM tblClients
;)"

Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
2
Dans un premier temps, tu peux voir que pour executer une requete, tu as la méthode RunSQL de l'objet DoCmd il me semble

SQL = "INSERT INTO tblClients2
( 
NumCli
, 
NomCli
, 
PreCli 
)
SELECT 
[
Numéro Client
], [
Nom Client
], [
Prénom Client
]
FROM tblClients
;)"

DoCmd.RunSQL SQL
Messages postés
257
Date d'inscription
jeudi 13 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2013

Oki merci ca m'avance déja beaucoup.
Mais en fait tblClient2 est une variable ke je récupere d'un formulaire et ceci est rentré par l'utilisateur. Donc le souci c'est qu'il va prendre tblClient2 comme une table et non comme variable.
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
2
Oui dsl, je devais mangé, donc pour la variable
SQL "INSERT INTO " & tblClients2 & "
( 
NumCli
, 
NomCli
, 
PreCli 
)
SELECT 
[
Numéro Client
], [
Nom Client
], [
Prénom Client
]
FROM = tblClients
;)"
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
2
A encore désolé, tu auras peut etre une erreur car il n'y a pas d'espace apres la second " de ce que j'ai mis en rose :
SQL "INSERT INTO " & tblClients2 & "
( 
NumCli
, 
NomCli
, 
PreCli 
)
SELECT 
[
Numéro Client
], [
Nom Client
], [
Prénom Client
]
FROM = tblClients
;)"
Messages postés
257
Date d'inscription
jeudi 13 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2013

C 'est pas grave

j'ai tapé le code suivant

Sub MacroEssai()


Dim Var As String
Var = "Table2"


DoCmd.TransferSpreadsheet acImport, , "Table2", "D:\Test\Essai.xls", 0


Sql "INSERT INTO Test ( année, OPPO, MPE, MPF, MRE, MRF, M_ )SELECT , [année], [OPPO], [MPE], [MPF], [MRE], [MRF], [M_] FROM & Var;)"


DoCmd.RunSQL Sql


End Sub

et il me met une erreur a DoCmd.RunSQL sql et je vois pas pourquoi
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
50
Salut,
Mais quelle est cette erreur. Il serait utile de nous la dire

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
257
Date d'inscription
jeudi 13 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2013

Il y a une Erreur de syntaxe dans mon INSERT TO
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
2
fais msgbox SQL pour post nous ce que cela affiche pour voir
Messages postés
257
Date d'inscription
jeudi 13 janvier 2005
Statut
Membre
Dernière intervention
10 octobre 2013

Excuse moi j'ai pas vu ton message le probleme de syntaxe est réglé j'avais la derniere parenthese ki était en trop

il m'affiche ca
INSERT INTO Test (année, OPPO, MPE, MPF, MRE, MRF, M__ ) SELECT année, OPPO, MPE, MPF, MRE, MRF, M__ FROM Table2;

mais il me redemande les valeurs des champs de ma table2 alors ke je veux récupérer celle déja présente
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Salut,
pourquoi tu te compliques la vie en mettant le nom de la table dans une variable ?
d' autant plus que ton expression doit se présenter ainsi:


Sql = "INSERT INTO Test ( année, OPPO, MPE, MPF, MRE, MRF, M_ )SELECT , Teble2![année], Teble2![OPPO], Teble2![MPE], Teble2![MPF], Teble2![MRE], Teble2![MRF], [M_] FROM Teble2"





<hr />