Remplir une table avec avec un recordset

Le
jam
Bonjour
J'attaque une base Sql Server à partir d'Access.
Je crée un recordset sur une table de la base.
Je souhaite insérer le résultat de mon recordset dans une table Access.
La seule solution que j'ai trouvé, c'est de créer la table dans Access, de
parcourir le recordset et de remplir la table (edit + update) par une boucle
sur le recordset.
Bien sûr cette technique est trés longue.
Je souhaite donner une instruction du style insert into "table access" +
"résultat du recordset"

Merci de votre aide

Gambi
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Rv
Le #5059741
Bonjour,

J'étais sur la même problèmatique il y quelques temps. Aprés test, je
suis finalement revenu à la mèthode qui semble lourde:
- Création de la table (en fait elle était déjà créé, mais la
création n'est pas trés pénalisante)
- Création du recordset
- Copie du Recordset enr. par enr. dans la table
car elle s'est avéré sensiblement plus performante (sur des tables
volumineuses) en jouant sur les transactions dans la connexion ou bien en
jouant sur la localisation (Seveur-Client) du curseur du recordset. Tout
ceci en ADO avec un pilote OLEDB.

Je donne quand même la réponse à la question (à adapter):

Sub copieSQLServerVersAccess

Dim strNomPC as String
Dim strNomBase as String
Dim strConnBaseServeur as String
dim strRequete as String

strNomPC = "....."
strNomBase = "....."
strConnBaseServeur = "[ODBC;DRIVER={SQL Server};SERVER=" & strNomPC &
";DATABASE=" & strNomBase & ";]"
strRequete = "INSERT INTO tableAccess SELECT * FROM tableSQLServer IN
''" & strConnBaseServeur & " WHERE ....."
' on peut aussi écrire
' strRequete = "INSERT INTO tableAccess(c1, c2, c3) SELECT c1, c2, c3
FROM tableSQLServer IN ''" & strConnBaseServeur & " WHERE ....."
' Une requete de type SELECT INTO doit permettre de créer la table
access. A tester...
currentdb.execute strRequete

End sub

Donc comme je disais ce n'est pas si rapide que ça (je dirais que c'est le
pilote ODBC qui rame. A voir!).
Pour ma part j'utilise Access2000.

Je dois revenir sur ces méthodes d'ici peu de temps. Alors toute avancée sur
le sujet m'interesse beaucoup. Ceci pour dire que tout retour sera largement
apprécié...

A+

Rv


"jam" news:408feb2a$0$491$
Bonjour
J'attaque une base Sql Server à partir d'Access.
Je crée un recordset sur une table de la base.
Je souhaite insérer le résultat de mon recordset dans une table Access.
La seule solution que j'ai trouvé, c'est de créer la table dans Access, de
parcourir le recordset et de remplir la table (edit + update) par une
boucle

sur le recordset.
Bien sûr cette technique est trés longue.
Je souhaite donner une instruction du style insert into "table access" +
"résultat du recordset"

Merci de votre aide

Gambi




Publicité
Poster une réponse
Anonyme