INSERT INTO SELECT SQL(访问、VBA)的问题

Problem with INSERT INTO SELECT SQL (Access, VBA)

提问人:Automie Is Here 提问时间:5/8/2023 最后编辑:braXAutomie Is Here 更新时间:5/8/2023 访问量:54

问:

“查询值和目标字段的数量不相同”在我的命令上:

INSERT INTO TransactionHistory (
    [TransactionNumber]
    ,[UniqueID]
    ,[Replica_UniqueID]
    ,[FullName]
    ,[BusName]
    ,[PlateNumber]
    ,[Location]
    ,[Destination]
    ,[Price]
    ,[TimeOut]
    ,[DateOut]
    ,[DateTimeOfTransaction]
    ,[TypeOfTransaction]
    )
VALUES (
    " & TransactionNum & "
    ,(
        SELECT UniqueID
            ,Replica_UniqueID
            ,FullName
            ,BusName
            ,PlateNumber
            ,Location
            ,Destination
            ,Paid
            ,TimeOfDeparture
            ,DateOfDeparture
        FROM BusPassengers
        WHERE BusName = '" & BusName & "'
        )
    ,'" & DateTimeToday & "'
    ,'" & TransactionType & "'
    ) ""

TransactionNum 是 Integer,而 DateTimeToday 是 Date,TransactionType 是字符串

谢谢!

我试图从另一个表复制一个表,并生成一个交易编号,该交易编号将入并复制到另一个表上。

SQL VBA MS-Access MS 访问-2010

评论

1赞 Doug Coats 5/8/2023
你不能用你的子查询来做到这一点。
0赞 Automie Is Here 5/8/2023
哦,我明白。你有什么建议吗?感谢您的帮助。:)

答:

1赞 tinazmu 5/8/2023 #1

您可以将它们构建到 SELECT 中:

"INSERT INTO TransactionHistory (
    [TransactionNumber]
    ,[UniqueID]
    ,[Replica_UniqueID]
    ,[FullName]
    ,[BusName]
    ,[PlateNumber]
    ,[Location]
    ,[Destination]
    ,[Price]
    ,[TimeOut]
    ,[DateOut]
    ,[DateTimeOfTransaction]
    ,[TypeOfTransaction]
    )
SELECT "
& TransactionNum  & 
", UniqueID
, Replica_UniqueID
, FullName
, BusName
, PlateNumber
, Location
, Destination
, Paid
, TimeOfDeparture
, DateOfDeparture
,'" & DateTimeToday & "'
,'" & TransactionType & "'
 FROM BusPassengers
 WHERE BusName = '" & BusName & "'"

确保 DateTimeToday 的格式正确(您也可以使用 SQL 当前日期时间函数 Now())