powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Найти запись по полю
27 сообщений из 27, показаны все 2 страниц
Найти запись по полю
    #39076498
adrian-82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня!
Подскажите пожалуйста!
У меня есть форма, где кнопками "следующая запись" или "предыдущая запись" можно листать записи. Не могу придумать, как бы задать условие, что если поле "номер заявки" в форме пустое, то можно просто листать все записи, а если там ввести номер заявки и нажать "открыть", то форма сразу бы находила эту заявку и показывала ее!

Была мысль как то через If это записать... Что то типа If [номер зявки] is null то показывать все записи, иначе находить указанный номер. Но как это записать не соображу...
...
Рейтинг: 0 / 0
Найти запись по полю
    #39076620
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adrian-82,
по мере ввода символов отбираются записи соответствующие критерию (кнопка не нужна)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Private Sub poisk_Change()
DoCmd.ApplyFilter , "полеВкоторомИщем like'" & Me.poisk.Text & "*'"
End Sub

Private Sub poisk_GotFocus()
Me.poisk.SelStart = Len(Me.poisk)
End Sub
...
Рейтинг: 0 / 0
Найти запись по полю
    #39076630
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку-форма с заявками, как я понял, подчиненная.
Тогда чуть иначе-после ввода №заявки и нажатия кнопки DLOOKUPом, используя номер заявки как критерий, находите значение поля связи (код главной таблицы) и выводите запись с этим кодом
...
Рейтинг: 0 / 0
Найти запись по полю
    #39076632
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuВдогонку-форма с заявками, как я понял, подчиненная.
Тогда чуть иначе-после ввода №заявки и нажатия кнопки DLOOKUPом, используя номер заявки как критерий, находите значение поля связи (код главной таблицы) и выводите запись с этим кодом
Ну и вдогонку если записей будет надцать тысяч, то будут тормоза (и не хилые)
...
Рейтинг: 0 / 0
Найти запись по полю
    #39076636
adrian-82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Спасибо!
Да форма подчиненная.
А этот код в свойствах формы я ввожу верно? В данных или в событиях?
...
Рейтинг: 0 / 0
Найти запись по полю
    #39076645
adrian-82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
adrian-82,

Я просто не такой спец в этом вопросе.
Так то понятно, что если поле пустое, то показывай все записи! а если поле заполнено то запись с заданным номером.
Номера естественно уникальные.
...
Рейтинг: 0 / 0
Найти запись по полю
    #39076665
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чё-то я не вкурю Вашу схему данных-хотелось бы увидеть её скрин
...
Рейтинг: 0 / 0
Найти запись по полю
    #39076747
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROIНу и вдогонку если записей будет надцать тысяч, то будут тормоза (и не хилые)
О каких тормозах речь?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Поле9_AfterUpdate()
Dim a, start, finish
start = Timer
a = DLookup("кодД", "таблица2", "ctl2='" & Me.Поле9 & "'")
DoCmd.ApplyFilter , "кодД=" & a
finish = Timer
Me.Поле12 = finish - start
End Sub
...
Рейтинг: 0 / 0
Найти запись по полю
    #39076748
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Найти запись по полю
    #39076752
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Найти запись по полю
    #39077085
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuROIНу и вдогонку если записей будет надцать тысяч, то будут тормоза (и не хилые)
О каких тормозах речь?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Поле9_AfterUpdate()
Dim a, start, finish
start = Timer
a = DLookup("кодД", "таблица2", "ctl2='" & Me.Поле9 & "'")
DoCmd.ApplyFilter , "кодД=" & a
finish = Timer
Me.Поле12 = finish - start
End Sub





Объясняю фильтр по форме очень тормозная весч на больших объемах (проверено)
...
Рейтинг: 0 / 0
Найти запись по полю
    #39077199
adrian-82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Что то не правильно я делаю... не получается у меня....

Если поле пустое, то пусть он листает все записи в форме, а если в поле введен номер, то пусть показывает эту запись...
...
Рейтинг: 0 / 0
Найти запись по полю
    #39077200
adrian-82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кнопка скорее всего и правда не нужна....
...
Рейтинг: 0 / 0
Найти запись по полю
    #39077903
Коллеге надо не отфильтровать, а перейти на требуемую запись.
Например, на AfterUpdate поля "НайтиЗаявку":
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
If IsNull(Me![НайтиЗаявку]) Then ExitSub 
   Set frm = Me![Имя элемента-контейнера субформы]
With frm.RecordsetClone
   .FindFirst '[НомерЗаявки]='"  & Me![НайтиЗаявку] & "'"
 If .NoMatch Then
   Msgbox "Не найдена"
 Else
   frm.Bookmark = .Bookmark
 End If
End With
...
Рейтинг: 0 / 0
Найти запись по полю
    #39078242
adrian-82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий ( Киев ),

Спасибо!
Я код слабо знаю, у меня вопрос есть, если позволите.
Скажите, а Имя элемента-контейнера субформы - это я так понял поле в подчиненной форме по которому ищется запись?
И еще то что зеленым '[НомерЗаявки]='" & Me![НайтиЗаявку] & "'" - тут не пропущен знак какой то? а то получается он закомментил это.
...
Рейтинг: 0 / 0
Найти запись по полю
    #39078299
adrian-82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверьте пожалуйста, в чем моя ошибка. Ругается на третью строчку где поле подчиненной формы указываю.
...
Рейтинг: 0 / 0
Найти запись по полю
    #39078402
adrian-82Имя элемента-контейнера субформы - это я так понял поле в подчиненной форме по которому ищется запись? Нет. На главной форме есть элемент управления "Подчиненная форма", в котором, собственно, и находится сама субформа. Ее имя и имя элемента обычно совпадают, но не всегда.
adrian-82И еще то что зеленым '[НомерЗаявки]='" & Me![НайтиЗаявку] & "'" - тут не пропущен знак какой то? а то получается он закомментил это. Нет. Это стандартный синтаксис фильтра по текстовому полю. Значение берется в апострофы или кавычки.
...
Рейтинг: 0 / 0
Найти запись по полю
    #39078429
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо, там все-таки опечатка - первая одинарная кавычка вместо двойной.
Код: vbnet
1.
.FindFirst '[НомерЗаявки]='"  & Me![НайтиЗаявку] & "'"

Код: vbnet
1.
.FindFirst "[НомерЗаявки]='"  & Me![НайтиЗаявку] & "'"
...
Рейтинг: 0 / 0
Найти запись по полю
    #39078565
adrian-82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выделяет желтым строку With frm.RecordsetClone
...
Рейтинг: 0 / 0
Найти запись по полю
    #39078574
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adrian-82,
Код: vbnet
1.
Set frm = Me![Имя элемента-контейнера субформы].Form
...
Рейтинг: 0 / 0
Найти запись по полю
    #39078598
adrian-82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

Спасибо!
А про кавычки ваш вариант выделяет красным.
а в варианте
.FindFirst '[Номер заявки]='" & Me!ПП " '"
пишет ошибочный аргумент.
...
Рейтинг: 0 / 0
Найти запись по полю
    #39078619
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adrian-82А про кавычки ваш вариант выделяет красным.
Код: vbnet
1.
.FindFirst "[НомерЗаявки]='"  & Me![НайтиЗаявку] & "'"

Вот это выделяет красным? Странно.
Быть не может.
Проверьте свою запись внимательней.
...
Рейтинг: 0 / 0
Найти запись по полю
    #39078628
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adrian-82а в варианте
.FindFirst '[Номер заявки]='" & Me!ПП " '"
пишет ошибочный аргумент.У Вас три ошибки.
Опять первая кавычка одинарная. Амперсанда нет. И пробел лишний.
Исправлено.
Код: vbnet
1.
.FindFirst "[Номер заявки]='" & Me!ПП & "'" 
...
Рейтинг: 0 / 0
Найти запись по полю
    #39078670
adrian-82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

Большое спасибо!!
Еще не подскажите, я вот только сейчас понял, что поле "Номер заявки" в форме у меня числовое, а поле "поиск по номеру" (которое ПП назвал) оно текстовое. Как уравнять форматы в коде? ведь он не сможет найти текст в числовом поле. Получается что мое поле поиска надо тоже сделать числовым.
...
Рейтинг: 0 / 0
Найти запись по полю
    #39078686
adrian-82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так и есть, пишет несоответсвие типа данных в условии отбора

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub ÏÏ_AfterUpdate()
If IsNull(Me!ÏÏ) Then Exit Sub
Set frm = Me![Форма по платежам].Form
With frm.RecordsetClone
[color=yellow].FindFirst "[Номер заявки]='" & Me!ПП & " '"[/color]
If rst.NoMatch Then
MsgBox "нет данных"
Else
frm.Bookmark = .Bookmark
End If
End With
End Sub
...
Рейтинг: 0 / 0
Найти запись по полю
    #39078687
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adrian-82поле "Номер заявки" в форме у меня числовое, а поле "поиск по номеру" (которое ПП назвал) оно текстовое. Как уравнять форматы в коде? ведь он не сможет найти текст в числовом поле.Если в ПП только цифры, то найдет. Можно дополнительно текст преобразовать в число.
В коде нужно также убрать одинарные кавычки.
Код: vbnet
1.
.FindFirst "[Номер заявки]=" & CInt(Me!ПП)
...
Рейтинг: 0 / 0
Найти запись по полю
    #39078704
adrian-82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

Огромное Вам спасибо!!!! Очень помогли!
...
Рейтинг: 0 / 0
27 сообщений из 27, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Найти запись по полю
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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