Как вы используете VBA, чтобы форма переходила к ближайшей дате в Access? - PullRequest
1 голос
/ 11 февраля 2020

Я пытаюсь заставить базу данных MS Access открыть форму либо на сегодняшнюю дату, если она находится в поле даты в базе данных, либо на ближайшую дату в будущем. Я попробовал код здесь , но он не работает. Он просто выделяет поле даты и переходит к первой записи вместо ближайшей в будущем.

Поле даты равно WorshipDate, а таблица - wp_elements. (Я являюсь пастором, использующим эту таблицу для планирования воскресного богослужения).

Private Sub Form_Load()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim strSQL As String
Dim TheDate As Date

Set db = CurrentDb
strSQL = "SELECT TOP 1 * FROM wp_elements WHERE wp_elements.WorshipDate >= Date() ORDER BY wp_elements.WorshipDate;"
Set rst = db.OpenRecordset(strSQL)
TheDate = rst.Fields(0)
WorshipDate.SetFocus
DoCmd.FindRecord TheDate, , True, , True
Set rst = Nothing
Set db = Nothing
'DoCmd.RunCommand acCmdRecordsGoToLast
End Sub

Я знаю, что включенный код SQL работает, потому что я использую его в сценарии Python, который работает довольно хорошо.

Чего мне не хватает? Или есть другой, более простой способ сделать это?

1 Ответ

1 голос
/ 12 февраля 2020

Вам потребуется только одна строка кода:

me.RecordSet.FindFirst "Date() >= WorshipDate"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...