Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Как переместить запись в форме на нужную?  [new]
drafty
Member

Откуда: Москва
Сообщений: 542
Имеется форма источником записей которой является не запрос в виде инструкции SQL,а таблица (т.е. в свойствах формы ИсточникЗаписей-ИмяТаблицы)..Когда я открываю форму,у меня в VBA выполняется проверка по содержимому поля1 той записи,у которой максимальное значение поля2 (поле типа счетчик).Нужно,чтобы
-если поле1 непустое - форма открывалась и автоматом отображалась новая запись;
-если поле1 пустое - форма открывалась и автоматом отображалась запись где поле1 пустое;
В первом случае все срабатывает,а во втором форма открывается непонятно на какой записи,но не на последней это точно...
Вот код:

Set RST1=CurrentDb.OpenRecordset("Select Таблица1.* FROM Таблица1 Order By Таблица1.поле2 Desc")
RST1.MoveFirst
If Not (IsNull(RST1!поле1)) Then
DoCmd.GoToRecord , , acNewRec
Else
DoCmd.GoToRecord , , acLast 'наверное тут должен быть другой оператор
End If
........


В самой форме порядка сортировки нет...
Что не так?

Сообщение было отредактировано: 6 фев 20, 14:19
6 фев 20, 14:18    [22074735]     Ответить | Цитировать Сообщить модератору
 Re: Как переместить запись в форме на нужную?  [new]
drafty
Member

Откуда: Москва
Сообщений: 542
drafty
Имеется форма источником записей которой является не запрос в виде инструкции SQL,а таблица (т.е. в свойствах формы ИсточникЗаписей-ИмяТаблицы)..Когда я открываю форму,у меня в VBA выполняется проверка по содержимому поля1 той записи,у которой максимальное значение поля2 (поле типа счетчик).Нужно,чтобы
-если поле1 непустое - форма открывалась и автоматом отображалась новая запись;
-если поле1 пустое - форма открывалась и автоматом отображалась запись где поле1 пустое;
В первом случае все срабатывает,а во втором форма открывается непонятно на какой записи,но не на последней это точно...
Вот код:

Set RST1=CurrentDb.OpenRecordset("Select Таблица1.* FROM Таблица1 Order By Таблица1.поле2 Desc")
RST1.MoveFirst
If Not (IsNull(RST1!поле1)) Then
DoCmd.GoToRecord , , acNewRec
Else
DoCmd.GoToRecord , , acLast 'наверное тут должен быть другой оператор
End If
........


В самой форме порядка сортировки нет...
Что не так?

Сделал в свойствах формы Порядок Сортировки - Order By [Таблица1].[поле1] Desc все-равно не работает так как хотелось бы
6 фев 20, 14:46    [22074779]     Ответить | Цитировать Сообщить модератору
 Re: Как переместить запись в форме на нужную?  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 446
Попробуйте вместо
DoCmd.GoToRecord , , acLast 'наверное тут должен быть другой оператор
указать
Me.Recordset.FindFirst "[поле2]=" & RST1![поле2]
6 фев 20, 15:08    [22074825]     Ответить | Цитировать Сообщить модератору
 Re: Как переместить запись в форме на нужную?  [new]
drafty
Member

Откуда: Москва
Сообщений: 542
Кривцов Анатолий
Попробуйте вместо
DoCmd.GoToRecord , , acLast 'наверное тут должен быть другой оператор
указать
Me.Recordset.FindFirst "[поле2]=" & RST1![поле2]

Работает!Премного благодарен!!!
6 фев 20, 15:25    [22074853]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить