Jak vytvořit připojení k serveru SQL Server bez DSN pro propojené tabulky v aplikaci Access

Překlady článku Překlady článku
ID článku: 892490 - Produkty, které se vztahují k tomuto článku.
Upřesnit: Vyžaduje odborné kódování interoperability a víceuživatelské dovedností.

Tento článek se vztahuje pouze Databáze Microsoft Access (ACCDB a MDB).
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

ÚVOD

Tento článek popisuje, jak vytvořit připojení k Microsoft SQL Server pro propojené tabulky v aplikaci Microsoft Access, který nepoužívá název zdroje dat (DSN). To je také označován jako Bez DSN připojení. Tento článek obsahuje příklady platí pro Aplikace Microsoft Office Access 2007, Microsoft Office Access 2003 a aplikace Microsoft Access 2002.

Další informace

Můžete použít k vytvoření propojené tabulky serveru SQL Server v DSN Aplikace Microsoft Access. Ale pokud databázi přesunete do jiného počítače, je nutné znovu vytvořte zdroj DSN počítače. Tento postup může být problematický kdy jste jste jej provést na více než jednom počítači. Pokud tento postup není provedli správně, propojené tabulky není možné vyhledat název DSN. Proto propojené tabulky pravděpodobně nebude moci připojit k SQL Server.

Pokud chcete vytvořit odkaz na tabulku databáze SQL Server, ale nemají nechcete pevně zakódovat DSN Zdroje dat Dialogové okno vytvořit připojení k serveru SQL Server bez DSN pomocí jedné z následujících metod.

Metoda 1: Použijte metodu CreateTableDef

Na CreateTableDef metoda umožňuje vytvořit propojenou tabulku. Chcete-li použít tuto metodu, vytvoření Nový modul a potom přidejte následující AttachDSNLessTable funkce do nového modulu.
'//Name     :   AttachDSNLessTable
'//Purpose  :   Create a linked table to SQL Server without using a DSN
'//Parameters
'//     stLocalTableName: Name of the table that you are creating in the current database
'//     stRemoteTableName: Name of the table that you are linking to on the SQL Server database
'//     stServer: Name of the SQL Server that you are linking to
'//     stDatabase: Name of the SQL Server database that you are linking to
'//     stUsername: Name of the SQL Server user who can connect to SQL Server, leave blank to use a Trusted Connection
'//     stPassword: SQL Server user password
Function AttachDSNLessTable(stLocalTableName As String, stRemoteTableName As String, stServer As String, stDatabase As String, Optional stUsername As String, Optional stPassword As String)
    On Error GoTo AttachDSNLessTable_Err
    Dim td As TableDef
    Dim stConnect As String
    
    For Each td In CurrentDb.TableDefs
        If td.Name = stLocalTableName Then
            CurrentDb.TableDefs.Delete stLocalTableName
        End If
    Next
      
    If Len(stUsername) = 0 Then
        '//Use trusted authentication if stUsername is not supplied.
        stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";Trusted_Connection=Yes"
    Else
        '//WARNING: This will save the username and the password with the linked table information.
        stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";UID=" & stUsername & ";PWD=" & stPassword
    End If
    Set td = CurrentDb.CreateTableDef(stLocalTableName, dbAttachSavePWD, stRemoteTableName, stConnect)
    CurrentDb.TableDefs.Append td
    AttachDSNLessTable = True
    Exit Function

AttachDSNLessTable_Err:
    
    AttachDSNLessTable = False
    MsgBox "AttachDSNLessTable encountered an unexpected error: " & Err.Description

End Function
Volání AttachDSNLessTable funkce, přidat kód, který se podobá následující kód Příklady v AutoExec Makro nebo spouštěcí formulář Form_Open událost:
  • Při použití AutoExec makro, volání AttachDSNLessTable funkce a pak předat parametry, které jsou podobné následující akce SpustitKód.
        AttachDSNLessTable ("authors", "authors", "(local)", "pubs", "", "")
    
  • Při použití spouštěcího formuláře přidáte kód, který je podobný následující Form_Open událost.
    Private Sub Form_Open(Cancel As Integer)
        If AttachDSNLessTable("authors", "authors", "(local)", "pubs", "", "") Then
            '// All is okay.
        Else
            '// Not okay.
        End If
    End Sub
    Poznámka: Přidáte-li více než jeden musíte nastavit vaši logiku programování propojené tabulky v databázi aplikace Access.

Metoda 2: Použití DAO.Metoda RegisterDatabase

Na DAO.RegisterDatabase metoda umožňuje vytvořit připojení DSN v AutoExec Makro nebo úvodní formulář. Přestože tato metoda není odstranit požadavek na připojení DSN, pomáhá při řešení problému vytvořením připojení DSN v kódu. Chcete-li použít tuto metodu, vytvoření nového modul a potom přidejte následující CreateDSNConnection funkce do nového modulu.
'//Name     :   CreateDSNConnection
'//Purpose  :   Create a DSN to link tables to SQL Server
'//Parameters
'//     stServer: Name of SQL Server that you are linking to
'//     stDatabase: Name of the SQL Server database that you are linking to
'//     stUsername: Name of the SQL Server user who can connect to SQL Server, leave blank to use a Trusted Connection
'//     stPassword: SQL Server user password
Function CreateDSNConnection(stServer As String, stDatabase As String, Optional stUsername As String, Optional stPassword As String) As Boolean
    On Error GoTo CreateDSNConnection_Err

    Dim stConnect As String
    
    If Len(stUsername) = 0 Then
        '//Use trusted authentication if stUsername is not supplied.
        stConnect = "Description=myDSN" & vbCr & "SERVER=" & stServer & vbCr & "DATABASE=" & stDatabase & vbCr & "Trusted_Connection=Yes"
    Else
        stConnect = "Description=myDSN" & vbCr & "SERVER=" & stServer & vbCr & "DATABASE=" & stDatabase & vbCr 
    End If
    
    DBEngine.RegisterDatabase "myDSN", "SQL Server", True, stConnect
        
    '// Add error checking.
    CreateDSNConnection = True
    Exit Function
CreateDSNConnection_Err:
    
    CreateDSNConnection = False
    MsgBox "CreateDSNConnection encountered an unexpected error: " & Err.Description
    
End Function
Poznámka: Pokud RegisterDatabase Metoda je volána znovu, je aktualizován DSN.

Volání CreateDSNConnection funkce, přidat kód, který se podobá následující kód Příklady v AutoExec Makro nebo spouštěcí formulář Form_Open událost:
  • Při použití AutoExec makro, volání CreateDSNConnection funkce a pak předat parametry, které jsou podobné následující akce SpustitKód.
        CreateDSNConnection ("(local)", "pubs", "", "")
    
  • Při použití spouštěcího formuláře přidáte kód, který je podobný následující Form_Open událost.
    Private Sub Form_Open(Cancel As Integer)
        If CreateDSNConnection("(local)", "pubs", "", "") Then
            '// All is okay.
        Else
            '// Not okay.
        End If
    End Sub
Poznámka: Tato metoda předpokládá, že jste již vytvořili serveru SQL Server propojené tabulky v databázi aplikace Access pomocí "myDSN" jako DSN název.

Vlastnosti

ID článku: 892490 - Poslední aktualizace: 22. května 2011 - Revize: 3.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Klíčová slova: 
kbprogramming kbconfig kbdatabase kbhowto kbinfo kbmt KB892490 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:892490

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com