Αυτήν τη στιγμή είστε εκτός σύνδεσης, σε αναμονή για επανασύνδεση στο Internet

Πώς να δημιουργήσετε μια σύνδεση χωρίς DSN στο διακομιστή SQL για συνδεδεμένους πίνακες στην Access

Η υποστήριξη για το Office 2003 έχει διακοπεί

Η Microsoft διέκοψε την υποστήριξη για το Office 2003 στις 8 Απριλίου 2014. Αυτή η αλλαγή επηρέασε τις ενημερώσεις λογισμικού και τις επιλογές ασφαλείας σας. Μάθετε τι σημαίνει αυτό για εσάς και το πώς θα προστατευτείτε.

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.

Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:892490
Για προχωρημένους: Απαιτεί εμπειρογνωμόνων κωδικοποίηση διαλειτουργικότητα και δεξιότητες πολλών χρηστών.

Αυτό το άρθρο ισχύει μόνο για ένα Βάση δεδομένων Microsoft Access (.accdb και .mdb).
ΕΙΣΑΓΩΓΉ
Αυτό το άρθρο περιγράφει τον τρόπο δημιουργίας μιας σύνδεσης σε Microsoft SQL Server για συνδεδεμένους πίνακες στην Microsoft Access που χρησιμοποιούν ένα όνομα προέλευσης δεδομένων (DSN). Αυτή είναι γνωστή ως μια Χωρίς DSN η σύνδεση. Τα παραδείγματα που περιέχει αυτό το άρθρο ισχύουν για Το Microsoft Office Access 2007, του Microsoft Office Access 2003 και Microsoft Access 2002.
Περισσότερες πληροφορίες
Μπορείτε να χρησιμοποιήσετε ένα DSN για τη δημιουργία συνδεδεμένων πινάκων SQL Server σε Η Microsoft Access. Αλλά όταν μετακινήσετε τη βάση δεδομένων σε έναν άλλο υπολογιστή, πρέπει να Δημιουργήστε ξανά το DSN σε αυτόν τον υπολογιστή. Αυτή η διαδικασία μπορεί να είναι προβληματική όταν κάνετε πρέπει να εκτελέσετε σε περισσότερους από έναν υπολογιστή. Όταν αυτή η διαδικασία δεν πραγματοποιείται σωστά συνδεδεμένοι πίνακες δεν μπορεί να εντοπίσει το DSN. Επομένως, συνδεδεμένους πίνακες δεν μπορεί να συνδεθεί με SQL Ο διακομιστής.

Όταν θέλετε να δημιουργήσετε μια σύνδεση με έναν πίνακα του SQL Server, αλλά χωρίς δεν θέλετε να σκληρού κώδικα DSN του Προελεύσεις δεδομένων στο παράθυρο διαλόγου Χρησιμοποιήστε μία από τις ακόλουθες μεθόδους για να δημιουργήσετε μια σύνδεση χωρίς DSN στο διακομιστή SQL.

Μέθοδος 1: Χρήση της μεθόδου CreateTableDef

Το CreateTableDef η μέθοδος σας επιτρέπει να δημιουργήσετε έναν συνδεδεμένο πίνακα. Για να χρησιμοποιήσετε αυτήν τη μέθοδο, δημιουργία μια νέα λειτουργική μονάδα και, στη συνέχεια, προσθέστε το εξής AttachDSNLessTable λειτουργία στη νέα λειτουργική μονάδα.
'//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
Για να καλέσετε το AttachDSNLessTable λειτουργία, να προσθέσετε κώδικα που είναι παρόμοιο με τον ακόλουθο κώδικα Παραδείγματα με την AutoExec μακροεντολή ή τη φόρμα εκκίνησης Form_Open συμβάν:
  • Όταν χρησιμοποιείτε το AutoExec μακροεντολή, η κλήση της AttachDSNLessTable λειτουργία και στη συνέχεια να περάσετε παραμέτρους που είναι παρόμοια με το μετά από την ενέργεια RunCode.
        AttachDSNLessTable ("authors", "authors", "(local)", "pubs", "", "")
  • Όταν χρησιμοποιείτε τη φόρμα εκκίνησης, προσθέστε κώδικα που είναι παρόμοια με τα παρακάτω για να το Form_Open συμβάν.
    Private Sub Form_Open(Cancel As Integer)    If AttachDSNLessTable("authors", "authors", "(local)", "pubs", "", "") Then        '// All is okay.    Else        '// Not okay.    End IfEnd Sub
    Σημείωση Πρέπει να ρυθμίσετε την λογική προγραμματισμού όταν προσθέσετε περισσότερες από μία συνδεδεμένο πίνακα στη βάση δεδομένων της Access.

Μέθοδος 2: Χρήση του DAO.Η μέθοδος RegisterDatabase

Το DAO.RegisterDatabase η μέθοδος σάς επιτρέπει να δημιουργήσετε μια σύνδεση DSN του AutoExec μακροεντολή ή τη φόρμα εκκίνησης. Παρόλο που αυτή η μέθοδος δεν καταργήσετε την απαίτηση για σύνδεση DSN, να σας βοηθήσουν να επιλύσετε το ζήτημα με τη δημιουργία σύνδεσης DSN στον κώδικα. Για να χρησιμοποιήσετε αυτήν τη μέθοδο, δημιουργήστε ένα νέο λειτουργική μονάδα, και στη συνέχεια προσθέστε το εξής CreateDSNConnection λειτουργία στη νέα λειτουργική μονάδα.
'//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
Σημείωση Εάν το RegisterDatabase η μέθοδος καλείται ξανά, ενημερώνεται το DSN.

Για να καλέσετε το CreateDSNConnection λειτουργία, να προσθέσετε κώδικα που είναι παρόμοιο με τον ακόλουθο κώδικα Παραδείγματα με την AutoExec μακροεντολή ή τη φόρμα εκκίνησης Form_Open συμβάν:
  • Όταν χρησιμοποιείτε το AutoExec μακροεντολή, η κλήση της CreateDSNConnection λειτουργία και στη συνέχεια να περάσετε παραμέτρους που είναι παρόμοια με το μετά από την ενέργεια RunCode.
        CreateDSNConnection ("(local)", "pubs", "", "")
  • Όταν χρησιμοποιείτε τη φόρμα εκκίνησης, προσθέστε κώδικα που είναι παρόμοια με τα παρακάτω για να το Form_Open συμβάν.
    Private Sub Form_Open(Cancel As Integer)    If CreateDSNConnection("(local)", "pubs", "", "") Then        '// All is okay.    Else        '// Not okay.    End IfEnd Sub
Σημείωση Η μέθοδος αυτή υποθέτει ότι έχετε ήδη δημιουργήσει τον SQL Server συνδεδεμένους πίνακες της βάσης δεδομένων Access με χρήση του "myDSN" ως το DSN το όνομα.
ACC2002 ACC2003 Jet ODBC SQL Server VB VBA

Προειδοποίηση: Αυτό το άρθρο έχει μεταφραστεί με μηχανική μετάφραση

Ιδιότητες

Αναγνωριστικό άρθρου: 892490 - Τελευταία αναθεώρηση: 05/29/2011 17:36:00 - Αναθεώρηση: 6.0

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

  • kbprogramming kbconfig kbdatabase kbhowto kbinfo kbmt KB892490 KbMtel
Σχόλια
/html>ms.dqid"; document.getElementsByTagName("head")[0].appendChild(m);