[AccessD] 64-but ONLY front end ?

Ryan Wehler wrwehler at gmail.com
Mon Jan 23 19:34:22 CST 2017


I wonder if it's fixed in Access 2016. I could give my users that runtime.... 

I don't know that I've seen anyone else mention Access 2013 memory inefficiencies aside from you and me. 

Really frustrating. 

Sent from my iPad

> On Jan 23, 2017, at 7:27 PM, Bill Benson <bensonforums at gmail.com> wrote:
> 
> Closing them does not affect the memory hoarding. If it did I would have
> solved the problem that way, but it just doesnt work, Ac2013 has memory
> management problems.
> 
> From my non-flammable Note 3,
> Bill Benson
> 
>> On Jan 23, 2017 8:07 PM, "Ryan Wehler" <wrwehler at gmail.com> wrote:
>> 
>> Yes many record sets are used in various ways. I always close and set them
>> to nothing as needed. I'll check out your code in the AM.
>> 
>> Sent from my iPad
>> 
>>> On Jan 23, 2017, at 6:30 PM, Bill Benson <bensonforums at gmail.com> wrote:
>>> 
>>> Are you building recordsets? I found a couple years ago I had to keep
>> track
>>> of memory as I was creating recordsets, looping through them, performing
>>> certain routines, because Ac2013 was not releasing memory. Big time
>> memory
>>> leaks.
>>> 
>>> I stole this code from somewhere to get how much memory was being used
>> and
>>> would test this midroutine, sending a msgbox to the user to quit the
>>> application if they exceeded 800MB.
>>> 
>>> 
>>> Option Compare Database
>>> Option Explicit
>>> 
>>> Type PROCESS_MEMORY_COUNTERS
>>>  cb                         As Long
>>>  PageFaultCount             As Long
>>>  PeakWorkingSetSize         As Long
>>>  WorkingSetSize             As Long
>>>  QuotaPeakPagedPoolUsage    As Long
>>>  QuotaPagedPoolUsage        As Long
>>>  QuotaPeakNonPagedPoolUsage As Long
>>>  QuotaNonPagedPoolUsage     As Long
>>>  PagefileUsage              As Long
>>>  PeakPagefileUsage          As Long
>>> End Type
>>> 
>>> Private Const PROCESS_QUERY_INFORMATION = 1024
>>> Private Const PROCESS_VM_READ = 16
>>> 
>>> Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
>>> Private Declare Function EnumProcessModules Lib "PSAPI.DLL" (ByVal
>> hProcess
>>> As Long, lphModule As Long, ByVal cb As Long, lpcbNeeded As Long) As Long
>>> Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal
>>> dwDesiredAccessas As Long, ByVal bInheritHandle As Long, ByVal dwProcId
>> As
>>> Long) As Long
>>> Private Declare Function GetProcessMemoryInfo Lib "PSAPI.DLL" (ByVal
>>> hProcess As Long, ppsmemCounters As PROCESS_MEMORY_COUNTERS, ByVal cb As
>>> Long) As Long
>>> Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal Handle As
>>> Long) As Long
>>> 
>>> 
>>> Public Function Mem() As Long
>>> 
>>> Dim lngCBSize2           As Long
>>> Dim lngModules(1 To 200) As Long
>>> Dim lngReturn            As Long
>>> Dim lngHwndProcess       As Long
>>> Dim pmc                  As PROCESS_MEMORY_COUNTERS
>>> Dim lRet                 As Long
>>> Dim MemDelta             As Long
>>> Static MemUsed           As Long
>>> 
>>> 
>>> 'Get a handle to the Process and Open
>>> lngHwndProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or
>>> PROCESS_VM_READ, 0, GetCurrentProcessId)
>>> 
>>> If lngHwndProcess <> 0 Then
>>> 
>>>     'Get an array of the module handles for the specified process
>>>     lngReturn = EnumProcessModules(lngHwndProcess, lngModules(1), 200,
>>> lngCBSize2)
>>> 
>>>     'If the Module Array is retrieved, Get the ModuleFileName
>>>       If lngReturn <> 0 Then
>>>           'Get the Site of the Memory Structure
>>>           pmc.cb = LenB(pmc)
>>>           lRet = GetProcessMemoryInfo(lngHwndProcess, pmc, pmc.cb)
>>> 
>>>           Mem = pmc.WorkingSetSize
>>>       End If
>>> 
>>> End If
>>> 
>>> 'Close the handle to this process
>>> lngReturn = CloseHandle(lngHwndProcess)
>>> 
>>> End Function
>>> --
>>> AccessD mailing list
>>> AccessD at databaseadvisors.com
>>> http://databaseadvisors.com/mailman/listinfo/accessd
>>> Website: http://www.databaseadvisors.com
>> 
>> --
>> AccessD mailing list
>> AccessD at databaseadvisors.com
>> http://databaseadvisors.com/mailman/listinfo/accessd
>> Website: http://www.databaseadvisors.com
>> 
> -- 
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com



More information about the AccessD mailing list