Newsgroup: it.comp.appl.access
Titolo: Dimensione Tabelle in termini di Kb...

secondo voi è possibile sapere da codice di un DB le singole tabelle che
peso in termini di Kb hanno all'interno del DB stesso?...
-- 
Ciao
Pablitomf
----------------------------
http://www.accessgroup.it/
----------------------------
Non mi fido molto delle statistiche, perchè un uomo con la testa nel forno
acceso e i piedi nel congelatore statisticamente ha una temperatura media.
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Pablitomf
Ciao Ragazzo...
Non credo sia così semplice...
L'unica cosa che puoi fare è calcolare lo spazio in Byte occupato dai
dati in esse contenuti, ma è un lavoraccio che non sò quanto possa
essere attendibile con quello che chiedi.
@Alex


io farei un accrocchio del genere:
esporto ogni tabella in un txt da codice
da codice mi recupero il peso di ogni file txt
faccio la media ponderata con il peso del file mdb degli archivi
ottenendo cosě il peso di ogni singola tabella...spannometrico
ciao
BFS

 che peso in termini di Kb hanno all'interno del DB stesso?...
Non č semplice.
Thilo Immel ha fatto un tool (mde) che crea un report con i kb
per tutte tabelle di un db (senza campi memo):
http://www.atroplan.com/AccMemReporter.htm
-- 
HTH
Karl
*********
Access FAQ: 
www.donkarl.com/it
 

 ha scritto nel messaggio 
news:4989c33d$0$1111$4faf...@reader3.news.tin.it...

Se escludi dal conteggio le tabelle Msys forse ci si avvicina...mediamente 
un db "vuoto" pesa 100Kb...
Ma č sempre a "spanne" il conteggio
Mi sa che l'indicazione di Karl sia la migliore....strano... :-))
Ciao
-- 
Roberto da Parma 


Va be dai allora ditelo!!!........mi sa che devi dare un'occhiata alla 
risposta di Karl....provato!!
Fa paura!!Ti da anche l'occupazione degli indici per singola tabella!!!! Piů 
di cosě!


 
http://www.atroplan.com/AccMemReporter.htm
Wè Karl ciao, tnks x la dritta, ma a me + che il risultato (che sembra
quello giusto) interessa il processo... sarà pure difficile, ma se c'è
arrivato lui vuol dire che si può... il problema è come?... tu ne sai
qualcosa?


 qualcosa?
Ciao Maurizio,
non molto.
Qualche anno fa ad un piccolo seminario Thilo ci ha mostrato
come si puo calcolare lo spazio preso da un singolo campo
in una tabella (data + amministrazione dipendono dal tipo)
e come i record sono salvati in pagine di memoria.
Dalla somma dei campi, il numero di record e la sistemazione
nelle pagine si potrebbe circa calcolare lo spazio dell'intera tabella.
Ma ci sono ancora i sui segreti p.e. come lui calcola così veloce
lo spazio per il contenuto nei campi di testo o quale metodo diverso
usa nel MDE. Credo che nel suo tool ci sono ancora alcuni aspetti
derivati dal suo lavoro con l'hex editor & Co.
-- 
cu


 Ciao Maurizio,



Vabbè un ACCROCCO me lo sono inventato... sembra fungere... ;)
Dim db As Database
    Private Sub Command1_Click()
 
 
    Dim strRow          As String
    strRow = "Tabella;~Kb;"
 
    Dim tdf             As DAO.TableDef
    Dim Rst             As DAO.Recordset
    Dim LenPrima        As Long
    Dim LenDopo         As Long
    Dim PesoTot         As Long
 
 
    For Each tdf In DBEngine(0)(0).TableDefs
        Debug.Print tdf.Name
        If Dir("C:test.mdb") = "test.mdb" Then
            Kill "C:test.mdb"
            DoEvents
        End If
 
        If Left(tdf.Name, 4) <> "MSys" Then
            ' Create the database.
             Set db = CreateDatabase("C:test.mdb", dbLangGeneral)
             Set db = Nothing
             DoEvents
             LenPrima = FileLen("C:test.mdb")
             LenPrima = LenPrima / 1024
             DoEvents
 
             DoCmd.CopyObject "c:test.mdb", tdf.Name, acTable, tdf.Name
             DoEvents
             LenDopo = FileLen("C:test.mdb")
             LenDopo = LenDopo / 1024
             DoEvents
 
             strRow = strRow & tdf.Name & ";" & LenDopo - LenPrima & ";"
             PesoTot = PesoTot + (LenDopo - LenPrima)
             Me.Elenco0.RowSource = strRow
             Me.Elenco0.Requery
             'MsgBox "Peso Tabella " & tdf.Name & vbCrLf & "Prima " &
LenPrima & vbCrLf & "Dopo " & LenDopo & vbCrLf & "Tab. " & LenDopo -
LenPrima
        End If
    Next tdf
 
    MsgBox "Peso Tabelle " & PesoTot
 
 
 
 
 
    End Sub



Ora compatta il DB che viene creato e confronta la dimensione prima e
dopo...
;-)
@Alex



Viene giusto...
