|
0 / 0 / 0
Регистрация: 03.04.2008
Сообщений: 39
|
|
Как сотворить поиск записи по базе Access???03.04.2008, 11:04. Показов 7996. Ответов 14
Метки нет (Все метки)
0
|
|
| 03.04.2008, 11:04 | |
|
Ответы с готовыми решениями:
14
Исчезли последние записи в базе Access Поиск по Базе Access поиск по базе Access |
|
Ghost
|
|
| 03.04.2008, 11:08 | |
|
чего? неясен вопрос. Если надо искать по всем таблицам - ищи по всем таблицам.
|
|
|
0 / 0 / 0
Регистрация: 03.04.2008
Сообщений: 39
|
|
| 03.04.2008, 11:16 [ТС] | |
|
Да нет, просто я пока только изучаю VB, а срочно нужно сделать поиск записи в Access. Мне нужен простой пример кода, как строится поиск записи по базе, а дальше я разберусь. Подскажите, если не не сложно. База Access - .mdb файл.
0
|
|
|
Ghost
|
|
| 03.04.2008, 11:49 | |
|
Что значит - поиск записи по базе? Поиск строки в таблицЕ или таблицАХ???
|
|
|
0 / 0 / 0
Регистрация: 03.04.2008
Сообщений: 39
|
|
| 03.04.2008, 12:52 [ТС] | |
|
поиск строки в таблице
0
|
|
|
Ghost
|
|||||||||||
| 03.04.2008, 13:51 | |||||||||||
|
Конкретного поля или целой строки?
Для поля
|
|||||||||||
|
0 / 0 / 0
Регистрация: 03.04.2008
Сообщений: 39
|
|
| 03.04.2008, 14:02 [ТС] | |
|
Большое Вам человеческое спасибо
0
|
|
|
0 / 0 / 0
Регистрация: 20.02.2008
Сообщений: 181
|
|
| 03.04.2008, 14:24 | |
|
Можно воспользоваться FindFirst
Value - что ищем в dbsearch получаем ID поля в табл: [ID], [Name] Set Database = OpenDatabase('x:...???.mdb') 'запросом тоже можно фильтровать используя SELECT ... FROM ... WHERE ... SQL = 'SELECT Names.ID, Names.Name FROM [Names];' Set Recordset = Database.OpenRecordset(SQL) Criteria = 'Name = '' & Value & ''' With Recordset .FindFirst Criteria If .NoMatch Then dbsearch = 0 Else dbsearch = !ID End If End With
0
|
|
|
Ghost
|
|
| 03.04.2008, 14:56 | |
|
тоже честный способ.
Неплохо подходит, когда надо сделать 10-1000 поисков - по крайней мере на 1000 поисках будет быстрее DLookup'а и серии одиночных поисков моими (вышеописанными, т.е. переоткрытия рекордсета) методами. При необходимости провести > 10000 поисков лучше уточнить условия задачи - т.к. все предложенные способы покажут НИЗКОЕ шустробыстрие. |
|
|
Ghost
|
|
| 03.04.2008, 15:00 | |
|
да, в догонку - недоглядел.
Возвращать лучше Null, а не 0 ))))Видел я как-то базу на Access, где в ПКе был 0 - вот повеселиться-то можно было бы )))А уж для SQL Server 0 в PK сделать - как 2 пальца. Резюм: Для одиночного поиска поля - лучше DLookUp Для поиска СТРОКИ - или переоткрытие с фильтром (чуть дольше, чем ) или поиск по FindFirst (чуть быстрее) Для массового поиска - только FindFirst Для очччень массового - тут надо логику писать на SQL - такая переделка сократила у меня время работы проги с ЧАСОВ до МИНУТ (да, код на VBA писал не я) |
|
|
0 / 0 / 0
Регистрация: 20.02.2008
Сообщений: 181
|
|
| 03.04.2008, 16:22 | |
|
Насчёт 0 согласен. К тому-же если возврат будет не ID(Primary Key) (при поиске значение всегда будет не NULL) а другое поле.
Но пример на то и пример - не есть готовое решение. Можно позволить вольности. Обработку возможных ошибок тоже вставлять надо. Глядишь и написали бы целое НЕЧТО тут )'Для очччень массового ' логика простая - дополнительно фильтруем. Не SQL = 'SELECT Names.ID, Names.Name FROM [Names];' а SQL = 'SELECT Names.ID, Names.Name FROM [Names] WHERE (((Names.Name)=' & DQUOTE & Value & DQUOTE & '));' (где DQUOTE = '''') C уважением, ma3ai
0
|
|
|
Ghost
|
|
| 03.04.2008, 18:03 | |
|
хмммм....
под оччччень массовым я понимал работу с 20000 тыс записей в одной таблице, к которой прсобачено еще так 5 таблиц с еще по 10000 тыс записей ))И тогда вспоминаем про запросы, которые (вот зуб даю ) работают на потоке (см. описанный выше объем данных) ну гораааааздо быстрее ))А если я по пьяной лавочке )) и индексов грамотно напихаю, то тогда просто даже кофе попить не успею ))))
|
|
|
0 / 0 / 0
Регистрация: 20.02.2008
Сообщений: 181
|
|
| 03.04.2008, 18:23 | |
|
Дык то оно и есть ... можно и 500000 раз такое дело ...
P.S. но кофе много не пей - говорят это вредно
0
|
|
|
0 / 0 / 0
Регистрация: 03.04.2008
Сообщений: 39
|
|
| 07.04.2008, 08:08 [ТС] | |
|
В общем, мужики, получилось во так:
Private Sub Поле_Поиск_AfterUpdate() If Len(Trim(Поле_поиск)) <> 0 Then Организация.SetFocus DoCmd.FindRecord Trim(Поле_поиск), acAnywhere, False, acSearchAll, False, acCurrent, True End If End Sub Работает как надо. Спасибо за консультацию.
0
|
|
|
Ghost
|
|
| 07.04.2008, 17:13 | |
|
хммммммм........
Ню-ню, надо было уточнять, ГДЕ ищем - в БАЗЕ или НА ФОРМЕ. |
|
| 07.04.2008, 17:13 | |
|
Помогаю со студенческими работами здесь
15
Поиск данных в базе access Поиск по названию в базе Access Быстрый поиск по базе в Access Поиск и сравнение в базе Access Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|