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/5625-monada-metrisis-megethoys-basis-dedomenon.html)

dimitrisp 29-08-20 12:47

Μονάδα μέτρησης μεγέθους βάσης δεδομένων
 
1 Συνημμένο(α)
Καλημέρα σε όλους

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

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



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

Tasos 29-08-20 15:37

Καλημέρα σε όλους!
Δημήτρη σε μια λειτουργική μονάδα (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] είναι το πεδίο με τη διαδρομή του αρχείου.

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

Τάσος

dimitrisp 29-08-20 19:30

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

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

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

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

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

Να είσαι καλά και καλή συνέχεια.

Tasos 29-08-20 22:29

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

Κώδικας:

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()

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

Τάσος

dimitrisp 30-08-20 00:40

Γεια σας

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

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

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


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

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


Search Engine Optimization by vBSEO 3.3.2