简体   繁体   中英

VB for MS Access not working when using INNER JOIN

The code isn't working properly, getting a Syntax error in INSERT INTO statement error. Trying to insert data with an inner join from an MS Access form where the user types in responses and selects a button to add the detail to a new table. Based on the information provided I want it to insert the data into another table where it is joined by a table to get the fiscal data.

    stSQL = "INSERT INTO PO_Information " & _
        "(Partner, PO_Number, PO_Title, Cost_Center, Description, Line_1_Amt, Line_2_Amt, Date_Added, Month_Added, Year_Added, FY, Qtr, FY_Qtr, FW, FWeek)" & _
        "Select New_PO_Information.Partner, " & _
        "New_PO_Information.PO_Number, " & _
        "New_PO_Information.PO_Title, " & _
        "New_PO_Information.Cost_Center, " & _
        "New_PO_Information.Description, " & _
        "New_PO_Information.Line_1_Amt, " & _
        "New_PO_Information.Line_2_Amt, " & _
        "New_PO_Information.Date_Added, " & _
        "New_PO_Information.Month_Added, " & _
        "New_PO_Information.Year_Added, " & _
        "Fiscal_Calendar.FY, " & _
        "Fiscal_Calendar.Qtr, " & _
        "Fiscal_Calendar.FY_Qtr, " & _
        "Fiscal_Calendar.FW, " & _
        "Fiscal_Calendar.FWeek, " & _
        "From New_PO_Information INNER JOIN Fiscal_Calendar " & _
        "ON New_PO_Information.Date_Added = Fiscal_Calendar.Calendar"


    stSQL = stSQL & _
        "From New_PO_Information " & _
        "Where ((New_PO_Information.Partner)<>'') " & _
        "AND ((New_PO_Information.PO_Number)<>'') " & _
        "AND ((New_PO_Information.PO_Title)<>'') " & _
        "AND ((New_PO_Information.Cost_Center)<>'') " & _
        "AND ((New_PO_Information.Description)<>'');"

Can someone tell me where I went wrong and correct the code, please?

It's probably this comma here: "Fiscal_Calendar.FWeek, " & _

There shouldn't be a comma before the FROM statement. And make sure you only have one FROM statement:

 stSQL = "INSERT INTO PO_Information " & _
    "(Partner, PO_Number, PO_Title, Cost_Center, Description, Line_1_Amt, Line_2_Amt, Date_Added, Month_Added, Year_Added, FY, Qtr, FY_Qtr, FW, FWeek)" & _
    "Select New_PO_Information.Partner, " & _
    "New_PO_Information.PO_Number, " & _
    "New_PO_Information.PO_Title, " & _
    "New_PO_Information.Cost_Center, " & _
    "New_PO_Information.Description, " & _
    "New_PO_Information.Line_1_Amt, " & _
    "New_PO_Information.Line_2_Amt, " & _
    "New_PO_Information.Date_Added, " & _
    "New_PO_Information.Month_Added, " & _
    "New_PO_Information.Year_Added, " & _
    "Fiscal_Calendar.FY, " & _
    "Fiscal_Calendar.Qtr, " & _
    "Fiscal_Calendar.FY_Qtr, " & _
    "Fiscal_Calendar.FW, " & _
    "Fiscal_Calendar.FWeek " & _
    "FROM New_PO_Information INNER JOIN Fiscal_Calendar " & _
    "ON New_PO_Information.Date_Added = Fiscal_Calendar.Calendar"


stSQL = stSQL & _
    " Where ((New_PO_Information.Partner)<>'') " & _
    "AND ((New_PO_Information.PO_Number)<>'') " & _
    "AND ((New_PO_Information.PO_Title)<>'') " & _
    "AND ((New_PO_Information.Cost_Center)<>'') " & _
    "AND ((New_PO_Information.Description)<>'');"

If I created an append query, here is the code. Just trying to convert this into my SQL statement that I posted earlier.

INSERT INTO PO_Information ( Partner, PO_Number, PO_TItle, Cost_Center, Description, Line_1_Amt, Line_2_Amt, Date_Added, Month_Added, Year_Added, FY, Qtr, FY_Qtr, FW, FWeek ) SELECT New_PO_Information.Partner, New_PO_Information.PO_Number, New_PO_Information.PO_TItle, New_PO_Information.Cost_Center, New_PO_Information.Description, New_PO_Information.Line_1_Amt, New_PO_Information.Line_2_Amt, New_PO_Information.Date_Added, New_PO_Information.Month_Added, New_PO_Information.Year_Added, Fiscal_Calendar.FY, Fiscal_Calendar.Qtr, Fiscal_Calendar.FY_Qtr, Fiscal_Calendar.FW, Fiscal_Calendar.FWeek FROM New_PO_Information INNER JOIN Fiscal_Calendar ON New_PO_Information.Date_Added = Fiscal_Calendar.Calendar;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM