Access et VB : attacher des tables via ODBC
kodokan
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
guigui -
guigui -
Bonjour,
je souhaite écrire un code VB sous Access qui permette d'attacher une table d'un fichier externe dans ma BaseMarket.mdb courante.
Ce code doit automatiser ce qu'on fait d'habitude par : attacher la table -> type de fichier : ODBC Database -> Source de données machine (pilote Microsoft ODBC for Oracle ) -> fenêtre avec nom d'utilisateur, mot de passe, choix du serveur -> choix de la table dans la liste.
J'ai trouvé ce code :
Sub ConnexionTables()
' On attache une table ODBC à une base de données :
' 1. Créer des variables pour les objets Database et TableDef :
Dim dbs As Database, tdfTABLE1 As TableDef
' 2. Ouvrir la base de données existante:
Set dbs = OpenDatabase(CurrentDb.Name)
' 3. Créer des objets TableDef pour les tables externes:
Set tdfTABLE1 = dbs.CreateTableDef("TABLE1")
' 4. Paramétrer TableDef pour faire référence à chaque table attachée:
tdfTABLE1.Connect = "ODBC;DSN=BaseMarket_Microsoft;UID=readonly;PWD=pass_readonly;"
tdfTABLE1.SourceTableName = "BaseMarket.TABLE1"
' 5. Ajoutez l'objet TableDef à la collection TableDefs à l'aide de la
'méthode Append.
dbs.TableDefs.Append tdfTABLE1
End Sub
Mais il me renvoie : Erreur d'exécution 3011, Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet 'BaseMarket.TABLE1'.
Que faire ?
Avez-vous d'autres idées de code VB ?
Merci par avance.
je souhaite écrire un code VB sous Access qui permette d'attacher une table d'un fichier externe dans ma BaseMarket.mdb courante.
Ce code doit automatiser ce qu'on fait d'habitude par : attacher la table -> type de fichier : ODBC Database -> Source de données machine (pilote Microsoft ODBC for Oracle ) -> fenêtre avec nom d'utilisateur, mot de passe, choix du serveur -> choix de la table dans la liste.
J'ai trouvé ce code :
Sub ConnexionTables()
' On attache une table ODBC à une base de données :
' 1. Créer des variables pour les objets Database et TableDef :
Dim dbs As Database, tdfTABLE1 As TableDef
' 2. Ouvrir la base de données existante:
Set dbs = OpenDatabase(CurrentDb.Name)
' 3. Créer des objets TableDef pour les tables externes:
Set tdfTABLE1 = dbs.CreateTableDef("TABLE1")
' 4. Paramétrer TableDef pour faire référence à chaque table attachée:
tdfTABLE1.Connect = "ODBC;DSN=BaseMarket_Microsoft;UID=readonly;PWD=pass_readonly;"
tdfTABLE1.SourceTableName = "BaseMarket.TABLE1"
' 5. Ajoutez l'objet TableDef à la collection TableDefs à l'aide de la
'méthode Append.
dbs.TableDefs.Append tdfTABLE1
End Sub
Mais il me renvoie : Erreur d'exécution 3011, Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet 'BaseMarket.TABLE1'.
Que faire ?
Avez-vous d'autres idées de code VB ?
Merci par avance.
A voir également:
- Access et VB : attacher des tables via ODBC
- Vb - Télécharger - Langages
- Acer quick access - Forum Logiciels
- Access appdata - Guide
- Exemple base de données access à télécharger gratuit - Forum Access
- Vb cable - Télécharger - Audio & Musique
4 réponses
Maintenant, je souhaite "détacher" une table de ma base.
Savez-vous comment faire ?
Merci par avance.
Savez-vous comment faire ?
Merci par avance.
Salut,
en effet, le seul problème tient dans le nom de la table.
J'ai ricoché sur un autre problème : manuellement, je peux attacher une table "user.tab", son lien devient "user_tab" !
Mais quand je la lie avec mon algo, le "." n'est pas accepté.
Sachant cela, l'essentiel est que ça marche.
Merci pour l'aide,
j'aurai sans doute d'autres questions !
en effet, le seul problème tient dans le nom de la table.
J'ai ricoché sur un autre problème : manuellement, je peux attacher une table "user.tab", son lien devient "user_tab" !
Mais quand je la lie avec mon algo, le "." n'est pas accepté.
Sachant cela, l'essentiel est que ça marche.
Merci pour l'aide,
j'aurai sans doute d'autres questions !