Εμφάνιση 1-3 από 3

Θέμα: ms Access - VBA

  1. #1
    Εγγραφή
    24-11-2011
    Μηνύματα
    32
    Downloads
    0
    Uploads
    0
    ISP
    Conn-x OTE
    Χαίρεται.
    Έχω φτιάξει μια βάση δεδομένων στην Access με ένα αρχείο DATA.mdb στο οποίο βρίσκονται οι πίνακες και οι σχέσεις τους και ένα INTERFACE.mdb με τις φόρμες και τη λειτουγρικότητα της βάσης, συνδεδεμένα μεταξύ τους.
    Δεν μπορώ να βρω τον κώδικα με τον οποίο, μόλις ανοίγει το interface.mdb θα ενημερώνεται αυτόματα η διαδρομή του link των συνδεδεμένων πινάκων.
    Με αποτέλεσμα, εάν μετακινηθεί ο φάκελος που περιέχει τα αρχεία της ΒΔ, μόλις ανοίξει το interface.mdb να βγάζει μήνυμα " δεν βρέθηκε το αρχείο c:{path}/data.mdb"
    Σχετικό πρόβλημα με το link αρχείων που ενπεριέχονται στη ΒΔ (εικόνες κ.τ.λ.) το έλυσα με την Application.CurrentProject.Path
    Τώρα όμως, πέρα από τον κώδικα που δεν ξέρω, δεν είμαι σίγουρος και για τη θέση στην οποία πρέπει να γραφτεί ο κώδικας!

    Ευχαριστώ!

  2. #2
    Εγγραφή
    20-03-2003
    Περιοχή
    Στη μόνη πόλη που γράφεται με 2 'σ' και προφέρεται με 2 'λ'
    Ηλικία
    53
    Μηνύματα
    21.422
    Downloads
    25
    Uploads
    2
    Τύπος
    ADSL2+
    Ταχύτητα
    11000/1023
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΡΟΣΤΑΝ
    Router
    Netgear DGN2000
    SNR / Attn
    4(dB) / 30.5(dB)
    Path Level
    Fastpath
    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
    Υπόψιν ότι η παραπάνω ρουτίνα θέλει reference στην Microsoft DAO Object Library.
    Τον κώδικα αυτόν θα πρέπει να τον εκτελέσεις από κάποια Startup() ρουτινα (στην οποία θα ορίζεις το strFilename) και η οποία θα είναι το πρώτο πράγμα που εκτελείται (μέσω ενός Macro που θα έχει το όνομα Autoexec) ώστε να εκτελείται αυτόματα ΠΡΙΝ διαβαστούν οι πινακες από την Access.
    Τελευταία επεξεργασία από το μέλος yiapap : 28-02-13 στις 16:25.
    Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας

  3. #3
    Εγγραφή
    24-11-2011
    Μηνύματα
    32
    Downloads
    0
    Uploads
    0
    ISP
    Conn-x OTE
    Ευχαριτώ

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

  1. MS Office για Linux το 2014!
    Από anon στο φόρουμ Γεγονότα και Απόψεις
    Μηνύματα: 9
    Τελευταίο Μήνυμα: 13-02-13, 18:55
  2. Πρόβλημα με access point και dm500
    Από psymind στο φόρουμ Satellite
    Μηνύματα: 1
    Τελευταίο Μήνυμα: 01-01-13, 04:00
  3. Μετατροπή VBA Macro για Microsoft Word σε LibreOffice/OpenOffice
    Από Kapnos στο φόρουμ Software γενικά
    Μηνύματα: 0
    Τελευταίο Μήνυμα: 12-11-12, 21:43
  4. Τρελα ms στο Wow
    Από DJman στο φόρουμ COSMΟΤΕ
    Μηνύματα: 2
    Τελευταίο Μήνυμα: 19-05-12, 14:05
  5. VBA, σύγκριση δεδομένων μεταξύ διαφορετικών φύλλων
    Από jose_ee1985 στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 2
    Τελευταίο Μήνυμα: 04-03-12, 18:59

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας