Мне нужно запросить таблицу базы данных, а затем записать 3 из 4 полей в электронную таблицу Excel. Как только эта строка написана, мне нужно обновить поле 'sentback' на 'Y'. Это было начальное поле, используемое в предложении where. Таким образом, вся идея состоит в том, чтобы запросить, написать и изменить флаг на «Y», чтобы я больше не выбирал эти записи.
У меня половина кода работает здесь. Я знаю, что могу, вероятно, как-то использовать DoCmd, но не могу понять это.
Другие записи могут быть добавлены в базу данных во время выполнения подпрограммы, поэтому обновление должно происходить для текущего набора записей, используемого в do, во избежание установки флага для записей, которые, возможно, не были отправлены.
Любая помощь очень ценится
Dim strSQL As String
strExcelFile = "C:\MySpreadSheet.xls"
strWorksheet = "WorkSheet1"
strDB = "C:\track.accdb"
strTable = "manifests2"
Set db = CurrentDb
'If excel file already exists, you can delete it here
If Dir(strExcelFile) <> "" Then Kill strExcelFile
strSQL = "SELECT manifests2.[Shipment ID], manifests2.[Courier Service Level], manifests2.[Other Tracking],manifests2.[sentback] FROM " & "[" & strTable & "] WHERE (((manifests2.[sentback]) = 'N') and ((manifests2.[Other Tracking]) <> NULL))"
Set rs = db.OpenRecordset(strSQL)
Do While Not rs.EOF
rs.Edit
rs("sentback").Value = "Y"
rs.Update
rs.MoveNext
Loop
End Sub