Transfère access -> sql

maverick546 Messages postés 13 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 12 octobre 2004 - 26 mai 2004 à 15:19
maverick546 Messages postés 13 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 12 octobre 2004 - 27 mai 2004 à 16:52
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

cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
26 mai 2004 à 16:53
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..
0
maverick546 Messages postés 13 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 12 octobre 2004
26 mai 2004 à 17:06
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
0
maverick546 Messages postés 13 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 12 octobre 2004
26 mai 2004 à 17:07
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
0
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
27 mai 2004 à 15:02
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..
0

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

Posez votre question
maverick546 Messages postés 13 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 12 octobre 2004
27 mai 2004 à 16:52
merci Pascal pour ta réponse.

Yanick
0
Rejoignez-nous