ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > Εντοπισμός αρχείου συνδεδεμένων πινάκων μέσα από την εφαρμογή μου

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 18-01-18, 10:03
Όνομα: Βάγγος
Έκδοση λογισμικού Office: Ms-Office 2000, Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 13-04-2016
Μηνύματα: 26
Προεπιλογή Εντοπισμός αρχείου συνδεδεμένων πινάκων μέσα από την εφαρμογή μου

Καλημέρα και καλή χρόνιά
Έχω φτιάξει μια εφαρμογή της οποία οι πίνακες με τα δεδομένα βρίσκονται στην DB1 και όλα τα υπόλοια (διασύνδεση, ερωτήματα κ.τ.λ) στην DB2, με σύνδεση των πινάκων.
Αν την DB1 την βάλω σε άλλο φάκελο, η DB2 δεν μπορει να εντοπίσει τους πίνακες (λογικό θα πει κανεις).
Πώς μπορώ μέσω της DB2 (με κώδικα ή με καποιον άλλο τροπο;;) να εντοπίζω τη διαδαρομή της DB1 και να επανσυνδένται οι πίνακες;
π.χ. μέσω μιας φόρμας να δίνω το νέο path και το όνομα αρχείου και με τον κατάλληλο κώδικα να επανασυνδέονται οι πίνακες, χωρίς να χρησιμοποιώ το περιβάλλον και τα εργαλεία της access.
Υ.Γ. Μπορεί να συμβεί κάτι τέτοιο;
Απάντηση με παράθεση
  #2  
Παλιά 18-01-18, 19:29
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.737
Προεπιλογή

Καλησπέρα

Βαγγέλη θα μπορούσες να προσθέσεις στη ΒΔ (DB2) μία φόρμα με ένα κουμπί και να χρησιμοποιήσεις τον παρακάτω κώδικα:

Κώδικας:
Private Sub cmdUpadateLinks_Click()
    Dim fullNameDB As String
    fullNameDB = PickDB()
    If Len(fullNameDB) > 0 Then
        UpdateLinks (fullNameDB)
    End If
End Sub

Public Function PickDB() As String
'Απαιτείται αναφορά στην Microsoft Office Object Library.
'Έκδοσης >=11.0

    With Application.FileDialog(3)

        'Επιλέγεται μόνο ένα αρχείο
        .AllowMultiSelect = False

        'Τίτλος του dialog box.
        .Title = "Διαλέξτε μία ΒΔ"

        'Ορισμός νέων φίλτρων.
        .Filters.Clear
        .Filters.Add "Access Databases", "*.MDB;*.accdb"
        .Filters.Add "Access Projects", "*.ADP"
        .Filters.Add "All Files", "*.*"

        'εμφάνιση πλαισίου διαλόγου και επιλογή
        If .Show = True Then
            PickDB = .SelectedItems(1)
        End If
        
    End With
End Function

Public Sub UpdateLinks(strBackEnd As String)
    'Ο κώδικας ισχύει για την περίπτωση που όλοι οι πίνακες
    'με τους οποίους συνδέεται η τρέχουσα ΒΔ βρίσκονται
    'σε μια ΒΔ (strBackEnd)
    '------------------------------------------------------------
    Dim db As DAO.Database, tbl As DAO.TableDef
    
    On Error GoTo errHandler
    
    Set db = CurrentDb
       
    For Each tbl In db.TableDefs
        If tbl.Connect <> "" Then
            tbl.Connect = ";DATABASE=" & strBackEnd
            tbl.RefreshLink
        End If
    Next
    
    MsgBox ("Οι σύνδεσμοι ενημερώθηκαν.")
    Exit Sub
errHandler:
    MsgBox Err.Description, vbCritical, "Error #" & Err.Number
End Sub
Σημειώνω ότι ο κώδικας θα πρέπει να αντιγραφεί στη φόρμα και ότι ονόμασα το κουμπί cmdUpadateLinks

Πατώντας το κουμπί θα εμφανιστεί ένα πλαίσιο διαλόγου επιλογής αρχείων, για να επιλέξουμε τη ΒΔ με τους πίνακες δεδομένων.
Απάντηση με παράθεση
  #3  
Παλιά 18-01-18, 21:11
Όνομα: Χρήστος
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 18-11-2012
Περιοχή: Deutschland
Μηνύματα: 206
Προεπιλογή

Βάλε αυτό μέσα στο FE της εφαρμογής σου και είσαι έτοιμος!! Απο την visual basic καρτέλα κάνε εισαγωγή το module που σου έχω στο συμπιεσμένο αρχείο.
basJStreetAccessRelinker.zip
Ξέχασα να σου πω να δημιουργήσεις μια μακροεντολή που θα την ονομάσεις AutoExec (αν δεν έχεις ήδη) και να προσθέσεις αυτό.
RunCode
jstCheckTableLinks_Quick()

Τελευταία επεξεργασία από το χρήστη pctechdr : 18-01-18 στις 21:35.
Απάντηση με παράθεση
  #4  
Παλιά 14-02-18, 12:31
Όνομα: Βάγγος
Έκδοση λογισμικού Office: Ms-Office 2000, Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 13-04-2016
Μηνύματα: 26
Προεπιλογή

Ευχαριστώ πολύ
Εξαιρετικό!!!
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Διαχείριση συνδεδεμένων πινάκων κκκ Access - Ερωτήσεις / Απαντήσεις 3 02-12-17 17:59
[Γενικά] Λίστα ονοματεπωνύμων: εντοπισμός ονομάτων, επωνύμων ή μέρους των και ενημέρωση κελιών Skakinen Excel - Ερωτήσεις / Απαντήσεις 7 14-02-15 23:19
Εντοπισμός Φακέλου και *.txt Panos Mixos Access - Ερωτήσεις / Απαντήσεις 5 19-11-12 16:45
[Συναρτήσεις] ΛΙΣΤΑ - ΠΙΝΑΚΑΣ εντοπισμός εγγραφής Thanosp Excel - Ερωτήσεις / Απαντήσεις 7 06-03-12 19:22
[Access - VBA] vba Εντοπισμος ανοιχτης φορμας Giorgos Visual Basic for Applications (VBA) 11 12-02-10 18:28


Η ώρα είναι 22:07.