Access 2010 VBA Lost Memory -


i trying track down may throwing pointer (lost/misdirected) while trying concatenate several different tables. keep in mind section of code below small part of 16,000 lines of code stands alone.

two sections of code below.

how code should work:

basically code should follows... when press button (first section of code), several table names passed sub 1 @ time (second section of code).

more clearly, table name passed (first section), sub runs table name (second section) , places in table called "cymeimporttable", table 2 passed (first section) sub runs again (second section) , appends table 2 in "cymeimporttable". know can put these array maybe later on. i'm trying work first optimize. okay above works fine... sometimes.

the results:

the code runs , places each table record 1 memo style cell. below code , table sizes, have 4000 records several fields in tables placed cymeimportfile table of 4000 records of 1 field. works great , seemed work @ beginning time, maybe before tables began larger??

issue:

the issue this... cymeimportfile table populated other times populated seems nothing. same number of records appear in both instances has text (what want), , other times not have (not want). blank records blank field.

what know:

  1. i know memo not recommended, may issue, have largely modify code avoid memo format , suits needs memo.
  2. my tables of contents in them , issue not result of program pulling in nothing.
  3. this issue occurs several other sections of code (not shown) simplest/shortest portion. cant post other sections because in 16,000 lines of code.
  4. i know may not able locate error code provided see guys think see if there obvious don't know about. have been programming vba month.

first section of code below: not believe issue lies here wanted give information possible. section below passes table name sub called "concatenate" when button pressed. keep in mind, code not optimized.

private sub buttonconcatenate_click() docmd.setwarnings false docmd.copyobject , "cymeimportfile", actable, "template_cymeimportfile" 'docmd.runsql "delete * cymeimportfile" docmd.setwarnings true  dim table string '[general] table = "general" concatenate.concatenate table form_cyme_model_update.checkgeneral.value = 0 '[imperial] table = "imperial" concatenate.concatenate table ' [headnodes] table = "headnodes" concatenate.concatenate table form_cyme_model_update.checkheadnodes.value = 0 ' [source] table = "source" concatenate.concatenate table form_cyme_model_update.checksource.value = 0 ' [node] table = "node" concatenate.concatenate table form_cyme_model_update.checknode.value = 0 ' [line_configuration] table = "line_configuration" concatenate.concatenate table form_cyme_model_update.checkline_configuration.value = 0 ' [section] table = "section" concatenate.concatenate table form_cyme_model_update.checksection.value = 0 ' [switch setting] table = "switch_setting" concatenate.concatenate table form_cyme_model_update.checkswitchsetting.value = 0 ' [fuse setting] table = "fuse_setting" concatenate.concatenate table form_cyme_model_update.checkfusesetting.value = 0 ' [recloser setting] table = "recloser_setting" concatenate.concatenate table form_cyme_model_update.checkreclosersetting.value = 0 ' [transformer setting] table = "transformer_setting" 'concatenate.concatenate table form_cyme_model_update.checktransformersetting.value = 0 ' [sectionalizer setting] table = "sectionalizer_setting" concatenate.concatenate table form_cyme_model_update.checksectionalizersetting.value = 0 ' [regulator setting] table = "regulator_byphase_setting" concatenate.concatenate table form_cyme_model_update.checkregulatorsetting.value = 0 ' [shunt capacitor setting] table = "shunt_capacitor_setting" concatenate.concatenate table form_cyme_model_update.checkshuntcapacitorsetting.value = 0 ' [intermediate nodes] table = "intermediate_nodes" concatenate.concatenate table form_cyme_model_update.checkintermediatenodes.value = 0 ' [relay setting] 'table = "relay_setting" 'concatenate.concatenate table 'form_cyme_model_update.checkrelaysetting.value = 0 form_cyme_model_update.checkconcatenate.value = -1 ''message box     msgbox "cyme imput has been concatenated cymeimportfile"  end sub 

this next section variable (table name) passed , used place passed table name's contents table "cymeinputfile".

option compare database  sub concatenate(table string)   ' set database     set dbscyme_model_update = currentdb     dim field string  'count records , fields     recordcount = currentdb.tabledefs(table).recordcount     fieldcount = currentdb.tabledefs(table).fields.count     recordcounter = 0     redim fieldarray(0) string     redim recordarray(0) string     redim fieldarray(fieldcount - 1) string     redim recordarray(recordcount - 1) string     set rst = dbscyme_model_update.openrecordset(table)     rst.movefirst     until rst.eof       'field data         fieldcounter = 0         while fieldcounter < fieldcount - 1         'set recordset             fieldcounter = fieldcounter + 1             field = "field" & fieldcounter         'rstgeneral             fieldstring = rst.fields(field)             fieldarray(fieldcounter - 1) = fieldstring         wend         printcounter = 0         each element in fieldarray             if not fieldarray(printcounter) = "n/a"                holder = recordarray(recordcounter)                 if fieldarray(printcounter + 1) = "n/a"                     recordarray(recordcounter) = holder +         fieldarray(printcounter)                 else                 recordarray(recordcounter) = holder + fieldarray(printcounter) + ","             end if                 printcounter = printcounter + 1             end if         next element         recordcounter = recordcounter + 1         rst.movenext     loop     rst.close     set rst = nothing     dim temp string  'print cymeimportfile     set rst = dbscyme_model_update.openrecordset("cymeimportfile")     'rst.movefirst     recordcounter = 0         if rst.bof             rst.addnew             rst.update             rst.moveprevious         else             rst.movelast             rst.movenext             rst.addnew             rst.update             rst.moveprevious         end if      each element in recordarray         rst.edit         temp = recordarray(recordcounter)         rst!field1 = temp         rst.update         rst.movenext         if rst.eof             rst.addnew             rst.update             rst.moveprevious         end if         recordcounter = recordcounter + 1     next element rst.close set rst = nothing   end sub 

i figured out. differant adds , updates confused everything. simplified down this... not quite martin parkin saying comment lead me play around printing process in section , other sections creating tables.

new code...

'print cymeimportfile dim bob string bob = 0 set rst = dbscyme_model_update.openrecordset("cymeimportfile") recordcounter = 0     rst.movelast     rst.addnew each element in recordarray      'rst.edit      rst.addnew     temp = recordarray(recordcounter)     rst!field1 = temp     rst.update     recordcounter = recordcounter + 1 next element  rst.close  set rst = nothing  redim fieldarray(0) string  redim  recordarray(0) string   debug.print table end sub 

Comments

Popular posts from this blog

android - Pass an Serializable object in AIDL -

How to provide Authorization & Authentication using Asp.net, C#? -

How to use Authorization & Authentication in Asp.net, C#? -