Comment faire un lien table Access vers SQL Server à l'aide de VBA

Je suis en train de créer un lien (ou importés) tableau dans l'Accès à un Serveur SQL server back-end. Fondamentalement, les utilisateurs de l'entreprise périodiquement besoin d'une copie de la table [SQL Rulesnew] (oui, avec de l'espace, soupir) si nous voulons leur donner un peu d'Access 2003 outil qui va faire le travail à la demande.

Je l'ai fait essayer à l'aide de Docmd.TransferDataBase acTable mais pas de chance

ici c'est le code que j'utilise:

Sub getData()

Dim sConnStr As String
Dim oTable As TableDef
Dim sDestinationTable As String
Dim dbs As Database
Dim tbl As DAO.TableDef
Dim tblLinked As DAO.TableDef       

    sDestinationTable = "SQL Rulesnew"
    Set dbs = CurrentDb

    ' source table name has a SPACE (rolleyes!)
    CurrentDb.CreateTableDef sDestinationTable  

    ' got the below from a Data Link File (UDL)
    sConnStr = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MYDBNAME;Data Source=MYSERVERNAME"

    ' the below also failed!
    'DoCmd.TransferDatabase acLink, "ODBC Database", "ODBC;Driver={SQL Server};Server=Fos;Database=Hermes_Rep;Trusted_Connection=Yes", acTable, "[Report SQLRulesnew]", "SQLRules" & VBA.Format(Now, "ddmmyyyy")

    'If DCount("*", "MSysObjects", "[Name]='[SQL Rulesnew]' AND [Type] In (1, 4, 6)") > 0 Then
    If IsTable(sDestinationTable) Then
       DoCmd.DeleteObject acTable, sDestinationTable
    End If

    Set tblLinked = dbs.CreateTableDef(sDestinationTable)
    Debug.Print "Linking the " & sDestinationTable
    tblLinked.Connect = sConnStr
    tblLinked.SourceTableName = sDestinationTable
    dbs.TableDefs.Append tblLinked
    tblLinked.RefreshLink

End Sub

Function IsTable(sTblName As String) As Boolean
    'does table exists and work ?
    'note: finding the name in the TableDefs collection is not enough,
    '      since the backend might be invalid or missing
Dim x
    On Error GoTo Coventry
    x = DCount("*", sTblName)
    IsTable = True
    Exit Function

Coventry:
    Debug.Print Now, sTblName, Err.Number, Err.Description
    IsTable = False
End Function

malheureusement j'obtiens une erreur ne pouvait pas trouver ISAM installable sur la ligne dbs.TableDefs.Append tblLinked

que dois-je faire?

merci
Philip

Avez-vous déjà une table SQL Server liée? Si oui, vérifiez la connexion de la propriété de l'objet tabledef pour une chaîne de connexion.
J'ai trouvé la réponse et l'a affiché en dessous

OriginalL'auteur Our Man in Bananas | 2013-04-03