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

Πώς να επανασυνδέσετε τους πίνακες υποστήριξης, με το κοινό παράθυρο διαλόγου ελέγχου στην Access 2000

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

Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:209862
Αυτό το αρχείο έχει αρχειοθετηθεί. Προσφέρεται “ως έχει” και δεν θα ενημερώνεται πια.
Για την έκδοση αυτού του άρθρου Microsoft Access 97, ανατρέξτε στο θέμα181076.
Για προχωρημένους: Απαιτεί ειδικό κωδικοποίησης, διαλειτουργικότητας και ικανότητες πολλών χρηστών.

Αυτό το άρθρο αφορά μόνο βάσεις δεδομένων της Microsoft Access (.mdb).

Περίληψη
Αυτό το άρθρο περιγράφει τον τρόπο χρήσης τουΚοινό παράθυρο διαλόγουΈλεγχος για την ανανέωση των συνδεδεμένων πινάκων στη βάση δεδομένων σας. Για ναΚοινό παράθυρο διαλόγουέλεγχος είναι διαθέσιμος με εργαλεία έκδοση του Microsoft Office 2000 Developer. Οι πίνακες που συνδέονται ενδέχεται να βρίσκονται σε μία ή πολλές βάσεις δεδομένων παρασκηνίου.

Για παράδειγμα μια διαφορετική μέθοδο για να επανασυνδέσετε τους πίνακες που χρησιμοποιεί συναρτήσεις (API) του περιβάλλοντος προγραμματισμού εφαρμογών των Microsoft Windows, ανατρέξτε στο πρόγραμμα δείγμα προγραμματιστές λύσεων (Solutions9.mdb). Για να αποκτήσετε Solutions9.mdb, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
248674ACC2000: Παραγγελίες και προγραμματιστές λύσεων δείγματα βάσεων δεδομένων είναι διαθέσιμη από τη Microsoft Developer Network (MSDN)
Ανοίξτε τη βάση δεδομένων Solutions9.mdb, επιλέξτεΧρησιμοποιήστε πολλές βάσεις δεδομένωνΣτοΕπιλέξτε μια κατηγορία από παραδείγματαπλαίσιο και στη συνέχεια κάντε κλικΣύνδεση πινάκων, κατά την εκκίνησηΣτοΕπιλέξτε ένα παράδειγμα"Τύπος" (Type).
Περισσότερες πληροφορίες
Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για λόγους επεξήγησης, χωρίς να παρέχει καμία εγγύηση, σιωπηρή ή ρητή. Σε αυτά περιλαμβάνονται, ενδεικτικά, οι σιωπηρές εγγυήσεις εμπορευσιμότητας ή/και καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που παρουσιάζεται, καθώς και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία και τον εντοπισμό σφαλμάτων κώδικα διαδικασιών. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας εξηγήσουν τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας, αλλά δεν θα τροποποιήσουν αυτά τα παραδείγματα, για να παράσχουν πρόσθετες λειτουργίες, ούτε θα δημιουργήσουν διαδικασίες, για να καλύψουν τις συγκεκριμένες απαιτήσεις σας.Ένα πρόγραμμα που χρησιμοποιεί διαίρεση σχεδίαση της βάσης δεδομένων έχει τους πίνακές της σε μία βάση δεδομένων σε μια κοινόχρηστη θέση δικτύου (τη βάση δεδομένων παρασκηνίου) και όλα τα ερωτήματα φόρμες, εκθέσεις, μακροεντολές και λειτουργικές μονάδες σε μια άλλη βάση δεδομένων σε κάθε υπολογιστή-πελάτη (η βάση δεδομένων περιβάλλοντος χρήστη). Η βάση δεδομένων προσκηνίου συνδέει όλους τους πίνακες του στη βάση δεδομένων παρασκηνίου. Εάν έχει μετακινηθεί στη βάση δεδομένων παρασκηνίου, παρουσιάζονται σφάλματα στο πρόγραμμα. Μπορείτε να ενεργοποιήσετε το πρόγραμμα που χρησιμοποιείτε για να ανιχνεύσει ότι η βάση δεδομένων παρασκηνίου αρχείο λείπει από την αναμενόμενη θέση και να ζητήσει από το χρήστη για τη νέα θέση.

Το παρακάτω παράδειγμα δείχνει πώς μπορείτε να επανασυνδέσετε δεδομένα του πίνακα στο πρόγραμμά σας. Αυτή η μέθοδος χρησιμοποιεί μια φόρμα που μπορεί να ανοίξει ένας χρήστης να επανασυνδέσετε τους πίνακες υποστήριξης, και άλλη προαιρετική φόρμα που μπορεί να επιβεβαιώσει αυτόματα τη σύνδεση παρασκηνίου κατά το άνοιγμα της βάσης δεδομένων.

Αυτό το άρθρο προϋποθέτει ότι έχετε το MicrosoftΚοινό παράθυρο διαλόγουστοιχείο ελέγχου, το οποίο διατίθεται με εργαλεία έκδοση του Microsoft Office 2000 Developer. Εάν δεν διαθέτετε αυτό το στοιχείο ελέγχου, παραλείψτε τοBrowse()λειτουργία στο παράδειγμα.

ΣΗΜΕΙΩΣΗ: Εάν χρησιμοποιείτε τοΚοινό παράθυρο διαλόγουτο στοιχείο ελέγχου και να σχεδιάζετε να διανείμετε το πρόγραμμα βάσης δεδομένων, πρέπει να χρησιμοποιήσετε τον Οδηγό ανάπτυξης και το πακέτο για να συμπεριλάβετε το στοιχείο ελέγχου κοινό παράθυρο διαλόγου αρχείου Comdlg32.ocx και τα συνοδευτικά αρχεία DLL με τα αρχεία εγκατάστασης. Για περισσότερες πληροφορίες σχετικά με τη χρήση του πακέτου και ο οδηγός ανάπτυξης, ανατρέξτε στα άρθρα που αναγράφονται στην ενότητα "Αναφορές" αυτού του άρθρου.

Μέθοδος για την επανασύνδεση Back-End πίνακες βάσης δεδομένων

Προσοχή: Εάν ακολουθήσετε τα βήματα σε αυτό το παράδειγμα, μπορείτε να τροποποιήσετε το δείγμα βάσης δεδομένων Northwind.mdb. Θέλετε να δημιουργήσετε αντίγραφα ασφαλείας του αρχείου Northwind.mdb και να ακολουθήσετε αυτά τα βήματα στο αντίγραφο της βάσης δεδομένων.

  1. Δημιουργήστε ένα νέο κενό αρχείο βάσης δεδομένων Access και ονομάστε τονFrontEnd.mdb.
  2. Στο διακομιστήFILEμενού, σημείοΛήψη εξωτερικών δεδομένων, και στη συνέχεια κάντε κλικ στο κουμπίΣύνδεση πινάκων.
  3. Αναζήτηση για να επιλέξετε το δείγμα βάσης δεδομένων Northwind.mdb και, στη συνέχεια, κάντε κλικ στο κουμπίLink. ΣτοΣύνδεση πινάκωνπαράθυρο διαλόγου, κάντε κλικ στο κουμπίΕπιλογή όλων, και στη συνέχεια κάντε κλικ στο κουμπίOk.
  4. Δημιουργήστε την ακόλουθη νέα φόρμα που δεν βασίζεται σε πίνακα ή ερώτημα σε προβολή σχεδίασης:
    Φόρμα: frmNewDataFile

    Text box:
    Όνομα: txtFileName
    Πλάτος: 3 "
    Στοιχείο ελέγχου κοινό παράθυρο διαλόγου:
    Όνομα: xDialog
    Κουμπί εντολής (Command Button):
    Όνομα: cmdBrowse
    Λεζάντα: αναζήτηση...
    Με κλικ: =Browse()
    Κουμπί εντολής (Command Button):
    Όνομα: cmdLinkNew
    Λεζάντα: Ανανέωση συνδέσεων
    Με κλικ: =Processtables()
    Κουμπί εντολής (Command Button):
    Όνομα: cmdCancel
    Λεζάντα: Άκυρο
    Με το κλικ: [Διαδικασία συμβάντος]
    Ακύρωση: Ναι
  5. Στο διακομιστήViewμενού, κάντε κλικ στο κουμπίΚωδικός.
  6. Πληκτρολογήστε ή επικολλήστε την ακόλουθη διαδικασία:
    Private Sub cmdCancel_Click()   On Error GoTo Err_cmdCancel_Click    MsgBox "Link to new back-end cancelled", vbExclamation, "Cancel Refresh Link"   DoCmd.Close acForm, Me.NameExit_cmdCancel_Click:   Exit SubErr_cmdCancel_Click:   MsgBox Err.Description   Resume Exit_cmdCancel_ClickEnd Sub					
  7. Στο διακομιστήΟ εντοπισμός σφαλμάτωνμενού, κάντε κλικ στο κουμπίΜεταγλώττιση FrontEnd.
  8. Αποθηκεύστε τη φόρμα frmNewDataFile και κλείστε το.
  9. Στο παράθυρο "βάση δεδομένων", κάντε κλικ στο κουμπίΛειτουργικές μονάδες, και στη συνέχεια κάντε κλικ στο κουμπίΝέα.
  10. Στο διακομιστήΕργαλείαμενού, κάντε κλικ στο κουμπίΑναφορέςΕπιλογήΒιβλιοθήκη αντικειμένων Microsoft DAO 3.6Εάν δεν είναι ήδη επιλεγμένο, και στη συνέχεια κάντε κλικ στο κουμπίOk.
  11. Πληκτρολογήστε ή επικολλήστε τον ακόλουθο κώδικα:
    Dim UnProcessed As New Collection       Public Function Browse()    ' Prompts user for back-end database file name.    On Error GoTo Err_Browse        Dim strFilename As String    Dim oDialog As Object    Set oDialog = [Forms]![frmNewDatafile]!xDialog.Object        With oDialog                    ' Ask for new file location.        .DialogTitle = "Please Select New Data File"        .Filter = "Access Database(*.mdb;*.mda;*.mde;*.mdw)|" & _        "*.mdb; *.mda; *.mde; *.mdw|All(*.*)|*.*"        .FilterIndex = 1        .ShowOpen        If Len(.FileName) > 0 Then  ' user responded, put selection into text box on form.           [Forms]![frmNewDatafile]![txtFileName] = .FileName        End If    End WithExit_Browse:    Exit FunctionErr_Browse:    MsgBox Err.Description    Resume Exit_BrowseEnd FunctionPublic Sub AppendTables()    Dim db As DAO.Database, x As Variant    Dim strTest As String    ' Add names of all table with invalid links to the Unprocessed Collection.    Set db = CurrentDb    ClearAll    For Each x In db.TableDefs        If Len(x.Connect) > 1 And Len(Dir(Mid(x.Connect, 11))) = 0 Then        ' connect string exists, but file does not             UnProcessed.Add Item:=x.Name, Key:=x.Name        End If    NextEnd SubPublic Function ProcessTables()    Dim strTest As String    On Error GoTo Err_BeginLink        ' Call procedure to add all tables with broken links into a collection.    AppendTables        ' Test for existence of file name\directory selected in Common Dialog Control.    strTest = Dir([Forms]![frmNewDatafile]![txtFileName])        On Error GoTo Err_BeginLink    If Len(strTest) = 0 Then   ' File not found.        MsgBox "File not found. Please try again.", vbExclamation, "Link to new data file"        Exit Function    End If        ' Begin relinking tables.    Relinktables (strTest)    ' Check to see if all tables have been relinked.    CheckifComplete        DoCmd.Echo True, "Done"    If UnProcessed.Count < 1 Then         MsgBox "Linking to new back-end data file was successful."    Else         MsgBox "Not All back-end tables were successfully relinked."    End If    DoCmd.Close acForm, [Forms]![frmNewDatafile].Name    Exit_BeginLink:    DoCmd.Echo True    Exit Function    Err_BeginLink:    Debug.Print Err.Number    If Err.Number = 457 Then        ClearAll        Resume Next    End If    MsgBox Err.Number & ": " & Err.Description    Resume Exit_BeginLinkEnd FunctionPublic Sub ClearAll()    Dim x    ' Clear any and all names from the Unprocessed Collection.    For Each x In UnProcessed       UnProcessed.Remove (x)    NextEnd SubPublic Function Relinktables(strFilename As String)    Dim dbbackend As DAO.Database, dblocal As DAO.Database, ws As Workspace, x, y    Dim tdlocal As DAO.TableDef        On Error GoTo Err_Relink        Set dbbackend = DBEngine(0).OpenDatabase(strFilename)    Set dblocal = CurrentDb        ' If the local linked table name is found in the back-end database    ' we're looking at, Recreate & Refresh its connect string, and then    ' remove its name from the Unprocessed collection.     For Each x In UnProcessed        If Len(dblocal.TableDefs(x).Connect) > 0 Then            For Each y In dbbackend.TableDefs                If y.Name = x Then                    Set tdlocal = dblocal.TableDefs(x)                    tdlocal.Connect = ";DATABASE=" & _                    Trim([Forms]![frmNewDatafile]![txtFileName])                    tdlocal.RefreshLink                    UnProcessed.Remove (x)                End If            Next        End If    NextExit_Relink:    Exit FunctionErr_Relink:    MsgBox Err.Number & ": " & Err.Description    Resume Exit_RelinkEnd FunctionPublic Sub CheckifComplete()    Dim strTest As String, y As String, notfound As String, x    On Error GoTo Err_BeginLink        ' If there are any names left in the unprocessed collection,    ' then continue.    If UnProcessed.Count > 0 Then        For Each x In UnProcessed            notfound = notfound & x & Chr(13)        Next        ' List the tables that have not yet been relinked.        y = MsgBox("The following tables were not found in " & _        Chr(13) & Chr(13) & [Forms]![frmNewDatafile]!txtFileName _        & ":" & Chr(13) & Chr(13) & notfound & Chr(13) & _        "Select another database that contains the additional tables?", _        vbQuestion + vbYesNo, "Tables not found")                If y = vbNo Then            Exit Sub        End If                ' Bring the Common Dialog Control back up.        Browse        strTest = Dir([Forms]![frmNewDatafile]![txtFileName])        If Len(strTest) = 0 Then   ' File not found.            MsgBox "File not found. Please try again.", vbExclamation, _            "Link to new data file"            Exit Sub       End If       Debug.Print "Break"       Relinktables (strTest)    Else       Exit Sub    End If        CheckifComplete    Exit_BeginLink:    DoCmd.Echo True   ' Just in case of error jump.    DoCmd.Hourglass False    Exit SubErr_BeginLink:    Debug.Print Err.Number    If Err.Number = 457 Then        ClearAll        Resume Next    End If    MsgBox Err.Number & ": " & Err.Description    Resume Exit_BeginLinkEnd Sub					
  12. Στο διακομιστήΟ εντοπισμός σφαλμάτωνμενού, κάντε κλικ στο κουμπίΜεταγλώττιση FrontEnd.
  13. Αποθηκεύστε τη λειτουργική μονάδα ωςRelinkCode, και κατόπιν κλείστε το.
  14. Μετονομάστε το δείγμα βάσης δεδομένων Northwind.mdb ή να το μετακινήσετε σε άλλο φάκελο του σκληρού σας δίσκου έτσι ώστε οι συνδεδεμένοι πίνακες στο FrontEnd.mdb θα πρέπει να ανανεωθούν.
  15. Ανοίξτε τη φόρμα frmNewDataFile και στη συνέχεια κάντε κλικ στοΑναζήτησητο κουμπί.
  16. ΣτοΕπιλέξτε το νέο αρχείο δεδομένωνπαράθυρο διαλόγου πλαισίου, εντοπίστε το δείγμα βάσης δεδομένων Northwind.mdb με τον νέο φάκελο και, στη συνέχεια, κάντε κλικ στο κουμπίOpen.

    Σημειώστε ότι η διαδρομή και το όνομα της βάσης δεδομένων εμφανίζεται στο πλαίσιο κειμένου στη φόρμα σας.
  17. Κάντε κλικ στην καρτέλαΑνανέωση συνδέσεωνκουμπί της φόρμας.

    Σημειώστε ότι λαμβάνετε το ακόλουθο μήνυμα, όταν ολοκληρωθεί η διαδικασία:
    Σύνδεση σε νέο αρχείο δεδομένων παρασκηνίου ήταν επιτυχής.

Δημιουργία φόρμας εκκίνησης για τον έλεγχο των συνδεδεμένων πινάκων

Για να επαληθεύσετε τις συνδέσεις με τους πίνακες υποστήριξης αυτόματα κάθε φορά που ανοίγετε τη βάση δεδομένων FrontEnd.mdb, μπορείτε να δημιουργήσετε μια κρυφή φόρμα για το σκοπό αυτό, ακολουθώντας τα εξής βήματα:
  1. Δημιουργήστε μια νέα φόρμα που δεν βασίζεται σε πίνακα ή ερώτημα στη σχεδίαση προβολής.
  2. Στο διακομιστήViewμενού, κάντε κλικ στο κουμπίΚωδικός.
  3. Πληκτρολογήστε την παρακάτω διαδικασία όταν ανοίγει η φόρμα:
    Private Sub Form_Open(Cancel As Integer)      ' Tests a linked table for valid back-end.      On Error GoTo Err_Form_Open      Dim strTest As String, db As DAO.Database      Dim td As DAO.TableDef      Set db = CurrentDb      For Each td In db.TableDefs         If Len(td.Connect) > 0 Then   ' Is a linked table.            On Error Resume Next   ' Turn off error trap.            strTest = Dir(Mid(td.Connect, 11))   ' Check file name.            On Error GoTo Err_Form_Open   ' Turn on error trap.            If Len(strTest) = 0 Then   ' No matching file.               If MsgBox("Couldn't find the back-end file " & _                  Mid(td.Connect, 11) & ". Please choose new data file.", _                  vbExclamation + vbOKCancel + vbDefaultButton1, _                  "Can't find backend data file.") = vbOK Then                     DoCmd.OpenForm "frmNewDataFile"   ' Open prompt form.                     DoCmd.Close acForm, Me.Name                     Exit Sub                          ' to refresh links               Else                  MsgBox "The linked tables can't find their source. " & _                  "Please log onto network and restart the application."               End If            End If         End If      Next   ' Loop to next tabledef.      DoCmd.Close acForm, Me.NameExit_Form_Open:      Exit SubErr_Form_Open:      MsgBox Err.Number & ": " & Error.Description      Resume Exit_Form_Open      End Sub					
  4. Στο διακομιστήΟ εντοπισμός σφαλμάτωνμενού, κάντε κλικ στο κουμπίΜεταγλώττιση FrontEnd.
  5. Αποθηκεύστε τη φόρμα ως frmCheckLink και κατόπιν κλείστε το.
  6. Για να ορίσετε ως φόρμα εκκίνησης, frmCheckLink από τοΕργαλείαΚάντε κλικ στο μενούΕκκίνησηΕπιλογήfrmCheckLinkΣτοΕμφάνιση φόρμας/σελίδαςλίστα και στη συνέχεια κάντε κλικ στο κουμπίOk.
  7. Για να κάνετε frmCheckLink μιας κρυφής φόρμας, κάντε δεξιό κλικfrmCheckLinkστο παράθυρο "βάση δεδομένων", κάντε κλικ στο κουμπίΙδιότητες (Properties)από το μενού συντόμευσης, κάντε κλικ για να επιλέξετε τοΚρυφό (Hidden)το πλαίσιο ελέγχου με τοfrmCheckLink ιδιότητεςπαράθυρο διαλόγου και στη συνέχεια κάντε κλικOk.
  8. Μετακινήστε το δείγμα βάσης δεδομένων Northwind.mdb σε έναν άλλο φάκελο στο σκληρό σας δίσκο ώστε να τους συνδεδεμένους πίνακες στην FrontEnd.mdb θα πρέπει να ανανεωθούν.
  9. Κλείστε και ανοίξτε πάλι FrontEnd.mdb.

    Παρατηρήστε ότι λαμβάνετε το ακόλουθο μήνυμα λάθους
    Δεν είναι δυνατή η εύρεση του αρχείου παρασκηνίουτο αρχείο βάσης δεδομένων. Επιλέξτε το νέο αρχείο δεδομένων.
    Όπουτο αρχείο βάσης δεδομένωνείναι η διαδρομή και το όνομα της βάσης δεδομένων υποστήριξης.

    Εάν κάνετε κλικ στο κουμπίOk, η φόρμα frmNewDataFile ανοίγει για να επιλέξετε μια νέα βάση δεδομένων παρασκηνίου και ανανεώνει τις συνδέσεις σας πίνακα. Εάν κάνετε κλικ στο κουμπίΆκυρο (Cancel)Εμφανίζεται το ακόλουθο μήνυμα λάθους:
    Οι συνδεδεμένοι πίνακες δεν μπορεί να βρει την προέλευσή τους. Παρακαλούμε συνδεθείτε στο δίκτυο και επανεκκίνηση του προγράμματος.
Αναφορές
Για πρόσθετες πληροφορίες σχετικά με την προσαρμογή του παραδείγματος για ανανέωση συνδεδεμένων πινάκων στο δείγμα προγραμματιστές λύσεων προγράμματος (Solutions9.mdb), κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
154397ODE/ADT Τρόπος τροποποίησης μονάδας RefreshTableLinks στο Solutions.mdb
Για πρόσθετες πληροφορίες σχετικά με τον Οδηγό ανάπτυξης και το πακέτο, κάντε κλικ στο κουμπί αριθμούς των άρθρων παρακάτω για να προβάλετε τα άρθρα της Γνωσιακής Βάσης της Microsoft:
240956MOD2000: Το πακέτο και ο οδηγός ανάπτυξης τώρα χρησιμοποιούνται για τη δημιουργία μιας εφαρμογής διανομή
236143MOD2000: Πώς να ξεκινήσετε τον Οδηγό ανάπτυξης και πακέτου
inf reattach επανασύνδεση επανασύνδεση σύνδεσης ανανέωσης επισύναψη σύνδεση ODE ADT

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

Ιδιότητες

Αναγνωριστικό άρθρου: 209862 - Τελευταία αναθεώρηση: 12/05/2015 11:13:30 - Αναθεώρηση: 2.0

Microsoft Access 2000 Standard Edition

  • kbnosurvey kbarchive kbprogramming kberrmsg kbhowto kbinfo kbmt KB209862 KbMtel
Σχόλια