Je bent nu offline; er wordt gewacht tot er weer een internetverbinding is

Maken van een verbinding met SQL Server voor gekoppelde tabellen in Access

De ondersteuning voor Office 2003 is beëindigd

De ondersteuning voor Office 2003 is door Microsoft beëindigd op 8 april. Deze wijziging heeft gevolgen voor software-updates en beveiligingsopties. Meer informatie over wat voor gevolgen dit voor u heeft en hoe u beveiligd blijft.

BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.

De Engelstalige versie van dit artikel is de volgende:892490
Geavanceerd: Expert codering vereist vaardigheden interoperabiliteit en meerdere gebruikers.

Dit artikel geldt alleen voor een Microsoft Access-database (ACCDB en MDB).
INLEIDING
In dit artikel wordt beschreven hoe u een verbinding maken Microsoft SQL Server voor gekoppelde tabellen in Microsoft Access niet gebruikt een gegevensbronnaam (DSN). Dit wordt ook wel eenDSN-lozeverbinding. Dit artikel bevat voorbeelden van toepassing op Microsoft Office Access 2007, Microsoft Office Access 2003 en Microsoft Access 2002.
Meer informatie
U kunt een DSN in gekoppelde SQL Server-tabellen maken Microsoft Access. Maar wanneer u de database naar een andere computer verplaatst, moet u de DSN op de computer opnieuw. Deze procedure kan worden problematisch wanneer u hebben op meer dan één computer uitvoeren. Wanneer deze procedure is niet correct is uitgevoerd, gekoppelde tabellen niet mogelijk de DSN te vinden. Daarom gekoppelde tabellen mogelijk geen verbinding maken met SQL Server.

Als u wilt een koppeling maken naar een SQL Server-tabel maar doen niet wilt harde code een DSN in deGegevensbronnenhet dialoogvenster een van de volgende methoden gebruiken om een verbinding met SQL Server.

Methode 1: Gebruik de methode CreateTableDef

DeCreateTableDefmethode kunt u een gekoppelde tabel maken. Deze methode wilt gebruiken, maken een nieuwe module en voeg de volgendeAttachDSNLessTablefunctie van de nieuwe module.
'//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
Bellen deAttachDSNLessTablefunctie, code die vergelijkbaar is met een van de volgende code toevoegen voorbeelden in deAutoExecmacro of in het opstartformulierForm_Opengebeurtenis:
  • Wanneer u deAutoExecmacro, belt deAttachDSNLessTablefunctie en het doorgeven van parameters die vergelijkbaar met zijn de volgende van de actie ProcedureUitvoeren.
        AttachDSNLessTable ("authors", "authors", "(local)", "pubs", "", "")
  • Wanneer u het opstartformulier, voeg code die vergelijkbaar is met de volgende deForm_Opende gebeurtenis.
    Private Sub Form_Open(Cancel As Integer)    If AttachDSNLessTable("authors", "authors", "(local)", "pubs", "", "") Then        '// All is okay.    Else        '// Not okay.    End IfEnd Sub
    OpmerkingU kunt uw programmacode moet aanpassen wanneer u meer dan één toevoegen gekoppelde tabel met de Access-database.

Methode 2: De DAO gebruiken.Registerdatabase, methode

DeDAO.RegisterDatabasemethode kunt u een DSN-verbinding in deAutoExecmacro of in het opstartformulier. Hoewel deze methode niet Verwijder de eis voor een DSN-verbinding, helpt u het probleem DSN-verbinding maken met code. Deze methode een nieuwe maken module en voeg de volgendeCreateDSNConnectionfunctie van de nieuwe module.
'//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
OpmerkingAls deRegisterDatabasemethode opnieuw wordt aangeroepen, de DSN is bijgewerkt.

Bellen deCreateDSNConnectionfunctie, code die vergelijkbaar is met een van de volgende code toevoegen voorbeelden in deAutoExecmacro of in het opstartformulierForm_Opengebeurtenis:
  • Wanneer u deAutoExecmacro, belt deCreateDSNConnectionfunctie en het doorgeven van parameters die vergelijkbaar met zijn de volgende van de actie ProcedureUitvoeren.
        CreateDSNConnection ("(local)", "pubs", "", "")
  • Wanneer u het opstartformulier, voeg code die vergelijkbaar is met de volgende deForm_Opende gebeurtenis.
    Private Sub Form_Open(Cancel As Integer)    If CreateDSNConnection("(local)", "pubs", "", "") Then        '// All is okay.    Else        '// Not okay.    End IfEnd Sub
OpmerkingDeze methode wordt ervan uitgegaan dat u hebt gemaakt de SQL Server gekoppelde tabellen in de Access-database met 'myDSN' als de DSN naam.
Access 2002 ACC2003 Jet ODBC SQL Server VB VBA

Waarschuwing: dit artikel is automatisch vertaald

Eigenschappen

Artikel-id: 892490 - Laatst bijgewerkt: 03/17/2011 07:58:00 - Revisie: 2.0

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

  • kbprogramming kbconfig kbdatabase kbhowto kbinfo kbmt KB892490 KbMtnl
Feedback
reamTracker.init();