powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / DAO Recordset
25 сообщений из 30, страница 1 из 2
DAO Recordset
    #32495817
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача, -
Есть обьект DAO Recordset. Дальше, в цикле просматриваются все записи. К первому полю применяется определенный критерий, достаточно сложный, что-бы его использовать в запросе, определяющем этот набор записей.
Как можно, если значение поля не удовлетворяет этому критерию, удалить строку из набора, не удаляя строку из таблицы ?
...
Рейтинг: 0 / 0
DAO Recordset
    #32495818
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Никак. Только заранее правильно написать WHERE.

Компромиссный вариант - завести вспомогательное поле и отмечать в нем.
...
Рейтинг: 0 / 0
DAO Recordset
    #32495830
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо,
у меня функция от поля(строки) и другой строки, возвращающая true/false,
в WHERE, как понимаю, такое ведь не всунуть?
...
Рейтинг: 0 / 0
DAO Recordset
    #32495835
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Что значит другой строки? Другой записи? Можно при желании. Или другая строка - это просто другое поле? Тогда вообще никаких проблем.
...
Рейтинг: 0 / 0
DAO Recordset
    #32495839
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, не связанной с записями строки.
...
Рейтинг: 0 / 0
DAO Recordset
    #32495841
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А откуда она берется? Это константа? Или она возвращается какой-то функцией?
...
Рейтинг: 0 / 0
DAO Recordset
    #32495846
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица клиентов. Одно из полей - название. Пользователь вводит в поле название, жмет кнопочку - делается поиск соотв. записей.

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

Отсюда функция от строковой константы и текстового поля, возвращающая true/false.
...
Рейтинг: 0 / 0
DAO Recordset
    #32495850
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
И что мешает поместить вызов этой функции в WHERE?
...
Рейтинг: 0 / 0
DAO Recordset
    #32495852
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наверное, моя тормознутость :)
спасибо.
...
Рейтинг: 0 / 0
DAO Recordset
    #32496195
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда еще вопросик, по поводу вставки функции в WHERE

если функция без параметров, все работает, если есть параметры, то ошибка - "неопределенная вункция в выражении"

есть какие-то особенности в этом случае?
...
Рейтинг: 0 / 0
DAO Recordset
    #32497029
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Если программа выдает ошибку, значит в ней где-то есть ошибка. Не видя программу, точнее сказать не могу.

(Каков вопрос, таков ответ...)
...
Рейтинг: 0 / 0
DAO Recordset
    #32497065
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если убрать вещи, не относящиеся к вопросу, то код -
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public Function StrCmp(strString As String) As Boolean
    StrCmp = True
End Function
                                                    
Private Sub cmdSelectByName_Click()
    Dim strQuery, strString As String
    strString =  "test" 
    strQuery =  "SELECT * FROM tblClients WHERE StrCmp(strString) = true" 
    RecordSourceSetting (strQuery)
End Sub


Выдает ошибку ошибку "Неопределенная функция StrCmp в выражении", я так понимаю с синтаксисом что-то не то.
...
Рейтинг: 0 / 0
DAO Recordset
    #32497080
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не то.

Код: plaintext
1.
strQuery =  "SELECT * FROM tblClients WHERE StrCmp("  & strString &  ") = true" 
...
Рейтинг: 0 / 0
DAO Recordset
    #32497084
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упс...
Код: plaintext
1.
strQuery =  "SELECT * FROM tblClients WHERE StrCmp('" & strString & "') = true" 
...
Рейтинг: 0 / 0
DAO Recordset
    #32497093
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 zz
спасибо, но все равно, не работает.
...
Рейтинг: 0 / 0
DAO Recordset
    #32497100
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а что говорит-то? То же самое?
...
Рейтинг: 0 / 0
DAO Recordset
    #32497107
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub cmdSelectByName_Click()
    Dim strQuery, strString As String
    strString =  "test" 
    
    strQuery =  "SELECT * FROM  tblClients WHERE  StrCmp12('" & strString & "') = true" 
    RecordSourceSetting (strQuery)
End Sub


да, то-же самое.
...
Рейтинг: 0 / 0
DAO Recordset
    #32497114
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А цифирь 12 в названии функции откуда вылезла? У тебя точно сама функция и ее вызов одинаково называются?
...
Рейтинг: 0 / 0
DAO Recordset
    #32497134
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, точно,
12 опечатка
...
Рейтинг: 0 / 0
DAO Recordset
    #32497151
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот это
Код: plaintext
1.
2.
3.
Public Function StrCmp(strString As String) As Boolean
    StrCmp = True
End Function


где находится?
...
Рейтинг: 0 / 0
DAO Recordset
    #32497154
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там-же, где и вызывающая ее функция.
...
Рейтинг: 0 / 0
DAO Recordset
    #32497165
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть в модуле формы, судя по _Click вызывающей процедуры?
...
перенеси свою функцию в отдельный модуль.
...
Рейтинг: 0 / 0
DAO Recordset
    #32497178
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати только что сделал поиск похожих названий клиентов при ошибочном вводе...

за основу взял библиотеку написанную на C++ одним умельцем

что мне в ней понравилось - быстро работает.
по сравнению с аналогичными VB шными - 10 и более быстрее
получился результат
Вычисление похожести, Обновление поля в рекордсете, пересортировка
около 3 секунд на 1000 строк данных при длине искомой фразы 50 символов


алгоритм использования следующий :

открывается рекордсет и в числовое поле "Похожесть" пишется результат функции от сравнения названия и искомой строки

Длл и пример кода могу кинуть если интересно
...
Рейтинг: 0 / 0
DAO Recordset
    #32497181
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, забыл сказать самое главное - находит самые невероятные варианты похожести
...
Рейтинг: 0 / 0
DAO Recordset
    #32497186
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей, а как это стыкуется с данным топиком? :)
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / DAO Recordset
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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