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"
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Rv
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" a écrit dans le message de 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
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" <pechbojm@free.fr> a écrit dans le message de
news:408feb2a$0$491$636a15ce@news.free.fr...
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"
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" a écrit dans le message de 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"