Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как осуществить проход по записям ленточной формы? / 15 сообщений из 15, страница 1 из 1
27.12.2019, 13:20
    #39908963
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить проход по записям ленточной формы?
Имеется ленточная форма, источник данных задаётся посредством простого запроса на выборку из одной таблицы,т.е. Me.Recordsource="Select ..."
Каким образом можно "пробежаться" программно по записям формы(а не таблицы/запроса) и получить значение того или иного поля формы,или нет например сделать неактивным элемент 3-ей и 5-ой записей ленточной формы,такое возможно?
...
Рейтинг: 0 / 0
27.12.2019, 14:27
    #39909033
Как осуществить проход по записям ленточной формы?
drafty
Каким образом можно "пробежаться" программно по записям формы(а не таблицы/запроса) и получить значение того или иного поля формы

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
With Me.RecordsetClone
  If .RecordCount > 0 Then .MoveFirst
  Do Until .EOF
Debug.Print ![ИмяПоля]
    .MoveNext
  Loop
End With


У формы есть св-во
drafty
сделать неактивным элемент 3-ей и 5-ой записей ленточной формы,такое возможно?
Чем отличаются эти записи от других? Если наложить фильтр или сортировку, то другие записи станут 3-ей и 5-ой. И еще, "сделать неактивным элемент", когда запись текущая или вообще?
...
Рейтинг: 0 / 0
27.12.2019, 14:30
    #39909038
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить проход по записям ленточной формы?
Кривцов Анатолий
drafty
Каким образом можно "пробежаться" программно по записям формы(а не таблицы/запроса) и получить значение того или иного поля формы

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
With Me.RecordsetClone
  If .RecordCount > 0 Then .MoveFirst
  Do Until .EOF
Debug.Print ![ИмяПоля]
    .MoveNext
  Loop
End With


У формы есть св-во
drafty
сделать неактивным элемент 3-ей и 5-ой записей ленточной формы,такое возможно?
Чем отличаются эти записи от других? Если наложить фильтр или сортировку, то другие записи станут 3-ей и 5-ой. И еще, "сделать неактивным элемент", когда запись текущая или вообще?

Премного благодарен!👍
...
Рейтинг: 0 / 0
27.12.2019, 15:36
    #39909132
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить проход по записям ленточной формы?
Кривцов Анатолий
drafty
Каким образом можно "пробежаться" программно по записям формы(а не таблицы/запроса) и получить значение того или иного поля формы

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
With Me.RecordsetClone
  If .RecordCount > 0 Then .MoveFirst
  Do Until .EOF
Debug.Print ![ИмяПоля]
    .MoveNext
  Loop
End With


У формы есть св-во
drafty
сделать неактивным элемент 3-ей и 5-ой записей ленточной формы,такое возможно?
Чем отличаются эти записи от других? Если наложить фильтр или сортировку, то другие записи станут 3-ей и 5-ой. И еще, "сделать неактивным элемент", когда запись текущая или вообще?

Когда запись не текущая,но присутствует на форме
...
Рейтинг: 0 / 0
27.12.2019, 17:30
    #39909219
Как осуществить проход по записям ленточной формы?
drafty
Когда запись не текущая,но присутствует на форме
Вы не ответили на вопрос "Чем отличаются эти записи от других?".
Если "сделать неактивным элемент" зависит от его значения или значений других полей записи, и этот элемент - поле или поле со списком, то решение - условное форматирование.
...
Рейтинг: 0 / 0
13.02.2020, 08:08
    #39926092
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить проход по записям ленточной формы?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
With Me.RecordsetClone
  If .RecordCount > 0 Then .MoveFirst
  Do Until .EOF
Debug.Print ![ИмяПоля]
    .MoveNext
  Loop
End With


Вчера применил этот метод,и столкнулся с тем,что Movenext не срабатывает,т.е. переход не осущесвляется,на печать выводится только первая строка формы,хотя количество проходов соответствует количеству строк ленточной формы.
Поменял RecordsetClone на Recordset - тогда заработало как надо
...
Рейтинг: 0 / 0
13.02.2020, 09:40
    #39926111
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить проход по записям ленточной формы?
drafty
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
With Me.RecordsetClone
  If .RecordCount > 0 Then .MoveFirst
  Do Until .EOF
Debug.Print .Fields("ИмяПоля") ' ![ИмяПоля]
    .MoveNext
  Loop
End With

Вчера применил этот метод,и столкнулся с тем,что Movenext не срабатывает,т.е. переход не осущесвляется,на печать выводится только первая строка формы,хотя количество проходов соответствует количеству строк ленточной формы.
Поменял RecordsetClone на Recordset - тогда заработало как надо
пиши как надо
...
Рейтинг: 0 / 0
13.02.2020, 10:14
    #39926130
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить проход по записям ленточной формы?
Панург,
А каким образом можно сделать тоже самое,только в отчете?
Смотрю https://docs.microsoft.com/ru-ru/office/vba/api/access.report.recordset и вообще ничего не вижу...
...
Рейтинг: 0 / 0
13.02.2020, 11:07
    #39926154
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить проход по записям ленточной формы?
drafty
А каким образом можно сделать тоже самое,только в отчете?
зачем тебе?
...
Рейтинг: 0 / 0
13.02.2020, 11:28
    #39926168
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить проход по записям ленточной формы?
Панург
drafty
А каким образом можно сделать тоже самое,только в отчете?
зачем тебе?

Например делать какие-либо метки на полях записей по определенному критерию содержимого строк отчета.Ну например изменить значения поля1 Отчета1 с значения "Текст" на значение "ТекстМетка" где поле2 Формы1 равно=1 (при условии,что у формы1 и отчета1 одинаковый рекордсоурс)...
...
Рейтинг: 0 / 0
13.02.2020, 11:29
    #39926169
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить проход по записям ленточной формы?
drafty
Панург
пропущено...
зачем тебе?

Например делать какие-либо метки на полях записей по определенному критерию содержимого строк отчета.Ну например изменить значения поля1 Отчета1 с значения "Текст" на значение "ТекстМетка" где поле2 Формы1 равно=1 (при условии,что у формы1 и отчета1 одинаковый рекордсоурс)...

Условное форматирование не всчет...
...
Рейтинг: 0 / 0
13.02.2020, 12:02
    #39926185
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить проход по записям ленточной формы?
drafty, ближе к телу! (с)
...
Рейтинг: 0 / 0
13.02.2020, 12:05
    #39926189
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить проход по записям ленточной формы?
Кривцов Анатолий
drafty
Когда запись не текущая,но присутствует на форме
Вы не ответили на вопрос "Чем отличаются эти записи от других?".
Если "сделать неактивным элемент" зависит от его значения или значений других полей записи, и этот элемент - поле или поле со списком, то решение - условное форматирование .

Да,только что проэкспериментировал -это решение...
...
Рейтинг: 0 / 0
13.02.2020, 12:23
    #39926196
Как осуществить проход по записям ленточной формы?
drafty
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
With Me.RecordsetClone
  If .RecordCount > 0 Then .MoveFirst
  Do Until .EOF
Debug.Print ![ИмяПоля]
    .MoveNext
  Loop
End With


Вчера применил этот метод,и столкнулся с тем,что Movenext не срабатывает,т.е. переход не осущесвляется,на печать выводится только первая строка формы,хотя количество проходов соответствует количеству строк ленточной формы.
Поменял RecordsetClone на Recordset - тогда заработало как надо
На то он и Recordset Clone , что перемещение по записям никак не отражается на форме. Что бы перейти в форме на найденную запись, нужно выполнить Me.Bookmark = Me.RecordsetClone.Bookmark (внутри With Me.RecordsetClone просто Me.Bookmark = .Bookmark).
Если перемещаться по Recordset , то этого не нужно, и записи на форме будут двигаться синхронно, что не есть гуд.

Панург
Код: vbnet
1.
Debug.Print .Fields("ИмяПоля") ' ![ИмяПоля]

пиши как надо Панург, аргументируйте, что .Fields("ИмяПоля") - как надо, а ![ИмяПоля] - как не надо. Понятно, что в .Fields(...) можно применить строковую переменную или номер поля в коллекции, но это не тот случай.
...
Рейтинг: 0 / 0
13.02.2020, 15:38
    #39926302
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить проход по записям ленточной формы?
Кривцов Анатолий
Панург, аргументируйте, что .Fields("ИмяПоля") - как надо, а ![ИмяПоля] - как не надо.
Не в одном холиваре уже обсуждалась применимость точки и восклицательного знака при обращении к коллекциям. И все оставались при своём мнении. Но уже два десятка лет как было рекомендовано (рекомендации происходили из MS) всё же использовать точку. Восклицательный знак оставили лишь в запросах (построитель). Мне не охота перечислять все аргументы, сошлюсь пожалуй на книгу Гетца&Со "Разработка настольных приложений...".
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как осуществить проход по записям ленточной формы? / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]