Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

vba + ADO copie de ligne

1 réponse
Avatar
Emcy
bonjour,

actuellement, je récupère une ligne d'une base de donnée Access et je la
mets dans une variable de type ADODB.Fields
y a t-il un moyen simple de créer cette ligne dans une autre BDD ? si oui,
comment ?

1 réponse

Avatar
Pierre Fauconnier
Bonsoir

Si je comprends bien, tu veux transférer des données access vers un autre
gestionnaire de données.

Je procéderais comme suit

sub Transfert
dim ado_Access as new adodb.connection
dim ado_AutreBDD as new adodb.connection
dim rs_Access as new adodb.recordset
dim rs_AutreBdd as new adodb.recordset

ado_access.open chaine_Connexion_Access
ado_AutreBDD.open chaine_Connexion_AutreBDD

rs_Access.open "select * from matable", ado_Access
rs_autrebdd.open "select * from matable", ado_autrebdd

do while not rs_access.eof
rs_autrebdd.addnew
with rs_access
rs_autre_bdd!champ1 = !champ1
rs_autre_bdd!champ2 = !champ2
...
end with
rs_autrebdd.update
rs_access.movenext
loop

set rs_access = nothing
set rs_autrebdd = nothing
set ado_access= nothing
set ado_autrebdd = nothing
end sub

Je n'ai pas testé au niveau syntaxique, mais la logique devrait y être... Il
faut évidemment pour cela que les structures des tables soient identiques.
Sinon, tu dois "mapper" les champs, c'est-à-dire faire correspondre les noms
des champs Access avec ceux de l'autre table.

Personnellement, je ne connais pas de moyen plus rapide que de scanner ligne
par ligne, mais si quelqu'un a une astuce, je suis preneur

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"Emcy" a écrit dans le message de news:

bonjour,

actuellement, je récupère une ligne d'une base de donnée Access et je la
mets dans une variable de type ADODB.Fields
y a t-il un moyen simple de créer cette ligne dans une autre BDD ? si oui,
comment ?