Sposób tworzenia połączenia pozbawionego nazwy DSN na serwerze SQL dla tabel połączonych w programie Access

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 892490 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Zaawansowane: Wymaga kodowania ekspertów współdziałanie i umiejętności wielu użytkowników.

Ten artykuł dotyczy wyłącznie Bazy danych programu Microsoft Access (accdb i mdb).
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

WPROWADZENIE

W tym artykule opisano sposób tworzenia połączenia Microsoft SQL Server dla tabel połączonych w programie Microsoft Access, które nie są używane Nazwa źródła danych (DSN). Jest to znany także jako Mniej DSN połączenie. Przykłady, które zawiera niniejszy artykuł stosuje się do Program Microsoft Office Access 2007, Microsoft Office Access 2003 i programu Microsoft Access 2002.

Więcej informacji

Można utworzyć tabele połączone SQL Server w DSN Program Microsoft Access. Jednak po przeniesieniu bazy danych do innego komputera, należy ponownie utworzyć nazwy DSN na tym komputerze. Ta procedura może być problematyczne, kiedy użytkownik ma wykonywać na więcej niż jednym komputerze. Gdy procedura ta nie jest wykonane poprawnie, tabele połączone nie można zlokalizować nazwy DSN. Dlatego też tabel połączonych nie można połączyć się z serwerem SQL Serwer.

Jeśli chcesz utworzyć łącze do tabeli programu SQL Server, ale nie ma być kodowane nazwy DSN Źródła danych okno dialogowe do utworzenia połączenia pozbawionego nazwy DSN na serwerze SQL, należy użyć jednej z następujących metod.

Metoda 1: Metoda CreateTableDef

W CreateTableDef Metoda pozwala na utworzenie tabeli połączonej. Aby użyć tej metody, tworzenie nowy moduł i Dodaj następujący AttachDSNLessTable Funkcja nowy moduł.
'//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
Wywołanie AttachDSNLessTable działały, Dodaj kod, który jest podobny do następującego kodu Przykłady w AutoExec Makro lub formularz startowy Form_Open zdarzenie:
  • Kiedy używać AutoExec makra, wywołanie AttachDSNLessTable działać, a następnie przekazać parametry, które są podobne do następujące z akcji UruchomKod.
        AttachDSNLessTable ("authors", "authors", "(local)", "pubs", "", "")
    
  • Gdy formularz startowy dodać kod podobny do następujące polecenie, aby Form_Open zdarzenie.
    Private Sub Form_Open(Cancel As Integer)
        If AttachDSNLessTable("authors", "authors", "(local)", "pubs", "", "") Then
            '// All is okay.
        Else
            '// Not okay.
        End If
    End Sub
    Uwaga Logiki programowania należy dostosować, dodając więcej niż jeden Tabela połączona z bazą danych programu Access.

Metoda 2: Należy używać obiektów DAO.Metoda RegisterDatabase

W DAO.RegisterDatabase Metoda pozwala na utworzenie połączenia DSN w AutoExec Makro lub formularz startowy. Chociaż metoda ta nie usunąć wymóg połączenia DSN, pomagają rozwiązać problem Tworząc połączenia DSN w kodzie. Aby użyć tej metody, Utwórz nowy Moduł, a następnie dodaj następujące CreateDSNConnection Funkcja nowy moduł.
'//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
Uwaga Jeśli RegisterDatabase ponownie wywoływana jest metoda, zaktualizowane DSN.

Wywołanie CreateDSNConnection działały, Dodaj kod, który jest podobny do następującego kodu Przykłady w AutoExec Makro lub formularz startowy Form_Open zdarzenie:
  • Kiedy używać AutoExec makra, wywołanie CreateDSNConnection działać, a następnie przekazać parametry, które są podobne do następujące z akcji UruchomKod.
        CreateDSNConnection ("(local)", "pubs", "", "")
    
  • Gdy formularz startowy dodać kod podobny do następujące polecenie, aby Form_Open zdarzenie.
    Private Sub Form_Open(Cancel As Integer)
        If CreateDSNConnection("(local)", "pubs", "", "") Then
            '// All is okay.
        Else
            '// Not okay.
        End If
    End Sub
Uwaga Metoda ta zakłada utworzone na serwerze SQL tabele połączone w bazie danych programu Access przy użyciu "myDSN" jako nazwy DSN Nazwa.

Właściwości

Numer ID artykułu: 892490 - Ostatnia weryfikacja: 24 czerwca 2011 - Weryfikacja: 2.0
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Słowa kluczowe: 
kbprogramming kbconfig kbdatabase kbhowto kbinfo kbmt KB892490 KbMtpl
Przetłumaczone maszynowo
WAŻNE: Ten artykuł nie został przetłumaczony przez człowieka, tylko przez oprogramowanie do tłumaczenia maszynowego firmy Microsoft. Firma Microsoft oferuje zarówno artykuły tłumaczone przez ludzi, jak i artykuły tłumaczone maszynowo, dzięki czemu każdy użytkownik może uzyskać dostęp do całej zawartości bazy wiedzy Knowledge Base we własnym języku. Prosimy jednak pamiętać, że artykuły przetłumaczone maszynowo nie zawsze są doskonałe. Mogą zawierać błędy słownictwa, składni i gramatyki, przypominające błędy robione przez osoby, dla których język użytkownika nie jest językiem ojczystym. Firma Microsoft nie odpowiada za wszelkie nieścisłości, błędy lub szkody spowodowane nieprawidłowym tłumaczeniem zawartości oraz za wykorzystanie tej zawartości przez klientów. Oprogramowanie do tłumaczenia maszynowego jest często aktualizowane przez firmę Microsoft.
Anglojęzyczna wersja tego artykułu to:892490

Przekaż opinię

 

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