[ACCESS] Recorset et TransfertDataBase

chocoboevil Messages postés 13 Date d'inscription mardi 16 septembre 2003 Statut Membre Dernière intervention 9 mai 2007 - 4 mai 2007 à 17:46
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 - 9 mai 2007 à 09:47
Re Bonjour ! Je crée un autre sujet car le premier était imcompréhensible et surtout j'ai changer de piste pour résoudre mon pb...
Je vais essayer d'expliquer un peu plus clairement pour que vous puissiez m'éclairer car là je rame...

Dans ma table campagne, j'ai un champ [NOM CAMPAGNE]
Dans une autre base, je possede une table par campagne.

Je voudré en gros importer, toute les campagne à l'aide de leur nom via une connection ODBC.

DoCmd.TransferDatabase acImport, "ODBC",......,TABLE=ae_admaa.[NOM CAMPAGNE];....;[NOM CAMPAGNE];[NOM CAMPAGNE];False

Les 3 dernieres infos decrite étant :Source,Destination,Structure Only (dans l'aide de Do.Cmd.transfer...)
Quand je lance juste cette ligne cela marche parfaitement.

Maintenant, comment je peux automatiser tout cela.SAchant que j'ai environ 1000 nom de campagne.
Il n'y a pas moyen de faire une boucle du genre :

Indice allant=1er enregistrement de [NOM CAMPAGNE] jusque dernier enregistrement de [NOM CAMPAGNE]

DoCmd.TransferDatabase acImport, "ODBC",......,TABLE=ae_admaa.[indice];....;[indice];[indice];False

D'aprés ce que j'ai compri dans mes recherches je dois créer un recordset...J'essaie donc:

Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("CAMPAGNE NE", dbOpenTable, dbReadOnly)
rs.MoveFirst
While Not rs.EOF
   
    DoCmd.TransferDatabase acImport, "ODBC",...;"TABLE=ae_admaa.'" & rs![crm_campaign_name] & "';.....,"'" & rs![crm_campaign_name] & "'", False


    rs.MoveNext
Wend
End Sub

ET là Vb me dit :"Element non trouvé dans cette collection...
DEs idées..?
Désolé d'etre un peu chiant, mais je suis en stage, et j'aimerai vraiment réussir cela ^^
Merci

6 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
4 mai 2007 à 18:26
Salut,

As-tu bien vérifier le nom de tes champs et celui de ta table ?

Essaye cela :
DoCmd.TransferDatabase acImport, "ODBC",...;"TABLE=ae_admaa'" & rs!crm_campaign_name & "';.....,"'" & rs!crm_campaign_name & "'", False

A+
Exploreur

 
0
chocoboevil Messages postés 13 Date d'inscription mardi 16 septembre 2003 Statut Membre Dernière intervention 9 mai 2007
8 mai 2007 à 14:07
Malheuresement cela ne change absolument rien...
Peut etre faut t'il changer mon code??
Des idées car là je bloque :(
Merci d'avance
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
8 mai 2007 à 23:11
Une question qui n'a peut-être rien à voir avec le problème, mais
Pourquoi ODBC plutôt que OLEDB ?

MPi
0
chocoboevil Messages postés 13 Date d'inscription mardi 16 septembre 2003 Statut Membre Dernière intervention 9 mai 2007
9 mai 2007 à 09:31
C'est à dire ??
c'est quoi a proprement parler OLEDB ??
Vous pourriez me mettre un exemple de code pour voir si cela fonctionne?
Merci :)
0

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

Posez votre question
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
9 mai 2007 à 09:43
Salut, je sais pas si cette proposition est intéressante et rapide à executer.

Moi, je me connecterais à la base de toutes les campagnes et dans une boucle du genre for each table in database

faire transfert.

Dites moi si cela serait carrément lent et donc pas intéressant à faire.
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
9 mai 2007 à 09:47
En code sa donnerait un truc du genre (Rajouter dans projet -> référence  ADO Ext 2.8 for DLL ans SECURITY):

Dim bdd As New ADOX.Catalog
Dim Tableau As ADOX.Table

Set bdd.ActiveConnection = ta_connexion (currentdb d'apres ce que j'ai vu)

For Each Tableau In bdd.Tables
            docmd.transfert .........
Next
0
Rejoignez-nous