VBA créer une requete ajout

darkspoilt Messages postés 254 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 10 octobre 2013 - 21 mai 2007 à 11:48
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 - 21 mai 2007 à 17:00
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

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 mai 2007 à 11: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
0
darkspoilt Messages postés 254 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 10 octobre 2013
21 mai 2007 à 12:02
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>
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
21 mai 2007 à 12:28
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
;)"

0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
21 mai 2007 à 12:29
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
darkspoilt Messages postés 254 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 10 octobre 2013
21 mai 2007 à 13:25
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.
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
21 mai 2007 à 13:43
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
;)"
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
21 mai 2007 à 13:45
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
;)"
0
darkspoilt Messages postés 254 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 10 octobre 2013
21 mai 2007 à 14:08
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
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 mai 2007 à 14:18
Salut,
Mais quelle est cette erreur. Il serait utile de nous la dire

@+: Ju£i?n
Pensez: Réponse acceptée
0
darkspoilt Messages postés 254 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 10 octobre 2013
21 mai 2007 à 14:25
Il y a une Erreur de syntaxe dans mon INSERT TO
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
21 mai 2007 à 14:43
fais msgbox SQL pour post nous ce que cela affiche pour voir
0
darkspoilt Messages postés 254 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 10 octobre 2013
21 mai 2007 à 15:41
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
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
21 mai 2007 à 17:00
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 />
0
Rejoignez-nous