У меня есть 2 таблицы 'tbl_Images' и 'tbl_ImagesDetails'. В 1-й таблице есть ImageID, которые не найдены во второй таблице.Как вставить строки в MS Access из запроса, который находит непревзойденные записи, используя vb.net
Я сделал запрос, который сначала находит несогласованные записи, а затем добавляет результирующие строки ко второй таблице.
Если я запустил запрос внутри 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() возможность вставки нескольких строк за один раз?
Как вставить строки, которые являются результатом другого запроса (т. Е. В рамках одного запроса)?
Кое-что, что я только что нашел: В Access мне было интересно узнать разницу между «Просмотр» (тот, который имеет значок сетки) и «Выполнить» (один с восклицательным знаком). Если я нажму «Открыть», отобразится только сетка с 9 строками, если щелкнуть восклицательный знак, она добавит строки. Есть ли код vb для его запуска? – Jnnno