我有两张桌子' tbl_Images'和' tbl_ImagesDetails'。第一个表格具有在第二个表格中找不到的ImageID。
我首先查询了一个查找不匹配记录的查询,然后将结果行添加到第二个表中。
如果我在Access 2010中运行查询,则会要求确认,然后添加行。
但是,如果我从VB.net运行它,它不会添加任何行,并且没有错误消息。这是代码:
Dim strsql As String = "INSERT INTO tbl_ImagesDetails ( ImageID )
SELECT tbl_Images.ImageID
FROM tbl_Images LEFT JOIN tbl_ImagesDetails ON tbl_Images.[ImageID] = tbl_ImagesDetails.[ImageID]
WHERE (((tbl_Images.ImageID) Like 'ZOOMED*')
AND ((tbl_ImagesDetails.ImageID) Is Null));"
'Debug.Print(strsql)
Dim MyConn As New OleDbConnection(connString)
Dim cmd As New OleDbCommand(strsql, MyConn)
cmd.CommandType = CommandType.Text
If Not MyConn.State = ConnectionState.Open Then MyConn.Open()
Dim iResult As Integer = cmd.ExecuteNonQuery()
Return iResult
上面的查询应返回9行,但iResult = 0
我的问题:
确认对话框是否妨碍了?如果是这样,我如何覆盖使用vb代码?
ExecuteNonQuery()允许一次插入多行吗?
如何插入属于另一个查询的行(即在同一查询中)?
答案 0 :(得分:0)
1)确认对话框是否妨碍了?如果是这样,我如何覆盖使用vb代码?
Ans:如果您通过代码执行命令,即vb.net
,则不会显示确认框2)ExecuteNonQuery()允许一次插入多行吗?
答案:是的
3)如何插入作为另一个查询结果的行(即在同一查询中)?
我认为你需要检查vb.net中查询提取的结果/记录,可能没有得到任何记录。最好写一个函数来检查所获取的记录。否则似乎没问题。
希望这有帮助!