ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Πίνακες ] Αυτόματη Ανανέωση Πινάκων

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 06-06-17, 14:55
Όνομα: Γρηγόρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-03-2013
Μηνύματα: 124
Προεπιλογή Αυτόματη Ανανέωση Πινάκων

Καλησπέρα σας,

Υπάρχει κάποιος τρόπος να γίνεται αυτόματη ανανέωση πινάκων (με κώδικα εννοείται) βάσει του φακέλου που βρίσκεται το βασικό αρχείο access;

Επειδή χρειάζεται να μεταφέρω συνεχώς τους φακέλους εντός των οποίων βρίσκονται, το βασικό αρχείο access αλλά και τα συνδεδεμένα αρχεία access, excel ή txt θα ήταν εξαιρετικά χρήσιμο αν θα μπορούσα να αποφεύγω συνέχεια την εκ νέου σύνδεση των εξωτερικών αρχείων (ένα - ένα) από την "διαχείριση συνδεδεμένων πινάκων" (λόγω αλλαγής τοποθεσίας του φακέλου).

Ευχαριστώ εκ των προτέρων

Γρηγόρης
Απάντηση με παράθεση
  #2  
Παλιά 07-06-17, 22:12
Όνομα: Χρήστος
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 18-11-2012
Περιοχή: Deutschland
Μηνύματα: 206
Προεπιλογή

Για δοκίμασε αυτό!
RelinkAccessTables.zip

Ελπίζω να ξέρεις να το κάνεις εισαγωγή στην εφαρμογή σου!
Αν χρειαστείς κάτι εδώ είμαστε!
Απάντηση με παράθεση
  #3  
Παλιά 07-06-17, 23:02
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 744
Προεπιλογή

καλησπέρα,

Χρίστο αν έχεις την καλοσύνη μας εξηγείς λίγο περι τίνως πρόκυται και πως μπορεί να χρησιμοποιειθεί?

Ευχαριστώ εκ προτέρων
__________________
Γιώργος Στυλιανού

gs.pocketpc@gmail.com
Απάντηση με παράθεση
  #4  
Παλιά 07-06-17, 23:07
Όνομα: Χρήστος
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 18-11-2012
Περιοχή: Deutschland
Μηνύματα: 206
Προεπιλογή

Κάνεις εισαγωγή το module απο μέσα απο την access (vba)
Το καλείς με fRefreshLinks()
Εδώ ορίζεις τον συνδεμένο πίνακα Set rst = dbs.OpenRecordset("Όνομα πινακα")
Εδώ το password αν έχει Set dbLink = DBEngine(0).OpenDatabase(strDBPath, False, False, "MS Access;PWD=το pasword σου")
Απάντηση με παράθεση
  #5  
Παλιά 08-06-17, 18:29
Όνομα: Γρηγόρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-03-2013
Μηνύματα: 124
Προεπιλογή

Χρήστο,

Καταρχήν ευχαριστώ για την απάντησή σου.
Ο κώδικας που μου έχεις στείλει είναι πολύ σύνθετος, βγάζει σφάλμα και δεν μπορώ να βγάλω άκρη.
Θα ήθελα να απλοποιήσω λίγο την διαδικασία ως εξής :
Αν υποθέσουμε ότι έχουμε έναν πίνακα με την ονομασία "LinksTables" ο οποίος περιέχει 3 πεδία :

Table_Name
Old_Path
New_Path

Μπορεί να δημιουργηθεί ένας κώδικας σε VBA που να ενημερώσει για την νέα τοποθεσία των αρχείων;

Επίσης, με τον παραπάνω τρόπο μπορώ να έχω μεγαλύτερη ευελιξία καθώς μπορώ να επιλέξω ποιοι πίνακες θέλω να ανανεωθούν (μέσω του παραπάνω πίνακα) χωρίς να επεμβαίνω στον κώδικα.
Το πώς θα ενημερώνεται ο πίνακας «LinksTables» πριν γίνει η ανανέωση των πινάκων είναι κάτι που μπορώ να το κάνω.
*
Ευχαριστώ εκ των προτέρων
*
Γρηγόρης

Τελευταία επεξεργασία από το χρήστη ggreg75 : 08-06-17 στις 20:47.
Απάντηση με παράθεση
  #6  
Παλιά 08-06-17, 23:02
Όνομα: Χρήστος
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 18-11-2012
Περιοχή: Deutschland
Μηνύματα: 206
Προεπιλογή

http://www.ms-office.gr/forum/access...in-access.html
Απάντηση με παράθεση
  #7  
Παλιά 09-06-17, 09:13
Όνομα: Γρηγόρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-03-2013
Μηνύματα: 124
Προεπιλογή

Καλημέρα. Το εν λόγω θέμα που μου έστειλες, δεν υποστηρίζει ανανέωση πινάκων με τον τρόπο που χρειάζομαι. Υποστηρίζει ανανέωση μόνο από ένα αρχείο mdb.
Απάντηση με παράθεση
  #8  
Παλιά 10-06-17, 17:39
Όνομα: Γρηγόρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-03-2013
Μηνύματα: 124
Προεπιλογή

Βρήκα στο διαδίκτυο τον κάτωθι κώδικα και λειτουργεί μία χαρά για αρχεία mdb. Όχι όμως για αρχεία xls ή txt.
Μήπως θα μπορούσε κάποιος να με βοηθήσει για τα αρχεία xls ή txt;

Function SetTableLinkPath(strTableName As String, strTablePath As String)

If Nz(strTableName, "") <> "" And Nz(strTablePath, "") <> "" Then
Dim cdb As DAO.Database

Set cdb = CurrentDb

cdb.TableDefs(strTableName).Connect = ";DATABASE=" & strTablePath
cdb.TableDefs(strTableName).RefreshLink

MsgBox "Ο πίνακας " & strTableName & " ανανεώθηκε με την νέα τοποθεσία : " & strTablePath & "."
Else
MsgBox "You must enter a valid Table path and name!"
End If

End Function
Απάντηση με παράθεση
  #9  
Παλιά 11-06-17, 08:42
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.737
Προεπιλογή

Καλημέρα

Γρηγόρη, αν όλα τα αρχεία σου (της ΒΔ, *.txt, Excel και των πινάκων) βρίσκονται στον ίδιο φάκελο, δοκίμασε τον κώδικα:
Κώδικας:
Public Sub UpdateLinks()
    'Ο κώδικας ισχύει για την περίπτωση που το αρχείο της ΒΔ
    'και τα αρχεία των συνδεδεμένων πινάκων, excel και *.txt
    'βρίσκονται στον ίδιο φάκελο
    '------------------------------------------------------------
    Dim db As DAO.Database, newPath As String, oldPath As String
    Dim m As Long, sFile As String, tbl As DAO.TableDef
    
    On Error GoTo errHandler
    
    Set db = CurrentDb
       
    For Each tbl In db.TableDefs
        If tbl.Connect <> "" Then
            oldPath = tbl.Connect
            If Left(oldPath, 4) = "Text" Then
                sFile = ""
            Else
                m = InStrRev(oldPath, "\")
                sFile = Mid(oldPath, m + 1)
            End If
            
            m = InStr(oldPath, "DATABASE")
            oldPath = Left(oldPath, m - 1) & "DATABASE="
            
            newPath = CurrentProject.FullName
            m = InStrRev(newPath, "\")
            newPath = Left(newPath, m)
            
            tbl.Connect = oldPath & newPath & sFile
            tbl.RefreshLink
        End If
    Next
    Exit Sub
errHandler:
    MsgBox Err.Description, vbCritical, "Error #" & Err.Number
End Sub
Απάντηση με παράθεση
  #10  
Παλιά 11-06-17, 10:55
Όνομα: Γρηγόρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-03-2013
Μηνύματα: 124
Προεπιλογή

Γιώργο καλημέρα,
Δουλεύει μία χαρά!

Ευχαριστώ πάρα πολύ για την πολύτιμη βοήθειά σου!
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Γενικά] Pivot tabe - αυτόματη ανανέωση & date format Zounds Excel - Ερωτήσεις / Απαντήσεις 1 14-05-15 23:31
Αυτόματη Συμπλήρωση 2 πινάκων rmaria Access - Ερωτήσεις / Απαντήσεις 8 31-01-14 18:08
[VBA] Αυτόματη ανανέωση του filter μόλις επιλέγουμε ενα sheet dalavouras Excel - Ερωτήσεις / Απαντήσεις 2 20-06-13 12:42
Ένωση πινάκων - αυτόματη ενημέρωση ΧΟΥ Excel - Ερωτήσεις / Απαντήσεις 1 13-03-13 17:33
[Συναρτήσεις] Αυτόματη ανανέωση γραφήματος μέσω επικύρωσης nakosg Excel - Ερωτήσεις / Απαντήσεις 6 10-07-12 12:59


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