Χαίρεται.
Έχω φτιάξει μια βάση δεδομένων στην Access με ένα αρχείο DATA.mdb στο οποίο βρίσκονται οι πίνακες και οι σχέσεις τους και ένα INTERFACE.mdb με τις φόρμες και τη λειτουγρικότητα της βάσης, συνδεδεμένα μεταξύ τους.
Δεν μπορώ να βρω τον κώδικα με τον οποίο, μόλις ανοίγει το interface.mdb θα ενημερώνεται αυτόματα η διαδρομή του link των συνδεδεμένων πινάκων.
Με αποτέλεσμα, εάν μετακινηθεί ο φάκελος που περιέχει τα αρχεία της ΒΔ, μόλις ανοίξει το interface.mdb να βγάζει μήνυμα " δεν βρέθηκε το αρχείο c:{path}/data.mdb"
Σχετικό πρόβλημα με το link αρχείων που ενπεριέχονται στη ΒΔ (εικόνες κ.τ.λ.) το έλυσα με την Application.CurrentProject.Path
Τώρα όμως, πέρα από τον κώδικα που δεν ξέρω, δεν είμαι σίγουρος και για τη θέση στην οποία πρέπει να γραφτεί ο κώδικας!
Ευχαριστώ!
Εμφάνιση 1-3 από 3
Θέμα: ms Access - VBA
-
28-02-13, 15:50 ms Access - VBA #1
-
28-02-13, 16:07 Απάντηση: ms Access - VBA #2
Aυτόματα πως θα ενημερωθεί; Θα πρέπει με κάποιο τρόπο να δώσεις το νέο path.
Μετά να χρησιμοποιήσεις κάποιο βρόχο ο οποίος θα αλλάζει το .Connect attribute των TableDefs των συνδεδεμένων πινάκων.
Π.χ.
Κώδικας:Private 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 X = Y.Name Then Set tdlocal = dblocal.TableDefs(X) tdlocal.Connect = ";DATABASE=" & _ Trim(strFileName) tdlocal.RefreshLink UnProcessed.Remove (X) End If Next End If Next Exit_Relink: Exit Function Err_Relink: MsgBox Err.Number & ": " & Err.Description Resume Next End Function
Τον κώδικα αυτόν θα πρέπει να τον εκτελέσεις από κάποια Startup() ρουτινα (στην οποία θα ορίζεις το strFilename) και η οποία θα είναι το πρώτο πράγμα που εκτελείται (μέσω ενός Macro που θα έχει το όνομα Autoexec) ώστε να εκτελείται αυτόματα ΠΡΙΝ διαβαστούν οι πινακες από την Access.Τελευταία επεξεργασία από το μέλος yiapap : 28-02-13 στις 16:25.
Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας
-
20-03-13, 00:07 Απάντηση: ms Access - VBA #3
Ευχαριτώ
Παρόμοια Θέματα
-
MS Office για Linux το 2014!
Από anon στο φόρουμ Γεγονότα και ΑπόψειςΜηνύματα: 9Τελευταίο Μήνυμα: 13-02-13, 18:55 -
Πρόβλημα με access point και dm500
Από psymind στο φόρουμ SatelliteΜηνύματα: 1Τελευταίο Μήνυμα: 01-01-13, 04:00 -
Μετατροπή VBA Macro για Microsoft Word σε LibreOffice/OpenOffice
Από Kapnos στο φόρουμ Software γενικάΜηνύματα: 0Τελευταίο Μήνυμα: 12-11-12, 21:43 -
Τρελα ms στο Wow
Από DJman στο φόρουμ COSMΟΤΕΜηνύματα: 2Τελευταίο Μήνυμα: 19-05-12, 14:05 -
VBA, σύγκριση δεδομένων μεταξύ διαφορετικών φύλλων
Από jose_ee1985 στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 2Τελευταίο Μήνυμα: 04-03-12, 18:59
Bookmarks