Αυτό το άρθρο περιγράφει τον τρόπο δημιουργίας μιας σύνδεσης σε
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 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
Για να καλέσετε το
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 If
End 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 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
Σημείωση Εάν το
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 If
End Sub
Σημείωση Η μέθοδος αυτή υποθέτει ότι έχετε ήδη δημιουργήσει τον SQL Server
συνδεδεμένους πίνακες της βάσης δεδομένων Access με χρήση του "myDSN" ως το DSN
το όνομα.
Αναγν. άρθρου: 892490 - Τελευταία αναθεώρηση: Κυριακή, 29 Μαΐου 2011 - Αναθεώρηση: 6.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
- Microsoft Office Access 2007
- Microsoft Office Access 2003
- Microsoft Access 2002 Standard Edition
| kbprogramming kbconfig kbdatabase kbhowto kbinfo kbmt KB892490 KbMtel |
Μηχανικά μεταφρασμένοΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:
892490
(http://support.microsoft.com/kb/892490/en-us/
)