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

Podpora Office 2003 byla ukončena.

Společnost Microsoft ukončila dne 8. dubna 2014 podporu Office 2003. Tato změna ovlivnila aktualizace softwaru a možnosti zabezpečení. Další informace o tom, co to pro vás znamená a jak zajistit ochranu

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
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).
Ú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 passwordFunction 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 FunctionAttachDSNLessTable_Err:        AttachDSNLessTable = False    MsgBox "AttachDSNLessTable encountered an unexpected error: " & Err.DescriptionEnd 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 IfEnd 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 passwordFunction 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 FunctionCreateDSNConnection_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 IfEnd 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.
ACC2002 ACC2003 Jet ODBC SQL Server VB VBA

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 892490 - Poslední kontrola: 05/22/2011 15:02:00 - Revize: 3.0

Microsoft Office Access 2007, Microsoft Office Access 2003, Microsoft Access 2002 Standard Edition

  • kbprogramming kbconfig kbdatabase kbhowto kbinfo kbmt KB892490 KbMtcs
Váš názor