Rechercher : dans
Par :

Access et VB : attacher des tables via ODBC

Dernière réponse le 27 jui 2009 à 15:49:01 kodokan, le 9 mar 2009 à 20:14:55 
 Signaler ce message aux modérateurs

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.

Configuration: Windows XP
Internet Explorer 7.0
Office 2003, VB 6.3

Meilleures réponses pour « Access et VB : attacher des tables via ODBC » dans :
SQL - Création de table VoirLe SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. La création de tables Le création de tables se fait à l'aide du couple de mots-clés CREATE...

1

Polux31, le 9 mar 2009 à 22:20:27

Bonsoir,

As-tu essayé avec ça :

tdfTABLE1.SourceTableName = "TABLE1"

;o)
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.» 
Nicolas Boileau

Répondre à Polux31

2

kodokan, le 10 mar 2009 à 10:35:18

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 !

Répondre à kodokan

3

kodokan, le 10 mar 2009 à 17:05:49
  • +1

Maintenant, je souhaite "détacher" une table de ma base.
Savez-vous comment faire ?
Merci par avance.

Répondre à kodokan

4

 guigui, le 27 jui 2009 à 15:49:01
Répondre à guigui
Collection CommentÇaMarche.net