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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 29-08-20, 12:47
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή Μονάδα μέτρησης μεγέθους βάσης δεδομένων

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

Στην παραδειγματική βάση δεδομένων που ανέβασα υπάρχει ένα πεδίο το οποίο
μάς δίνει το μέγεθος τής τρέχουσας βάσης δεδομένων (σε καθαρό αριθμό).

Πως μπορούμε να συμπληρώσουμε τον κώδικα έτσι ώστε να μάς δίνει ταυτόχρονα
και τη μονάδα μέτρησης (Mb, Gb)?



Σας ευχαριστώ εκ των προτέρων
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb DatabaseSize.accdb (388,0 KB, 10 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 29-08-20, 15:37
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλημέρα σε όλους!
Δημήτρη σε μια λειτουργική μονάδα (Module) πρόσθεσε τον παρακάτω κώδικα:

Κώδικας:
Public Function GetFileLen(ByVal filePath As String) As String
    Dim FileLen As Double
    FileLen = FileLen(filePath)
    
    Select Case FileLen
    Case Is >= 1099511627776#
        GetFileLen = FormatNumber(FileLen / 1099511627776#, 2) & " TB"
    Case 1073741824 To 1099511627775#
        GetFileLen = FormatNumber(FileLen / 1073741824, 2) & " GB"
    Case 1048576 To 1073741823
        GetFileLen = FormatNumber(FileLen / 1048576, 2) & " MB"
    Case 1024 To 1048575
        GetFileLen = FormatNumber(FileLen / 1024, 2) & " KB"
    Case 0 To 1023
        GetFileLen = FormatNumber(FileLen, 2) & " bytes"
    Case Else
        GetFileLen = vbNullString
    End Select
    
End Function
Για να καλέσεις την παραπάνω συνάρτηση από φόρμα ή από ερώτημα ακολούθησε το παράδειγμα:

=GetFileLen([filePath]) όπου [filePath] είναι το πεδίο με τη διαδρομή του αρχείου.

Καλή συνέχεια!

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #3  
Παλιά 29-08-20, 19:30
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή

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

Τάσο, θερμές ευχαριστίες για την ανεκτίμητη βοήθειά σου!

Αν έχεις την καλοσύνη και έχεις χρόνο, θα ήθελα να μου πεις πως μπορεί, στη Function που παραθέτεις,
να μετατραπεί το FileLen(filePath) σε FileLen(CurrentDb.Name).

Δηλαδή, η Function να ισχύει για τρέχουσα βάση δεδομένων...

Έκανα κάποιες δοκιμές αλλά δεν βλέπω να τα καταφέρνω.

Να είσαι καλά και καλή συνέχεια.
Απάντηση με παράθεση
  #4  
Παλιά 29-08-20, 22:29
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Δημήτρη μου δοκίμασε:

Κώδικας:
Public Function GetFileLen() As String
    Dim filePath As String
    Dim filesize As Double

    filePath = CurrentProject.FullName
    ''Αν πρόκειται για συνδεμένη βάση (Backend) τότε χρησιμοποιούμε:
    'filePath = CurrentDb.TableDefs("tblFields").Connect
    'filePath = Mid(filePath, InStr(1, filePath, ";DATABASE=") + 10)
    'tblFields = το όνομα ενός από τους συνδεμένους πίνακες στην βάση παρασκηνίου.
    
    filesize = FileLen(filePath)
    Select Case filesize
    Case Is >= 1099511627776#
        GetFileLen = FormatNumber(filesize / 1099511627776#, 2) & " TB"
    Case 1073741824 To 1099511627775#
        GetFileLen = FormatNumber(filesize / 1073741824, 2) & " GB"
    Case 1048576 To 1073741823
        GetFileLen = FormatNumber(filesize / 1048576, 2) & " MB"
    Case 1024 To 1048575
        GetFileLen = FormatNumber(filesize / 1024, 2) & " KB"
    Case 0 To 1023
        GetFileLen = FormatNumber(filesize, 2) & " bytes"
    Case Else
        GetFileLen = vbNullString
    End Select
End Function
Κάλεσε τη συνάρτηση από πεδίο της φόρμας έτσι: GetFileLen()

Καλή συνέχεια!

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #5  
Παλιά 30-08-20, 00:40
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή

Γεια σας

Τάσο, σε υπερευχαριστώ για την άμεση απάντηση!

Έκανα προσαρμογή στη βάση μου και λειτουργεί άριστα.

Είμαι πραγματικά υπόχρεος.
Καλή συνέχεια...
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Σχεδιασμός Βάσης Δεδομένων maria_ Access - Ερωτήσεις / Απαντήσεις 14 25-08-16 10:21
[ Φόρμες ] Χρονόμετρο αντίστροφης μέτρησης dimitris p Access - Ερωτήσεις / Απαντήσεις 5 29-11-12 13:09
Ασφάλεια Βάσης Δεδομένων jimvasiloudis Access - Ερωτήσεις / Απαντήσεις 11 03-02-12 09:13
Κλείδωμα Βάσης δεδομένων Ms-Office-Development Team Access samples - Χρήσιμα αρχεία & παραδείγματα 0 08-08-10 14:42
[ Ερωτήματα ] Ερώτημα μέτρησης ανά όνομα ημέρας enikolo Access - Ερωτήσεις / Απαντήσεις 21 19-05-10 18:58


Η ώρα είναι 00:47.