![]() |
|
![]() |
#1 |
Камрад
Join Date: авг 2000
Location: Нарва, Эстония
Сообщений: 236
|
Поиск в Access
Народ кто-нить может помочь сделать поиск для БД в accessе. Детали будут по ПМ
__________________
Добро обязательно победит зло, поставит на колени и зверски убьёт! |
![]() |
[Ответить с цитированием] |
![]() |
#2 |
Администратор
Буржуин проклятый Join Date: мая 2000
Location: Париж, Франция
Сообщений: 10,913
|
Diam0nD - вообще то поиск в Аксессе есть изначально, и делать его не нужно. Что ты имеешь в виду?
|
![]() |
Дневник [Ответить с цитированием] |
![]() |
#3 |
Камрад
Join Date: авг 2000
Location: Нарва, Эстония
Сообщений: 236
|
Я имею ввиду цивилизованный поиск, что-то вроде формы, вводишь данные, нажимаешь поиск, и получаешь результаты в таблице с подчиненной формой.
Надеюсь понятно объяснился. |
![]() |
[Ответить с цитированием] |
![]() |
#4 |
Администратор
Буржуин проклятый Join Date: мая 2000
Location: Париж, Франция
Сообщений: 10,913
|
Diam0nD - аксесса у меня под рукой нет, к сожалению, так что помочь могу только теоретически.
Есть несколько способов сделать то, что тебе нужно. Если поиск предполагается делать по какому то одному полю, то можно указать значение текстового поля формы, где вводятся данные, в качестве критерия для запроса, лежащего в основе таблицы подчиненной формы, и по нажатию кнопки "Поиск" просто обновлять подчиненную форму. Если поле, по которому производится поиск, может быть произвольным, то тебе нужно создать процедуру, которая будет накладывать соответствующий (в зависимости от указанных на основной форме данных) фильтр на таблицу подчиненной формы - что то типа следующего: Private Sub buttonFind_Click () Dim stringFieldName Dim stringFieldValue stringFieldName = Me.comboboxFieldsList.Value stringFieldValue = Me.textboxSearchCriteria.Value Forms![subformWithData].Filter = stringFieldName & " = """ & stringFieldValue & """" Forms![subformWithData].FilterOn = True End Sub Здесь comboboxFieldsList - комбобокс со списком возможных полей, по которым ведется поиск, textboxSearchCriteria - текстовое поле для ввода критерия поиска, subformWithData - подчиненная форма, содержащая таблицу с данными. За верность синтаксиса не ручаюсь, с аксессом в последний раз работал лет пять назад ![]() |
![]() |
Дневник [Ответить с цитированием] |
![]() |
#5 |
Партагеноссе
Join Date: дек 2002
Сообщений: 1,252
|
Для поиска по полю User в подчиненной форме frmUserList в основной форме делаешь текстовое поле xU, на событие Изменение ставишь код
Private Sub xU_Change() Dim strCriteria As String strCriteria = "InStr(1, [User], '" & Me!xU.Text & "') = 1" Set rst = Me![frmUserList].Form.RecordsetClone rst.findfirst strCriteria If rst.nomatch Then MsgBox "Записи не найдены" Else Me![frmUserList].Form.Bookmark = rst.Bookmark Me.xU.SetFocus End If rst.Close End Sub Я обычно добавляю дополнительные функции на событие Клавиша вниз и в подчиненной форме пишу процедуру выделения текущей записи (для визуализации поиска). Код хорош тем, что не убирает все записи подчиненной формы, а позиционирует на записи с искомым текстом |
![]() |
[Ответить с цитированием] |
![]() |
#6 |
Камрад
Join Date: авг 2000
Location: Нарва, Эстония
Сообщений: 236
|
Спасибо, будем думать....
|
![]() |
[Ответить с цитированием] |
![]() |
|
|