Est-il possible de connaître la place que prend une table dans une base de
données ?
Par exemple, si la base fait 10 Mo, j'aimerais savoir que la table TTT
utilise 1 Mo, la table UUU utilise 2 Mo et ainsi de suite.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Eric
Bonjour Patrick,
Je ne connais pas de propriété qui te retourne directement la taille d'une table. (Suis persuadé que quelqu'un nous la donnera ou une procédure plus sophistiquée que la mienne)
Avec la procédure suivante que tu mets dans un module standard, celle-ci t'affichera dans la fenêtre Exécution, le nb d'enregistrements et un ordre de grandeur de la taille de chaque table en octets.(Taille d'un enregistrement en octets * Nb d'enregistrements de la table)
Sub TailleDesTables() Dim tbl As DAO.TableDef, fld As DAO.Field, TailleEnreg As Long Dim TotalOctets as Long For Each tbl In CurrentDb.TableDefs If Left(tbl.Name, 4) <> "MSys" Then Debug.Print "Table : " & tbl.Name & vbCrLf & vbTab & _ " - Nb d'enregistrements : " & Format(tbl.RecordCount, "# ##0") For Each fld In tbl.Fields TailleEnreg = TailleEnreg + fld.Size Next fld: Debug.Print vbTab & " - Taille en octets : " & _ vbTab & Format(TailleEnreg * tbl.RecordCount, "# ##0") End If TotalOctets = TotalOctets + TailleEnreg * tbl.RecordCount TailleEnreg = 0: Debug.Print Next tbl Debug.Print "-----------------------------------" Debug.Print "Taille totale des tables : " & _ Format(TotalOctets, "# ##0") End Sub
A+ Eric
"Patrick" écrivait news:uZY#:
Bonjour,
Est-il possible de connaître la place que prend une table dans une base de données ? Par exemple, si la base fait 10 Mo, j'aimerais savoir que la table TTT utilise 1 Mo, la table UUU utilise 2 Mo et ainsi de suite.
Merci pour votre aide.
Bonjour Patrick,
Je ne connais pas de propriété qui te retourne directement la taille
d'une table. (Suis persuadé que quelqu'un nous la donnera ou une
procédure plus sophistiquée que la mienne)
Avec la procédure suivante que tu mets dans un module standard, celle-ci
t'affichera dans la fenêtre Exécution, le nb d'enregistrements et un
ordre de grandeur de la taille de chaque table en octets.(Taille d'un
enregistrement en octets * Nb d'enregistrements de la table)
Sub TailleDesTables()
Dim tbl As DAO.TableDef, fld As DAO.Field, TailleEnreg As Long
Dim TotalOctets as Long
For Each tbl In CurrentDb.TableDefs
If Left(tbl.Name, 4) <> "MSys" Then
Debug.Print "Table : " & tbl.Name & vbCrLf & vbTab & _
" - Nb d'enregistrements : " & Format(tbl.RecordCount, "# ##0")
For Each fld In tbl.Fields
TailleEnreg = TailleEnreg + fld.Size
Next fld: Debug.Print vbTab & " - Taille en octets : " & _
vbTab & Format(TailleEnreg * tbl.RecordCount, "# ##0")
End If
TotalOctets = TotalOctets + TailleEnreg * tbl.RecordCount
TailleEnreg = 0: Debug.Print
Next tbl
Debug.Print "-----------------------------------"
Debug.Print "Taille totale des tables : " & _
Format(TotalOctets, "# ##0")
End Sub
Est-il possible de connaître la place que prend une table dans une
base de données ?
Par exemple, si la base fait 10 Mo, j'aimerais savoir que la table TTT
utilise 1 Mo, la table UUU utilise 2 Mo et ainsi de suite.
Je ne connais pas de propriété qui te retourne directement la taille d'une table. (Suis persuadé que quelqu'un nous la donnera ou une procédure plus sophistiquée que la mienne)
Avec la procédure suivante que tu mets dans un module standard, celle-ci t'affichera dans la fenêtre Exécution, le nb d'enregistrements et un ordre de grandeur de la taille de chaque table en octets.(Taille d'un enregistrement en octets * Nb d'enregistrements de la table)
Sub TailleDesTables() Dim tbl As DAO.TableDef, fld As DAO.Field, TailleEnreg As Long Dim TotalOctets as Long For Each tbl In CurrentDb.TableDefs If Left(tbl.Name, 4) <> "MSys" Then Debug.Print "Table : " & tbl.Name & vbCrLf & vbTab & _ " - Nb d'enregistrements : " & Format(tbl.RecordCount, "# ##0") For Each fld In tbl.Fields TailleEnreg = TailleEnreg + fld.Size Next fld: Debug.Print vbTab & " - Taille en octets : " & _ vbTab & Format(TailleEnreg * tbl.RecordCount, "# ##0") End If TotalOctets = TotalOctets + TailleEnreg * tbl.RecordCount TailleEnreg = 0: Debug.Print Next tbl Debug.Print "-----------------------------------" Debug.Print "Taille totale des tables : " & _ Format(TotalOctets, "# ##0") End Sub
A+ Eric
"Patrick" écrivait news:uZY#:
Bonjour,
Est-il possible de connaître la place que prend une table dans une base de données ? Par exemple, si la base fait 10 Mo, j'aimerais savoir que la table TTT utilise 1 Mo, la table UUU utilise 2 Mo et ainsi de suite.