B
backToASP via AccessMonster.com
I'm running a looping process that builds a table of data. The data must be
in a very specific order and I am building it that way - looping through and
running sql INSERT INTO statements in a certain order. I am getting all of
my data - all correct data in correct fields - but the rows are out of order
sometimes when it runs. I have run the same set of data mutliple times and
it was correct once, then broke in 2 diff places the next 2 times. I thought
INTSERT INTO always put the new record at the end of the table of data. Is
this correct?
Here is the code - as mentioned it works - just the resulting table has rows
out of order sometimes.
'loop through invoice headers
strSQLHeader = "SELECT [DOCNUM] FROM [_qryQBInvoiceHeaderData]"
Set rsHeader = New ADODB.Recordset
rsHeader.Open strSQLHeader, CurrentProject.Connection, adOpenStatic,
adLockOptimistic
If rsHeader.RecordCount > 0 Then 'records to export
'first delete previous records from table - leave first 3 lines for
definition
strDelRecords = "DELETE tblQuickBooksTransData.*, tblQuickBooksTransData.
TRNSORSPL FROM tblQuickBooksTransData " & _
"WHERE tblQuickBooksTransData.TRNSORSPL NOT IN ('!TRNS', '!SPL', '!
ENDTRNS')"
CurrentProject.Connection.Execute strDelRecords
rsHeader.MoveFirst
While Not rsHeader.EOF
curInv = rsHeader.Fields(0)
strHeaderInsert = "INSERT INTO tblQuickBooksTransData " & _
"( TRNSORSPL, TRNSTYPE, INVOICEDATE, ACCOUNT, CONAME, AMOUNT, DOCNUM,
DELID, CLEAR, TOPRINT, ADDR1, ADDR2, ADDR3, DUEDATE, TERMS, PAID, SHIPDATE,
INVTITLE ) " & _
"SELECT [_qryQBInvoiceHeaderData].TRANSLINE, [_qryQBInvoiceHeaderData]
.TRNSTYPE, [_qryQBInvoiceHeaderData].invoiceDATE, [_qryQBInvoiceHeaderData].
ACCNT, [_qryQBInvoiceHeaderData].coNAME, [_qryQBInvoiceHeaderData].AMOUNT, "
& _
"[_qryQBInvoiceHeaderData].DOCNUM, [_qryQBInvoiceHeaderData].
delIDMEMO, [_qryQBInvoiceHeaderData].CLEAR, [_qryQBInvoiceHeaderData].TOPRINT,
" & _
"[_qryQBInvoiceHeaderData].ADDR1, [_qryQBInvoiceHeaderData].ADDR2,
[_qryQBInvoiceHeaderData].ADDR3, [_qryQBInvoiceHeaderData].DUEDATE, " & _
"[_qryQBInvoiceHeaderData].TERMS, [_qryQBInvoiceHeaderData].PAID,
[_qryQBInvoiceHeaderData].SHIPDATE, [_qryQBInvoiceHeaderData].INVTITLE " & _
"FROM _qryQBInvoiceHeaderData " & _
"WHERE [_qryQBInvoiceHeaderData].DOCNUM=" & curInv & ";"
'insert the invoice header TRNS line
CurrentProject.Connection.Execute strHeaderInsert
strDetailsInsert = "INSERT INTO tblQuickBooksTransData " & _
"( TRNSORSPL, TRNSTYPE, INVOICEDATE, ACCOUNT, CONAME, AMOUNT, DOCNUM,
DELID, CLEAR ) " & _
"SELECT [_qryQBInvoiceDetails].TRANSLINE, [_qryQBInvoiceDetails].
TRNSTYPE, " & _
"[_qryQBInvoiceDetails].invoiceDATE, [_qryQBInvoiceDetails].ACCNT, "
& _
"[_qryQBInvoiceDetails].coNAME , [_qryQBInvoiceDetails].AMOUNT, " & _
"[_qryQBInvoiceDetails].DOCNUM, [_qryQBInvoiceDetails].delIDMEMO, " &
_
"[_qryQBInvoiceDetails].Clear FROM _qryQBInvoiceDetails " & _
"WHERE [_qryQBInvoiceDetails].DOCNUM=" & curInv & ";"
'insert detail SPL lines
CurrentProject.Connection.Execute strDetailsInsert
strEndTrans = "INSERT INTO tblQuickBooksTransData (TRNSORSPL) " & _
"VALUES ('ENDTRNS');"
'add ONE line to end the trans
CurrentProject.Connection.Execute strEndTrans
'now move to next invoice
rsHeader.MoveNext
Wend
'**** END LOOPING ****
Any suggestions greatly appreciated.
in a very specific order and I am building it that way - looping through and
running sql INSERT INTO statements in a certain order. I am getting all of
my data - all correct data in correct fields - but the rows are out of order
sometimes when it runs. I have run the same set of data mutliple times and
it was correct once, then broke in 2 diff places the next 2 times. I thought
INTSERT INTO always put the new record at the end of the table of data. Is
this correct?
Here is the code - as mentioned it works - just the resulting table has rows
out of order sometimes.
'loop through invoice headers
strSQLHeader = "SELECT [DOCNUM] FROM [_qryQBInvoiceHeaderData]"
Set rsHeader = New ADODB.Recordset
rsHeader.Open strSQLHeader, CurrentProject.Connection, adOpenStatic,
adLockOptimistic
If rsHeader.RecordCount > 0 Then 'records to export
'first delete previous records from table - leave first 3 lines for
definition
strDelRecords = "DELETE tblQuickBooksTransData.*, tblQuickBooksTransData.
TRNSORSPL FROM tblQuickBooksTransData " & _
"WHERE tblQuickBooksTransData.TRNSORSPL NOT IN ('!TRNS', '!SPL', '!
ENDTRNS')"
CurrentProject.Connection.Execute strDelRecords
rsHeader.MoveFirst
While Not rsHeader.EOF
curInv = rsHeader.Fields(0)
strHeaderInsert = "INSERT INTO tblQuickBooksTransData " & _
"( TRNSORSPL, TRNSTYPE, INVOICEDATE, ACCOUNT, CONAME, AMOUNT, DOCNUM,
DELID, CLEAR, TOPRINT, ADDR1, ADDR2, ADDR3, DUEDATE, TERMS, PAID, SHIPDATE,
INVTITLE ) " & _
"SELECT [_qryQBInvoiceHeaderData].TRANSLINE, [_qryQBInvoiceHeaderData]
.TRNSTYPE, [_qryQBInvoiceHeaderData].invoiceDATE, [_qryQBInvoiceHeaderData].
ACCNT, [_qryQBInvoiceHeaderData].coNAME, [_qryQBInvoiceHeaderData].AMOUNT, "
& _
"[_qryQBInvoiceHeaderData].DOCNUM, [_qryQBInvoiceHeaderData].
delIDMEMO, [_qryQBInvoiceHeaderData].CLEAR, [_qryQBInvoiceHeaderData].TOPRINT,
" & _
"[_qryQBInvoiceHeaderData].ADDR1, [_qryQBInvoiceHeaderData].ADDR2,
[_qryQBInvoiceHeaderData].ADDR3, [_qryQBInvoiceHeaderData].DUEDATE, " & _
"[_qryQBInvoiceHeaderData].TERMS, [_qryQBInvoiceHeaderData].PAID,
[_qryQBInvoiceHeaderData].SHIPDATE, [_qryQBInvoiceHeaderData].INVTITLE " & _
"FROM _qryQBInvoiceHeaderData " & _
"WHERE [_qryQBInvoiceHeaderData].DOCNUM=" & curInv & ";"
'insert the invoice header TRNS line
CurrentProject.Connection.Execute strHeaderInsert
strDetailsInsert = "INSERT INTO tblQuickBooksTransData " & _
"( TRNSORSPL, TRNSTYPE, INVOICEDATE, ACCOUNT, CONAME, AMOUNT, DOCNUM,
DELID, CLEAR ) " & _
"SELECT [_qryQBInvoiceDetails].TRANSLINE, [_qryQBInvoiceDetails].
TRNSTYPE, " & _
"[_qryQBInvoiceDetails].invoiceDATE, [_qryQBInvoiceDetails].ACCNT, "
& _
"[_qryQBInvoiceDetails].coNAME , [_qryQBInvoiceDetails].AMOUNT, " & _
"[_qryQBInvoiceDetails].DOCNUM, [_qryQBInvoiceDetails].delIDMEMO, " &
_
"[_qryQBInvoiceDetails].Clear FROM _qryQBInvoiceDetails " & _
"WHERE [_qryQBInvoiceDetails].DOCNUM=" & curInv & ";"
'insert detail SPL lines
CurrentProject.Connection.Execute strDetailsInsert
strEndTrans = "INSERT INTO tblQuickBooksTransData (TRNSORSPL) " & _
"VALUES ('ENDTRNS');"
'add ONE line to end the trans
CurrentProject.Connection.Execute strEndTrans
'now move to next invoice
rsHeader.MoveNext
Wend
'**** END LOOPING ****
Any suggestions greatly appreciated.