2015-10-12 3 views
0

Это я снова.^_^ Могу ли я спросить, как я могу отфильтровать определенную запись по категориям? Я знаю только, как фильтровать только одну категорию. Вот мой код. Пожалуйста, помогите мне. Благодаря!Как искать по категориям?

If txtName.Text = "" Then 
MsgBox "Please enter what you want to filter.", vbInformation, "Message Box" 
txtName.SetFocus 

Else 
If Not myRS.EditMode And myRS.BOF = True Then 
MsgBox "No record found!", vbCritical, "Search Result" 

Else 
myRS.Filter = "TL LIKE '" & txtName.Text & "*'" 
Set DataGrid1.DataSource = myRS 

DataGrid1.Columns(0).Caption = "Work Group" 
DataGrid1.Columns(1).Caption = "Team Leader" 
DataGrid1.Columns(2).Caption = "Dept Head" 
DataGrid1.Columns(3).Caption = "Participants" 
DataGrid1.Columns(4).Caption = "Date Created" 
DataGrid1.Columns(5).Caption = "Coach" 
DataGrid1.Columns(6).Caption = "Problem" 
DataGrid1.Columns(7).Caption = "Measure Impacted" 
DataGrid1.Columns(8).Caption = "Status" 
DataGrid1.Columns(9).Caption = "Where" 
DataGrid1.Columns(10).Caption = "When" 
DataGrid1.Columns(11).Caption = "How Much/Many" 
DataGrid1.Columns(12).Caption = "Who" 
+0

Какой тип записей вы используете? Для ADO это будет примерно так: «TL LIKE ... AND/OR XYZ LIKE ...». Для получения дополнительной информации вы можете ознакомиться с описанием [ADO Filter] (https://msdn.microsoft.com/en-us/library/ee275540 (v = bts.10) .aspx) – therak

+0

yes Я использую ADO. как я могу отфильтровать свою запись по категориям? –

+0

Строка: myRS.Filter = ... IS, как вы фильтруете набор записей. Из остальной части кода это выглядит так: TL - это имя столбца для Team Leader. Когда вы пишете код, вы сможете фильтровать только TL. Чтобы исправить это, вам нужно будет построить строку .Filter на основе пользовательского ввода. Я бы предложил заполнить список/поле со списком с именами полей для пользователя, чтобы выбрать, а затем создать .Filter на основе выбранного текста из списка/комбо и ввода пользователя в txtName. –

ответ

0

Предположим, что ваш запрос для заполнения myRS выглядит что-то вроде

Select WorkGroup, TL, DeptHead, ...., Category From blah blah 

Вы можете изменить строку

myRS.Filter = "TL LIKE '" & txtName.Text & "*' OR Category LIKE '" & txtName.Text & "*'" 

, который даст вам как TL и категории, которые соответствуют txtName, или вы можете создать новое текстовое поле в дополнение к txtName, возможно txtCategory, а затем изменить строку на

myRS.Filter = "TL LIKE '" & txtName.Text & "*' AND Category LIKE '" & txtCategory.Text & "*'" 
0

Добавить комбинированный блок в форме. и заполнить его

dim item 
Combo1.clear 
For Each item In Array("Work Group", "Team Leader", "Dept Head" _ 
      , "Participants", "Date Created", "Coach" _ 
      , "Problem", "Measure Impacted", "Status" _ 
      , "Where", "When", "How Much/Many", "Who") 

    Combo1.AddItem item 
Next 

затем:

i=combo1.listindex 
if(i=-1) then 
    'ErrorMessageHere 
    exit sub 
end if 
myRS.Filter = "[" & myRS.Fields(i).Name & "] LIKE '*" & txtName.Text & "*'" 
+0

Он дает эту ошибку «Элемент не может быть найден в коллекции, соответствующей запрашиваемому имени или порядку». и выделил эту строку ** myRS.Filter = "[" & myRS.Fields (i) .Name & "] LIKE '*" & txtName.Text & "*'" ** –

+0

Я предполагаю, что myRS - это набор записей, isn Не так ли? – milevyo

+0

myRS.Filter = myRS.Fields (i) .Name & "LIKE '*" & txtName.Text & "*'" – milevyo

Смежные вопросы