VB для MS Access не работает при использовании INNER JOIN - PullRequest
0 голосов
/ 31 января 2020

Код не работает должным образом, возникает ошибка синтаксиса в ошибке оператора INSERT INTO. Попытка вставить данные с внутренним объединением из формы MS Access, где пользователь вводит ответы и выбирает кнопку, чтобы добавить детали в новую таблицу. Основываясь на предоставленной информации, я хочу, чтобы она вставила данные в другую таблицу, к которой они присоединяются, чтобы получить фискальные данные.

    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)<>'');"

Может кто-нибудь сказать мне, где я ошибся, и исправить код, пожалуйста * * 1004

Ответы [ 2 ]

2 голосов
/ 31 января 2020

Вероятно, здесь запятая: "Fiscal_Calendar.FWeek, " & _

Не должно быть запятой перед оператором FROM. И убедитесь, что у вас есть только один оператор FROM:

 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)<>'');"
0 голосов
/ 01 февраля 2020

Если я создал запрос на добавление, вот код. Просто пытаюсь преобразовать это в мой SQL отчет, который я опубликовал ранее.

INSERT INTO PO_Information (Партнер, 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) ВЫБОР 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;

...