Insert Into (select from ) 具有多字段值和特定值

Insert Into (select from ) with multifield values and specific values

我正在尝试将拭子位置的多值插入到具有相同跟踪编号的 table 中。这是示例:

tblMainSwapLocation(Table 我获取信息表的地方)

Asset_ID  MAterial   Swap_Location
MFG111    Brick      Top left
MFG111    Plastic    Top right
MFG113    Wood       Center

tblCVLocation(Table 我要插入信息的位置)

TrackingID  Asset_ID   Swap_Location
99801       MFG111     Top left
99801       MFG111     Top right

我正在使用以下 sql 查询来完成这项工作,但我对查询的方式有疑问。

strSQL = "Insert Into tblCVProject " & vbCrLf
strSQL = strSQL & "Values ( [pTrackNum], (SELECT MEQ.Asset_ID ,MEQ.SwabLocation" & vbCrLf
strSQL = strSQL & "FROM tblMainSwapLocation as MEQ " & vbCrLf
strSQL = strSQL & "WHERE MEQ.Asset_ID = [pAsset_ID] ))"
Debug.Print strSQL
Set qdf = dbs.CreateQueryDef(vbNullString, strSQL)
qdf.Parameters("pAssetID").Value = Me.cboAsset_Id
qdf.Parameters("pTrackNum").Value = TrackNum

更简单形式的查询,它在用户单击保存按钮时运行。

Insert Into tblCVProject 
Values ( [pTrackNum], (SELECT MEQ.Asset_ID ,MEQ.SwabLocation, MEQ.Equipment_Name 
FROM tblMainSwapLocation as MEQ 
WHERE MEQ.Asset_ID = [pAsset_ID] ))

这是我遇到的错误:

INSERT 语句的语法在以下位置有很好的解释:

https://msdn.microsoft.com/en-us/library/bb208861(v=office.12).aspx

使用 VALUES(用于单记录追加查询)或 SELECT 用于多记录追加查询。

信息不足,无法给出明确的答案。

我猜你的 TrackingID 列被定义为自动编号,因为我找不到它的来源

如果你想在 tblCVLocation 中为每个 tblMainSwapLocation 生成一条记录,那么你只需要这样做:

INSERT INTO tblCVProject  ([Asset_ID],[Swap_Location])
SELECT Asset_ID, Swap_Location FROM tblMainSwapLocation 

如果只想为某些Asset_ID或material插入,则在SELECT后添加一个WHERE子句 如果您只想要 Asset_ID + Swap_location 的不同对,则在 SELECT

中添加一个 DISTINCT 子句

我确实可以根据指定的信息更准确