Class: MemoryStatus in Category Windows : System Information from Total Visual SourceBook

Retrieve memory status information such as total and available memory, with support for 32 and 64-bit API calls using VBA and VB6.

Procedure Name Type Description
(Declarations) Declarations Declarations and private variables for the CMemoryStatus class.
MemoryScale Property Get the currently specified scale to adjust memory units.
MemoryUnits Property Get the string representing the current memory units.
Class_Initialize Initialize Initialize the object to get the memory values.
AdjustScale Private Adjust a value in bytes to the specified scale.
LargeIntToCurrency Private Convert 8 bytes from the large integer to a currency value.
AvailablePageFile Method Get the available page file size.
AvailablePhysical Method Get the available physical memory.
AvailableVirtual Method Get the available virtual memory.
MemoryLoad Method Get the memory utilization (value between 0 and 100).
TotalPageFile Method Get the page file size.
TotalPhysical Method Get the total physical memory.
TotalVirtual Method Get the total virtual memory.
' Example of CMemoryStatus
' To use this example, create a new module and paste this code into it.
' Then run the procedure by putting the cursor in the procedure and pressing:
'    F5 to run it, or
'    F8 to step through it line-by-line (see the Debug menu for more options)

Private Sub Example_CMemoryStatus()
  ' Comments: Example of using the CMemoryStatus class to get memory information, in VB6 and VBA with 32 and 64 bit Windows API calls.
  '           Run this procedure and see the information in the Immediate Window.

  Dim clsMemoryStatus As CMemoryStatus
  Dim intLoop As Integer
  Dim strUnits As String

  Set clsMemoryStatus = New CMemoryStatus

  With clsMemoryStatus
    ' Show memory status information
    Debug.Print "Memory Load = " & .MemoryLoad & "%"

    ' Loop three times to see how units can be adjusted
    For intLoop = 1 To 4
      ' Show memory amounts in bytes, KB, MB or GB
      Select Case intLoop
        Case 1
          .MemoryScale = eMemoryBytes
        Case 2
          .MemoryScale = eMemoryKB
        Case 3
          .MemoryScale = eMemoryMB
        Case 4
          .MemoryScale = eMemoryGB
      End Select
      strUnits = .MemoryUnits()

      Debug.Print "Total Physical      = " & .TotalPhysical & strUnits
      Debug.Print "Available Physical  = " & .AvailablePhysical & strUnits

      Debug.Print "Total Page File     = " & .TotalPageFile & strUnits
      Debug.Print "Available Page File = " & .AvailablePageFile & strUnits

      Debug.Print "Total Virtual       = " & .TotalVirtual & strUnits
      Debug.Print "Available Virtual   = " & .AvailableVirtual & strUnits
    Next intLoop
  End With

  Set clsMemoryStatus = Nothing
End Sub

Total Visual SourceBook The source code in Total Visual Sourcebook includes modules and classes for Microsoft Access, Visual Basic 6 (VB6), and Visual Basic for Applications (VBA) developers. Easily add this professionally written, tested, and documented royalty-free code into your applications to simplify your application development efforts.

Total Visual SourceBook is written for the needs of a developer using a source code library covering the many challenges you face. Countless developers over the years have told us they learned some or much of their development skills and tricks from our code. You can too!

Additional Resources

Total Visual SourceBook CD and Printed Manual

Microsoft Access/ Office 2016, 2013, 2010, and 2007 Version
is Shipping!

New features in Total Visual SourceBook for Access, Office and VB6

Supports Access/Office 2016, 2013, 2010 and 2007, and Visual Basic 6.0!

View all FMS products for Microsoft Access All Our Microsoft Access Products


Reader Choice Award for MS Access Source Code Library
Reader Choice

"The code is exactly how I would like to write code and the algorithms used are very efficient and well-documented."

Van T. Dinh, Microsoft MVP

SourceBook Info

Additional Info




Free Product Catalog from FMS