Transfère access -> sql

Signaler
Messages postés
13
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
12 octobre 2004
-
Messages postés
13
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
12 octobre 2004
-
Bonjour

Je dois tranféré une table access vers sql server à chaque semaine. Je commence en VB. J'ai ouvert une connexion sur ma BD access et sur la BD SQL. J'ai créer une requête qui sélectionne tous les enregistrements de ma table à transférer. Le problème est que je ne sais pas comment envoyer ces enregistrements a la BD SQL. Je cherche beaucoup, mais je n'ai pas encore trouvé.

Merci de votre aide.

Yanick

5 réponses

Messages postés
615
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
4 juillet 2012

La question ets un peu brut de fonderie:
d'abord veux tu créer un nouvelle table dans SQL server avec tes records access chaque semaine, ou dois tu les ajouter à une table existante dans SQL-server ?
ensuite de quel façon travaille tu pour ta connection ?
RDO,ADO
utilise tu des contrôles Adodc etc.. etc..

Pascal Laurençon
Mieux vaut un petit clic que deux grandes claques..
Mieux vaut un naze bin qu'un naze tout court..
Messages postés
13
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
12 octobre 2004

Désolé pour le manque d'information.

Ma connection est avec ADO. Je voudrais créer une nouvelle table pour remplacer l'ancienne mais si je vois que la table prend trop d'ampleur, l'ajout serais a considérer. Je mets mon code, sa va donner une meilleure idée.

---------------------------------------------------------------------
Public Sub Connect()

Dim conSql As ADODB.Connection
Dim conAcc As ADODB.Connection
Dim rs As ADODB.Recordset
Dim SQL As String

Set conSql = New ADODB.Connection
Set conAcc = New ADODB.Connection
Set rs = New ADODB.Recordset
SQL = "SELECT * FROM maTable"

conSql.ConnectionString = "DRIVER=SQL Server;SERVER=nomServeur;DATABASE=x;UID=x;PWD=x"

conAcc.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=Chemin\maTable.mdb"

conSql.Open
conAcc.Open

Set rs = conAcc.Execute(SQL) 'Selection de tous les enreg.

conSql.Close
conAcc.Close

End Sub
---------------------------------------------------------------------

Merci

Yanick
Messages postés
13
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
12 octobre 2004

Désolé pour le manque d'information.

Ma connection est avec ADO. Je voudrais créer une nouvelle table pour remplacer l'ancienne mais si je vois que la table prend trop d'ampleur, l'ajout serais a considérer. Je mets mon code, sa va donner une meilleure idée.

---------------------------------------------------------------------
Public Sub Connect()

Dim conSql As ADODB.Connection
Dim conAcc As ADODB.Connection
Dim rs As ADODB.Recordset
Dim SQL As String

Set conSql = New ADODB.Connection
Set conAcc = New ADODB.Connection
Set rs = New ADODB.Recordset
SQL = "SELECT * FROM maTable"

conSql.ConnectionString = "DRIVER=SQL Server;SERVER=nomServeur;DATABASE=x;UID=x;PWD=x"

conAcc.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=Chemin\maTable.mdb"

conSql.Open
conAcc.Open

Set rs = conAcc.Execute(SQL) 'Selection de tous les enreg.

conSql.Close
conAcc.Close

End Sub
---------------------------------------------------------------------

Merci

Yanick
Messages postés
615
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
4 juillet 2012

En gros si tu désire seulement balancer des records depuis une table access sur une table sql il te suffit d'ouvrir deux connections une avec SQL et l'autre avec Access puis de définir deux recordset, un qui pointe sur les enregistr. de la table Access que tu désire transférer, ensuite une boucle (jusqu'au EOF du recordset 1) qui vas t'ajouter par le biais du 2eme recordset les enregistrements dans la table SQL
Si tu veux effacer d'abord la table dans SQL puis la recréer avec les records venant d'Access alors il te faut d'abord faire un drop de ton ancienne table puis la recréer avec tes nouveaux records (insert into...)

Pascal Laurençon
Mieux vaut un petit clic que deux grandes claques..
Mieux vaut un naze bin qu'un naze tout court..
Messages postés
13
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
12 octobre 2004

merci Pascal pour ta réponse.

Yanick