Hi guys:
Could someone please help modify the code below so that the INSERT INTO can be based on a dynamic table name. The beginning of the table name will always be tblSundatabase but the last three letters will be based on the field in the table of the records I am appending to this table. The field is tblTest.SUN_DB.
The code works well per the below though so just need this part added and I'm almost there.
Thanks very much for your help.
SW
Code:
Private Sub Command156_Click()
Dim strSql As String
strSql = "INSERT INTO tblSundatabaseABC " & vbCrLf & _
"SELECT SUN_DB AS SUN_DB, ACCNT_CODE AS ACCNT_CODE, NAMOUNT AS AMOUNT, DESCRIPTN AS DESCRIPTN, JRNAL_LINE AS JRNAL_LINE, JRNAL_NO AS JRNAL_NO, JRNAL_TYPE AS JRNAL_TYPE, ANAL_T3 AS ANAL_T3, ANAL_T8 AS ANAL_T8 " & vbCrLf & _
"FROM (SELECT SUN_DB, ACCNT_CODE, NAMOUNT, DESCRIPTN, 1 AS JRNAL_LINE, JRNAL_NO, JRNAL_TYPE, ANAL_T3, ANAL_T8 " & vbCrLf & _
"FROM tblTest " & vbCrLf & _
"WHERE [Ready] = True AND [ACCNT_CODE] IS NOT NULL AND NAMOUNT IS NOT NULL " & vbCrLf & _
"UNION ALL " & vbCrLf & _
"SELECT SUN_DB, SUPP_CODE, GAMOUNT, DESCRIPTN, 2 AS JRNAL_LINE, JRNAL_NO, JRNAL_TYPE, """" AS ANAL_T3, """" AS ANAL_T8 " & vbCrLf & _
"FROM tblTest " & vbCrLf & _
"WHERE [Ready] = True AND [SUPP_CODE] IS NOT NULL AND GAMOUNT IS NOT NULL " & vbCrLf & _
"UNION ALL " & vbCrLf & _
"SELECT SUN_DB, 271 AS ACCNT_CODE, VAT, DESCRIPTN, 3 AS JRNAL_LINE, JRNAL_NO, JRNAL_TYPE, ANAL_T3, ANAL_T8 " & vbCrLf & _
"FROM tblTest " & vbCrLf & _
"WHERE [Ready] = True AND VAT IS NOT NULL) AS [%$##@_Alias];"
Debug.Print strSql
DoCmd.SetWarnings False
DoCmd.RunSQL (strSql)
DoCmd.SetWarnings True
End Sub