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 子句
我确实可以根据指定的信息更准确
我正在尝试将拭子位置的多值插入到具有相同跟踪编号的 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 子句我确实可以根据指定的信息更准确