Страницы: 1
RSS
При обращении к базе данных фильтр по двум полям
 
Необходима помощь. Имеется база данных с 4 полями. В Excel при запуске кода данные фильтруются по одному из полей и загружаются на форму в свой ListBox для каждого поля. Задача: как отфильтровать данные по двум полям. Для одного поля следующий код:  
Sub ADO_Demo6()  
   Dim DBFullName As String  
   Dim Cnct As String, Src As String  
   Dim Connection As ADODB.Connection  
   Dim Recordset As ADODB.Recordset  
   Dim Col As Integer  
   Dim z As String  
z = UserForm5.TextBox1.Text 'значение которое необходимо найти в поле профессия  
If z = "" Then Exit Sub  
'   Информация о базе данных  
   DBFullName = ThisWorkbook.Path & "\Доплаты.mdb"' путь к базе данных  
'   Открытие соединения  
   Set Connection = New ADODB.Connection  
   Cnct = "Provider=Microsoft.Jet.OLEDB.4.0; "  
   Cnct = Cnct & "Data Source=" & DBFullName & ";"  
   Connection.Open ConnectionString:=Cnct  
'   Создание объекта RecordSet  
   Set Recordset = New ADODB.Recordset  
   With Recordset  
'       Фильтр  
' КАК ТО ВОЗМОЖНО ЗАДАТЬ ФИЛЬТР ПО ДВУМ ПОЛЯМ ПРОФЕССИЯ И Z И ЕЩЕ ОТРАСЛЬ И ЗНАЧЕНИЕ???  
       Src = "SELECT * FROM Отпуск WHERE Профессия Like '%" + z + "%'" 'таблица ОТПУСК в поле Профессия ищем совпадение с введенным значением пользователя  
 
       On Error Resume Next  
       .Open Source:=Src, ActiveConnection:=Connection, CursorType:=adOpenStatic  
       End With  
Do Until Recordset.EOF  
   X = Recordset.Fields(Col)  
       With UserForm5.ListBox2  
       .AddItem Recordset.Fields("Профессия").Value 'отфильтрованные значения из поля ПРОФЕССИЯ заносятся в ListBox  
       End With  
       With UserForm5.ListBox5  
       .AddItem Recordset.Fields("Отрасль").Value'отфильтрованные значения по полю ПРОФЕССИЯ из поля ОТРАСЛЬ заносятся в ListBox  
       End With  
 
   Recordset.MoveNext  
Loop  
   Set Recordset = Nothing  
   Connection.Close  
   Set Connection = Nothing  
End Sub
Fox
 
Я для фильтрации двумерного массива по нескольким полям (с последующим занесением в листбокс) использую этот код: http://excelvba.ru/code/ArrAutofilter
 
{quote}{login=EducatedFool}{date=02.03.2011 07:33}{thema=}{post}Я для фильтрации двумерного массива по нескольким полям (с последующим занесением в листбокс) использую этот код: http://excelvba.ru/code/ArrAutofilter{/post}{/quote}  
Спасибо, буду разбираться
Fox
Страницы: 1
Читают тему
Наверх