powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как ускорить выполнения функционального запроса
11 сообщений из 11, страница 1 из 1
Как ускорить выполнения функционального запроса
    #39116267
antipod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем мне нужно что бы по набору данных в одно поле формы отфильтровывались записи в самой форме. С фильтром не работал не знаю как. Я сделал функцию в которую передаются все фильтруемые значения, а она уже решает - показывать запись или нет.
Но в результате на 25 тысяч записей она очень медленна. Не подскажет кто другой способ?
...
Рейтинг: 0 / 0
Как ускорить выполнения функционального запроса
    #39116314
antipod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1121,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Function OtborFio(FF, II, OO, DD)
   Dim FunStrok, F, I, O As String
   Dim D As Date
   Dim Rez As Boolean
   
   Rez = True
   F = ""
   I = ""
   O = ""
   
   FunStrok = UCase(PazyentyOtbor_FioSokr())
   
   If Len(FunStrok) >= 1 Then
      F = Left(FunStrok, 1)
   End If
   If Len(FunStrok) >= 2 Then
      I = Right(Left(FunStrok, 2), 1)
   End If
   If Len(FunStrok) >= 3 Then
      O = Right(Left(FunStrok, 3), 1)
   End If
   
   If UCase(Left(FF, 1)) <> F Then Rez = False
   If Rez And UCase(Left(II, 1)) <> I Then Rez = False
   If Rez And UCase(Left(OO, 1)) <> O Then Rez = False
   
   If Not IsNull(PazyentyOtbor_FDataRog()) Then
     D = PazyentyOtbor_FDataRog()
     If Rez And DD <> D Then Rez = False
   End If
   
   OtborFio = Rez
End Function
...
Рейтинг: 0 / 0
Как ускорить выполнения функционального запроса
    #39116328
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так у тебя не одна, а целых три функции.... Не приводи своего решения, лучше, на словах объясни ТЗ. А заодно покажи таблицы и запрос
...
Рейтинг: 0 / 0
Как ускорить выполнения функционального запроса
    #39116339
antipod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблица Фамилия Имя Отчество и дата рождения и куча всего к ним. записей от 25-50 тысяч
ТЗ - нужно максимально упростить поиск людям не владеющим ПК
Как вариант в поле формы они Например вводят "КАВ" первая буква фамилия, вторая имя, третья отчество.
В форме должны отфильтроваться записи начинающиеся с этих букв. Как программно изменять фильтр формы я не знаю.
Сделал так как приведено выше, но оно медленно работает.
Как вариант подскажите как программно пользоваться фильтром формы, быстрее должно работать.
...
Рейтинг: 0 / 0
Как ускорить выполнения функционального запроса
    #39116345
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В догонку. Функция написана очень небрежно, непродуманно. Возвращать будет неопределенные и неправильные значения. И все потому, что типы передаваемых параметров не прописаны. А значит, они вариант, а значит, они вполне могут получить null и все строковые функции будут сравнивать несравнимые велечины, возвращая черт знает что!
...
Рейтинг: 0 / 0
Как ускорить выполнения функционального запроса
    #39116351
antipod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rivkin Dmitry,

Это я хотел исправить уже в конце
...
Рейтинг: 0 / 0
Как ускорить выполнения функционального запроса
    #39116410
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antipod,

авторпо набору данных в одно поле формы
вы считаете, что это упростит выбор?
-----------уверена на 100 %, что усложнит
кто-то обязательно наберет только буквы фамилии

должно быть 3 поля по 1 символу или более
а далее
Код: sql
1.
 fam like p1 & "*" and imja like p2 & "*" and otch like p3 & "*"



и функции не надо (конечно строка будет немного сложнее --учитывать имя формы и имена полей)
...
Рейтинг: 0 / 0
Как ускорить выполнения функционального запроса
    #39118428
antipod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стал переделывать форму на работу с фильтром, столкнулся с другой проблемой.
Фильтр формируется в двух событиях формы, попытался прямо в модуле формы написать процедуру общую для обоих событий, чето не получилось. MsgBox проверочный не срабатывает изменений никаких нет
...
Рейтинг: 0 / 0
Как ускорить выполнения функционального запроса
    #39118467
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antipod,
кому-то объяснял-осталась:гляньте, может что навеет:
...
Рейтинг: 0 / 0
Как ускорить выполнения функционального запроса
    #39118647
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё вариант:
Одиночная форма с источником таблица, с заданной в свойствах, сортировкой по фамилии
добавить кнопку "показатьВсе" и свободное поле "поиск"
после набора символов в "поиск" будет производится поиск в указанном поле и курсор возвращаться в конец набранного
(обычно поиска по одному полю "фамилия" достаточно-однофамильцев обычно не много и выбрать из 3-4 отобранных не сложно)

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Sub показатьВсе_Click()
DoCmd.ShowAllRecords
Me.OrderByOn = True
Me.поиск = ""
End Sub

Private Sub поиск_GotFocus()
Me.поиск.SelStart = Len(Me.поиск.Text)
End Sub

Private Sub поиск_KeyUp(KeyCode As Integer, Shift As Integer)
DoCmd.ApplyFilter , "Фамилия like'" & Me.поиск.Text & "*'"
End Sub
...
Рейтинг: 0 / 0
Как ускорить выполнения функционального запроса
    #39118795
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antipod, посмотри этот пример 16941861 . Там форма с фильтром, как пример...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как ускорить выполнения функционального запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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