Я собираюсь преобразовать проект данных доступа (ADP) в стандартный формат ACCDB с помощью связанных таблиц ODBC. В АДФЕ, я переопределен кнопка Обновить, чтобы вернуть пользователь к текущей записи, используя следующий код:«Недействительная закладка» с DAO Recordset
Public Sub RibbonCmd_RefreshScreen(ctl As IRibbonControl, ByRef cancelDefault)
On Error GoTo ErrHandler
cancelDefault = False
DoCmd.Echo False
Dim saveBookmark
With Screen.ActiveForm
saveBookmark = .Bookmark
.Requery
.Bookmark = saveBookmark
End With
'Success - cancel the default behavior
cancelDefault = True
ExitHandler:
DoCmd.Echo True
Exit Sub
ErrHandler:
cancelDefault = False
Resume ExitHandler
End Sub
Я понимаю, что это должно работать нормально с DAO, но я получаю ошибку 3159, Not a valid bookmark.
Я также попытался заменить .Bookmark
на .Recordset.Bookmark
, но это дало мне тот же результат. Что-то я здесь делаю неправильно?
Спасибо, Альберт. Кажется, это информация, которую я отсутствовал - запрос не делает недействительной закладку в ADP, и я не понимал, что в ACCDB будет иначе. Я подумал об использовании Refresh, но я боюсь, что мне нужно реквизит. Я надеялся, что есть способ сделать это, не меняя код на использование идентификаторов, но, по крайней мере, ваш ответ объясняет, почему я должен это делать. –