tables liées entre access et sql serveur express
Bonjour,
Je voudrai lier au moyen d'un vba des tables d'un serveur sql express avec mon appli en access.
Mon problème c'est que je reçois à chaque table un écran "Sélectionner la source de donnée" ou je sélectionne mon lien de connexion avec sql serveur et cela fonctionne. Comment supprimer l'affiche de cet écran car dans le code je donne le lien de connexion.
Mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| If Me.id_type_db <> "ODBC" Then
'Définit la chaine de connexion permettant la liaison des tables
strConnect = "MS Access;pwd=;DATABASE=" & strCheminBd
'Instancie l'objet Database de la base protégée
Set oDbSource = DBEngine.OpenDatabase(strCheminBd, , True, strConnect)
Else
Set ws = DBEngine.Workspaces(0)
'Définit la chaine de connexion permettant la liaison des tables
strConnect = "ODBC; DATABASE=" & Me.id_nom_db_sql & ";uid=;pwd=;DSN =" & Me.id_connexion
'Instancie l'objet Database de la base protégée
Set oDbSource = ws.OpenDatabase("" & Me.id_connexion, dbDriverNoPrompt, False, strConnect)
End If
'Instancie l'objet Database de la base courante
Set oDb = CurrentDb
'Parcours l'ensemble des tables de la base de données protégée
'et stocke leur nom
For Each oTblSource In oDbSource.TableDefs
'ignore les tables system
If (oTblSource.Attributes And dbSystemObject) = 0 Then
strTemp = strTemp & oTblSource.Name & "|"
End If
Next
'Ferme la base de données sources (impératif pour la liaison)
oDbSource.Close: Set oDbSource = Nothing
'parcours le tableau de noms de tables
strNomsTables = Split(Left(strTemp, Len(strTemp) - 1), "|")
For i = 0 To UBound(strNomsTables)
'Crée une nouvelle table dans la base de données courante
nom_fichier = Mid(strNomsTables(i), 5, Len(strNomsTables(i)) - 4)
' DoCmd.TransferDatabase acLink, "ODBC Database", strConnect, _
' acTable, nom_fichier, strNomsTables(i), , False
Set oTbl = oDb.CreateTableDef(nom_fichier)
'Lie les deux tables
oTbl.Connect = strConnect
oTbl.SourceTableName = strNomsTables(i)
'Ajoute la table à la base de données
oDb.TableDefs.Append oTbl
Next i
'Rafraichit la liste des tables
oDb.TableDefs.Refresh
strTemp = "" |
Merci de votre aide
Etienne