Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Συμπύκνωση και επιδιόρθωση (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/554-sympiknosi-kai-epidiorthosi.html)

Jim 18-04-10 12:27

Συμπύκνωση και επιδιόρθωση
 
Καλημέρα σε όλα τα παιδιά. Μια ερώτηση Πώς μπορούμε να κάνουμε συμπύκνωση και επιδιόρθωση της βάσης σέ VBA Access 2003. Όνομα Βάσης GroupLarisa.Όχι από το μενού τις Access

editolis 18-04-10 13:44

Αγαπητε Φιλε,

Θα φτιαξεις ενα κουμπι εντολης στην φορμα σου
και θα το ονομασεις οπως εσυ θελεις.

Στο κλικ θα βαλεις τον εξης κωδικα:

'================================================= =======
dim vStatusBar
Application.SetOption ("Auto Compact"), 1
Application.SetOption "Show Status Bar", True
vStatusBar = SysCmd(acSysCmdSetStatus, "Compact Database...")
DoCmd.RunCommand acCmdCompileAndSaveAllModules
DoCmd.Quit
'================================================= =======

Τωρα εαν θες να μην αποθηκευτει μονιμα αυτη η εντολη τοτε
στην πρωτη σου φορμα που ανοιγει το προγραμμα σου βαλε
αυτη την εντολη στο OnOpen...

'==========================================
Application.SetOption ("Auto Compact"), 0
'==========================================

Καλη συνεχεια...

Tasos 18-04-10 18:41

Καλησπέρα σε όλους!

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

Κώδικας:

Application.SetOption ("Auto Compact"),  True
Μ αυτό τον τρόπο ενεργοποιούμε την επιλογή Συμπύκνωση κατά το κλείσιμο.

Για να κάνουμε την ίδια ενέργεια σε άλλη βάση χρησιμοποιούμε την παρακάτω συνάρτηση:
Κώδικας:

  Function CompactDB(DbFullName$, Optional CompactPersentage%)
    Dim DbFile$, DbPath, tmpFullName, AppCompactPersentage%
    On Error GoTo ErrH
    If CompactPersentage Then
        With Application
            AppCompactPersentage = .GetOption("Auto Compact Percentage")
            .SetOption "Auto Compact Percentage", CompactPersentage
        End With
    End If
    DbFile = Dir(DbFullName)
    DbPath = Left$(DbFullName, Len(DbFullName) - Len(DbFile))
    tmpFullName = DbPath & "tmp" & Replace(Format(Now, "hh:mm:ss"), ":", "_") & ".mdb"
    DBEngine.CompactDatabase DbFullName, tmpFullName
    Kill DbFullName: Name tmpFullName As DbFullName
ErrH:
    If Err = 0 Then
        MsgBox "Η βάση '" & DbFile & "' συμπυκνώθηκε με επιτυχία!"
    Else
        MsgBox "Σφάλμα: " & Err.Number & vbLf & vbLf & Err.Description
    End If
    If CompactPersentage Then Application.SetOption "Auto Compact Percentage", AppCompactPersentage
End Function

Η συνάρτηση καλείται με τον παρακάτω κώδικα:
Κώδικας:

Sub CompactGroupLarisa()
    CompactDB "C:\ GroupLarisa.mdb", 75    'Προσάρμοσε τη διαδρομή και  ποσοστό συμπύκνωσης
                                          '(η χρήση του τελευταίου είναι προαιρετική)

End Sub

Φιλικά

Τάσος

xristos0718 19-04-10 11:05

Καλημερα σε ολους

Τασο μια ερωτηση ....Τον παραπανω κωδικα τον γραφω σε μια Module
τωρα οταν θελω να τον χρησημοποιησω σε μια φορμα πως μπορω να τον καλεσω

Ευχαριστωγια τον χρονο σου

Tasos 19-04-10 11:18

Καλημέρα Χρήστο!

Η συνάρτηση καλείται με τον παρακάτω κώδικα:

Κώδικας:


Private Sub Button_Click()
    CompactDB "C:\ ΌνομαΑρχείου.mdb", 75    'Προσάρμοσε τη διαδρομή και  ποσοστό συμπύκνωσης
                                            '(η χρήση του τελευταίου είναι προαιρετική)
End Sub

Φιλικά

Τάσος

xristos0718 19-04-10 12:59

Τασο ευχαριστω για την βοηθεια σου αλλα μου βγαζει
το παρακατω μηνυμα

Σφαλμα 3024
Couldnot fine file C:\ Ονομα βασης που εχω ....
Καμια ιδεα?

Tasos 19-04-10 13:28

Χρήστο,
αυτό σημαίνει ότι δεν έχει γραφεί σωστά η διαδρομή του αρχείου γι αυτό και δεν μπορεί να βρεθεί όπως σου λέει το μήνυμα.
Είσαι σίγουρος ότι το αρχείο σου βρίσκεται στο C:\ ;

xristos0718 19-04-10 20:10

Τασο καλησπερα

Μολις εκανα αυτο που μου ειπες αλλα τωρα μου βγαζει ...

Σφαλμα 3356
Προασπαθησατα να ανοιξετε μια βαση δεδομενων που εχει ηδη ανοιξη για αποκληστηκη χρηση και...................................προσ αθηστε ξανα

Εψαξα στο google τι ειναι το σφαλμα 3356 αλλα δεν μπορεσα να βγαλω ακρη

Υπαρχη καμια ιδεα?

Ευχαριστω για τον χρονο σου

Σπύρος 19-04-10 21:47

Καλησπέρα φίλε μου.
Πήγαινε στο άνοιγμα και εκεί κάτω δεξιά εκεί που λέει άνοιγμα πάτα το βελάκι που δείχνει προς τα κάτω και επέλεξε το άνοιγμα.
Bye και ελπίζω να βοήθησα κάπως!

Tasos 19-04-10 22:39

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

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

Τάσος

editolis 19-04-10 23:55

Τασο παρατηρησα οτι υπαρχει ενα τυχαιο κενο και ισως
ειναι αυτο που του βγαζει το λαθος.

ΑΠΟ: CompactDB "C:\ ΌνομαΑρχείου.mdb", 75

ΣΕ: CompactDB "C:\ΌνομαΑρχείου.mdb", 75

Για δοκιμασε τωρα με αυτη την αλλαγη...


Η ώρα είναι 23:39.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2