Вот фрагмент кода:Удалить 5 записей, но RecordsAffected Собственность 0
Private Sub frmSearch_UnMarkAll()
Const sqlD As String = "DELETE * FROM PickList WHERE TableName = ""CARS"" AND KeyNo IN (" & _
"SELECT RecNo FROM Cars "
If frmSearch.WhereSql <> vbNullString Then
CurrentDb.Execute sqlD & frmSearch.WhereSql & ")"
End If
Stop
End Sub
Эта функция вызывается нажатием кнопки запуска на форме frmSearch. Кнопка вызывает событие, которое обрабатывается вышеуказанным кодом. WhereSql - это предложение where из списка, отображаемого на экране поиска. Это имеет значение, как «WHERE Cars.RecNo> 1441» Когда код достиг заявление Стоп, я проверил свойство RecordsAffected с помощью немедленного окна и набрав:
? Currentdb.RecordsAffected
0 is the result.
Я проверил таблицу PickList и соответствующую элементы были удалены.
Мой вопрос: Это ошибка? Или, нормально ли, что удаление записи не влияет на это?
У меня проблема. Я удалил поле SequenceNo из таблицы PickList. Я создал и индексировал TableName и KeyNo в таблице PickList и задал Unique как yes. Теперь я просто
INSERT INTO PickList (TableName, LastChangedDate, KeyNo)
значения (TABLENAME, сейчас(), RECNO из tablenamed)
Если ВСТАВИТЬ не удается из-за ошибки 3022, это попытка дублировать запись, которую я игнорирую в этом примере. Все остальное функционирует так, как я хотел бы работать в первую очередь. Свойство RecordsAffected всегда равно нулю, когда я проверяю его в своем коде или представлении, печатая в отладчике. Это все еще вызывает недоумение, поскольку, если вы запускаете запросы действий от доступа в интерактивном режиме, вся эта информация представляется. Если вы запускаете другие реляционные СУБД (те, которые являются стандартными), всегда используется обратная связь при использовании механизма запросов. Мне трудно поверить, что другие не терпят неудачу, если это ошибка в доступе. Я склонен думать, что я как-то испортил. Надеюсь, я не одинокий пионер. Спасибо, заранее, чтобы посмотреть на это.