B
bradjensmith
I'm a novice and I'm probably missing something obvious, but I have a
module that I cannot add any more variables or paste into etc. It
errors with an Out of Memory error (although I've got a gig of ram on
my laptop). Could it be that I didn't close an object correctly or I'm
doing something else wrong?
Any help would be greatly appreciated. Basically the module reads in
data from a query and outputs to two text files and a table within the
access database. Here's the module as it is now (forgive the crudeness
due to inexperience).
Function export_JOB_future()
'Dim db As Database
Dim EFF_DT As String
Dim ACTIONDT As String
Dim JOBENTRYDT As String
Dim DEPTENTRYDT As String
Dim GRADEENTRYDT As String
Dim STEPENTRYDT As String
Dim UNIONCD As String
Dim USCAN As String
'================================================================================================
'SET DATABASE AND RECORDSETS
'================================================================================================
Set db = CurrentDb 'set the database to the current database
JOB_tbl = "SELECT C.EMPLID,
C.COMPANY,IIf(C.COMPANY='097','CAN',IIf(C.COMPANY='008','CAN','USA'))
AS US_CAN_IND, " + _
"GBL_XREF.D_GBL_EMPLID AS CANEMPLID,
IIf([US_CAN_IND]='CAN',[D_GBL_EMPLID],C.EMPLID) AS ALTEMPLID, JOB.*,
JOB.EFFDT " + _
"FROM (JOB AS C LEFT JOIN GBL_XREF ON C.EMPLID = GBL_XREF.EMPLID) INNER
JOIN JOB ON C.EMPLID = JOB.EMPLID " + _
"WHERE (((C.EFFDT)=(SELECT MAX(Y.EFFDT) FROM JOB Y WHERE Y.EMPLID =
C.EMPLID AND Y.EMPL_STATUS IN ('A','L','P') " + _
"AND Y.EFFDT <= NOW())) AND ((C.EFFSEQ)=(SELECT MAX(Z.EFFSEQ) FROM JOB
Z WHERE Z.EMPLID = C.EMPLID AND " + _
"Z.EMPL_STATUS IN ('A','L','P') AND Z.EMPL_RCD = C.EMPL_RCD AND
Z.EFFDT = C.EFFDT AND Z.EFFDT <= NOW())) " + _
"AND ((JOB.EFFDT)= #6/5/2006#)); "
Set in_recs = db.OpenRecordset(JOB_tbl)
Set out_recs = db.TableDefs("DATASRCE_ID FUTURE TEMP
TABLE").OpenRecordset()
in_recs.MoveFirst
'================================================================================================
'OUTPUT TO TEXT FILE
'================================================================================================
Close #1 ' Close file.
'create a text file
'Open "H:\Docs\MPHRO\duke\siebel.txt" For Output As #1 Len = 400
Open "C:\docs\US LOAD\CNVR_JOBfuture.txt" For Output As #1 Len = 1500
Do While Not in_recs.EOF
If IsNull(in_recs.Fields("JOB.EFFDT").Value) Then
EFF_DT = "01Jan1900"
Else
EFF_DT = Format(CDate(in_recs.Fields("JOB.EFFDT").Value),
"ddmmmyyyy")
End If
If IsNull(in_recs.Fields("ACTION_DT").Value) Then
ACTIONDT = ""
Else
ACTIONDT = Format(CDate(in_recs.Fields("ACTION_DT").Value),
"ddmmmyyyy")
End If
If IsNull(in_recs.Fields("JOB_ENTRY_DT").Value) Then
JOBENTRYDT = ""
Else
JOBENTRYDT =
Format(CDate(in_recs.Fields("JOB_ENTRY_DT").Value), "ddmmmyyyy")
End If
If IsNull(in_recs.Fields("DEPT_ENTRY_DT").Value) Then
DEPTENTRYDT = ""
Else
DEPTENTRYDT =
Format(CDate(in_recs.Fields("DEPT_ENTRY_DT").Value), "ddmmmyyyy")
End If
If IsNull(in_recs.Fields("GRADE_ENTRY_DT").Value) Then
GRADEENTRYDT = ""
Else
GRADEENTRYDT =
Format(CDate(in_recs.Fields("GRADE_ENTRY_DT").Value), "ddmmmyyyy")
End If
If IsNull(in_recs.Fields("STEP_ENTRY_DT").Value) Then
STEPENTRYDT = ""
Else
STEPENTRYDT =
Format(CDate(in_recs.Fields("STEP_ENTRY_DT").Value), "ddmmmyyyy")
End If
If IsNull(in_recs.Fields("UNION_CD").Value) Then
UNIONCD = "N"
Else
UNIONCD = "Y"
End If
Print #1, Tab(1); _
in_recs.Fields("JOB.EMPLID").Value & "|" &
in_recs.Fields("EMPL_RCD").Value & "|" & EFF_DT & "|" &
in_recs.Fields("EFFSEQ").Value & "|" & "HRMS01" & "|" &
in_recs.Fields("EMPL_STATUS").Value & "|" &
in_recs.Fields("ACTION").Value & "|" & ACTIONDT & "|" &
in_recs.Fields("ACTION_REASON").Value & "|" & _
in_recs.Fields("JOB.COMPANY").Value & "|" &
in_recs.Fields("PAYGROUP").Value & "|" &
in_recs.Fields("ACCT_CD").Value & "|" &
in_recs.Fields("FLSA_STATUS").Value & "|" &
in_recs.Fields("FULL_PART_TIME").Value & "|" &
in_recs.Fields("REG_TEMP").Value & "|" &
in_recs.Fields("STD_HOURS").Value & "|" & _
in_recs.Fields("JOBCODE").Value & "|" & JOBENTRYDT & "|" &
in_recs.Fields("SAL_ADMIN_PLAN").Value & "|" &
in_recs.Fields("GRADE").Value & "|" & GRADEENTRYDT & "|" &
in_recs.Fields("STEP").Value & "|" & STEPENTRYDT & "|" &
in_recs.Fields("TAX_LOCATION_CD").Value & "|" &
in_recs.Fields("COMPRATE").Value & "|" & _
in_recs.Fields("COMP_FREQUENCY").Value & "|" &
in_recs.Fields("CHANGE_PCT").Value & "|" &
in_recs.Fields("CHANGE_AMT").Value & "|" &
in_recs.Fields("DEPTID").Value & "|" & DEPTENTRYDT & "|" & UNIONCD &
"|" & in_recs.Fields("UNION_CD").Value & "|" &
in_recs.Fields("LOCATION").Value & "|" & in_recs.Fields("SHIFT").Value
& "|" & _
in_recs.Fields("EMPL_TYPE").Value & "|" &
in_recs.Fields("OFFICER_CD").Value & "|" &
in_recs.Fields("CURRENCY_CD").Value & "|" & " " & "|" & " " & "|" & " "
& "|" & " " & "|" & _
in_recs.Fields("HOURLY_RT").Value & "|" &
in_recs.Fields("MONTHLY_RT").Value & "|" &
in_recs.Fields("ANNUAL_RT").Value & "|" &
in_recs.Fields("GL_PAY_TYPE").Value & "|" &
in_recs.Fields("BEN_STATUS").Value & "|" &
in_recs.Fields("EMPL_CLASS").Value & "|" & _
Format(Date, "ddmmmyyyy") & "|INITLOAD|" & _
Format(Date, "ddmmmyyyy") & "|INITLOAD";
in_recs.MoveNext
Loop
Close #1 ' Close file.
'================================================================================================
'OUTPUT TO TEXT FILE
'================================================================================================
Close #1 ' Close file.
in_recs.MoveFirst
'Reset DataSrce Temp Table
DoCmd.SetWarnings False
DoCmd.OpenQuery "RESET FUTURE TEMP", acViewNormal, acEdit
'create a text file
Open "C:\docs\US LOAD\CNVR_PERS_TRNSLTNfuture.txt" For Output As #1 Len
= 1500
Do While Not in_recs.EOF
If in_recs.Fields("US_CAN_IND") = "USA" Then
USCAN = "HRMS01"
Else
USCAN = "HRMS02"
End If
Print #1, Tab(1); _
USCAN & "|" & _
in_recs.Fields("C.EMPLID").Value & "|" & _
in_recs.Fields("ALTEMPLID").Value & "|" & _
in_recs.Fields("C.EMPLID").Value & "|" & _
Format(Date, "ddmmmyyyy") & "|INITLOAD|" & _
Format(Date, "ddmmmyyyy") & "|INITLOAD";
With out_recs
.AddNew
!EMPLID = in_recs.Fields("C.EMPLID").Value
!US_CAN_IND = in_recs.Fields("US_CAN_IND").Value
!USCAN = USCAN
!COMPANY = in_recs.Fields("C.COMPANY").Value
.Update
On Error Resume Next
End With
in_recs.MoveNext
Loop
Close #1 ' Close
End Function
module that I cannot add any more variables or paste into etc. It
errors with an Out of Memory error (although I've got a gig of ram on
my laptop). Could it be that I didn't close an object correctly or I'm
doing something else wrong?
Any help would be greatly appreciated. Basically the module reads in
data from a query and outputs to two text files and a table within the
access database. Here's the module as it is now (forgive the crudeness
due to inexperience).
Function export_JOB_future()
'Dim db As Database
Dim EFF_DT As String
Dim ACTIONDT As String
Dim JOBENTRYDT As String
Dim DEPTENTRYDT As String
Dim GRADEENTRYDT As String
Dim STEPENTRYDT As String
Dim UNIONCD As String
Dim USCAN As String
'================================================================================================
'SET DATABASE AND RECORDSETS
'================================================================================================
Set db = CurrentDb 'set the database to the current database
JOB_tbl = "SELECT C.EMPLID,
C.COMPANY,IIf(C.COMPANY='097','CAN',IIf(C.COMPANY='008','CAN','USA'))
AS US_CAN_IND, " + _
"GBL_XREF.D_GBL_EMPLID AS CANEMPLID,
IIf([US_CAN_IND]='CAN',[D_GBL_EMPLID],C.EMPLID) AS ALTEMPLID, JOB.*,
JOB.EFFDT " + _
"FROM (JOB AS C LEFT JOIN GBL_XREF ON C.EMPLID = GBL_XREF.EMPLID) INNER
JOIN JOB ON C.EMPLID = JOB.EMPLID " + _
"WHERE (((C.EFFDT)=(SELECT MAX(Y.EFFDT) FROM JOB Y WHERE Y.EMPLID =
C.EMPLID AND Y.EMPL_STATUS IN ('A','L','P') " + _
"AND Y.EFFDT <= NOW())) AND ((C.EFFSEQ)=(SELECT MAX(Z.EFFSEQ) FROM JOB
Z WHERE Z.EMPLID = C.EMPLID AND " + _
"Z.EMPL_STATUS IN ('A','L','P') AND Z.EMPL_RCD = C.EMPL_RCD AND
Z.EFFDT = C.EFFDT AND Z.EFFDT <= NOW())) " + _
"AND ((JOB.EFFDT)= #6/5/2006#)); "
Set in_recs = db.OpenRecordset(JOB_tbl)
Set out_recs = db.TableDefs("DATASRCE_ID FUTURE TEMP
TABLE").OpenRecordset()
in_recs.MoveFirst
'================================================================================================
'OUTPUT TO TEXT FILE
'================================================================================================
Close #1 ' Close file.
'create a text file
'Open "H:\Docs\MPHRO\duke\siebel.txt" For Output As #1 Len = 400
Open "C:\docs\US LOAD\CNVR_JOBfuture.txt" For Output As #1 Len = 1500
Do While Not in_recs.EOF
If IsNull(in_recs.Fields("JOB.EFFDT").Value) Then
EFF_DT = "01Jan1900"
Else
EFF_DT = Format(CDate(in_recs.Fields("JOB.EFFDT").Value),
"ddmmmyyyy")
End If
If IsNull(in_recs.Fields("ACTION_DT").Value) Then
ACTIONDT = ""
Else
ACTIONDT = Format(CDate(in_recs.Fields("ACTION_DT").Value),
"ddmmmyyyy")
End If
If IsNull(in_recs.Fields("JOB_ENTRY_DT").Value) Then
JOBENTRYDT = ""
Else
JOBENTRYDT =
Format(CDate(in_recs.Fields("JOB_ENTRY_DT").Value), "ddmmmyyyy")
End If
If IsNull(in_recs.Fields("DEPT_ENTRY_DT").Value) Then
DEPTENTRYDT = ""
Else
DEPTENTRYDT =
Format(CDate(in_recs.Fields("DEPT_ENTRY_DT").Value), "ddmmmyyyy")
End If
If IsNull(in_recs.Fields("GRADE_ENTRY_DT").Value) Then
GRADEENTRYDT = ""
Else
GRADEENTRYDT =
Format(CDate(in_recs.Fields("GRADE_ENTRY_DT").Value), "ddmmmyyyy")
End If
If IsNull(in_recs.Fields("STEP_ENTRY_DT").Value) Then
STEPENTRYDT = ""
Else
STEPENTRYDT =
Format(CDate(in_recs.Fields("STEP_ENTRY_DT").Value), "ddmmmyyyy")
End If
If IsNull(in_recs.Fields("UNION_CD").Value) Then
UNIONCD = "N"
Else
UNIONCD = "Y"
End If
Print #1, Tab(1); _
in_recs.Fields("JOB.EMPLID").Value & "|" &
in_recs.Fields("EMPL_RCD").Value & "|" & EFF_DT & "|" &
in_recs.Fields("EFFSEQ").Value & "|" & "HRMS01" & "|" &
in_recs.Fields("EMPL_STATUS").Value & "|" &
in_recs.Fields("ACTION").Value & "|" & ACTIONDT & "|" &
in_recs.Fields("ACTION_REASON").Value & "|" & _
in_recs.Fields("JOB.COMPANY").Value & "|" &
in_recs.Fields("PAYGROUP").Value & "|" &
in_recs.Fields("ACCT_CD").Value & "|" &
in_recs.Fields("FLSA_STATUS").Value & "|" &
in_recs.Fields("FULL_PART_TIME").Value & "|" &
in_recs.Fields("REG_TEMP").Value & "|" &
in_recs.Fields("STD_HOURS").Value & "|" & _
in_recs.Fields("JOBCODE").Value & "|" & JOBENTRYDT & "|" &
in_recs.Fields("SAL_ADMIN_PLAN").Value & "|" &
in_recs.Fields("GRADE").Value & "|" & GRADEENTRYDT & "|" &
in_recs.Fields("STEP").Value & "|" & STEPENTRYDT & "|" &
in_recs.Fields("TAX_LOCATION_CD").Value & "|" &
in_recs.Fields("COMPRATE").Value & "|" & _
in_recs.Fields("COMP_FREQUENCY").Value & "|" &
in_recs.Fields("CHANGE_PCT").Value & "|" &
in_recs.Fields("CHANGE_AMT").Value & "|" &
in_recs.Fields("DEPTID").Value & "|" & DEPTENTRYDT & "|" & UNIONCD &
"|" & in_recs.Fields("UNION_CD").Value & "|" &
in_recs.Fields("LOCATION").Value & "|" & in_recs.Fields("SHIFT").Value
& "|" & _
in_recs.Fields("EMPL_TYPE").Value & "|" &
in_recs.Fields("OFFICER_CD").Value & "|" &
in_recs.Fields("CURRENCY_CD").Value & "|" & " " & "|" & " " & "|" & " "
& "|" & " " & "|" & _
in_recs.Fields("HOURLY_RT").Value & "|" &
in_recs.Fields("MONTHLY_RT").Value & "|" &
in_recs.Fields("ANNUAL_RT").Value & "|" &
in_recs.Fields("GL_PAY_TYPE").Value & "|" &
in_recs.Fields("BEN_STATUS").Value & "|" &
in_recs.Fields("EMPL_CLASS").Value & "|" & _
Format(Date, "ddmmmyyyy") & "|INITLOAD|" & _
Format(Date, "ddmmmyyyy") & "|INITLOAD";
in_recs.MoveNext
Loop
Close #1 ' Close file.
'================================================================================================
'OUTPUT TO TEXT FILE
'================================================================================================
Close #1 ' Close file.
in_recs.MoveFirst
'Reset DataSrce Temp Table
DoCmd.SetWarnings False
DoCmd.OpenQuery "RESET FUTURE TEMP", acViewNormal, acEdit
'create a text file
Open "C:\docs\US LOAD\CNVR_PERS_TRNSLTNfuture.txt" For Output As #1 Len
= 1500
Do While Not in_recs.EOF
If in_recs.Fields("US_CAN_IND") = "USA" Then
USCAN = "HRMS01"
Else
USCAN = "HRMS02"
End If
Print #1, Tab(1); _
USCAN & "|" & _
in_recs.Fields("C.EMPLID").Value & "|" & _
in_recs.Fields("ALTEMPLID").Value & "|" & _
in_recs.Fields("C.EMPLID").Value & "|" & _
Format(Date, "ddmmmyyyy") & "|INITLOAD|" & _
Format(Date, "ddmmmyyyy") & "|INITLOAD";
With out_recs
.AddNew
!EMPLID = in_recs.Fields("C.EMPLID").Value
!US_CAN_IND = in_recs.Fields("US_CAN_IND").Value
!USCAN = USCAN
!COMPANY = in_recs.Fields("C.COMPANY").Value
.Update
On Error Resume Next
End With
in_recs.MoveNext
Loop
Close #1 ' Close
End Function