2015-09-22 2 views
0

у меня есть база данных с пятью столбцов в другой книге под названием db.xls: Идентификатор_пользователь - дата - наименование - предмет - комментарииUserForm Заселите ListBox с критериями

я заполнить это с формой ввода данных (работы отлично). Проблема в UserForm, мне нужно получить определенные записи по определенным критериям в списке. Мне нужно поставить имя И предмет в двух текстовых или выпадающих списков и с этими двумя критериями заполнения ListBox, в порядке возрастания даты + субъекта и когда я нажимаю на любые записи ListBox, это поиск и дайте мне комментарий, который идет с этой строкой в ​​текстовом поле.

КОД:

Private Sub searchbutton_Click() 

Dim nwb As Workbook 

Application.ScreenUpdating = False 

Set nwb = Workbooks.Open("C:\db.xls", _ 
False, True) 

txtsubject.Text = "" 

Set xSht = nwb.Sheets("notes") 
    Lastrow = xSht.Range("C" & Rows.Count).End(xlUp).Row 
    strSearch = txtname.Text 
       Set aCell = xSht.Range("C1:C" & Lastrow).Find(What:=strSearch, LookIn:=xlFormulas, _ 
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
MatchCase:=False, SearchFormat:=False) 

    If Not aCell Is Nothing And txtsubject.Value = "" Then 
    GoTo refvalid 
Else 
MsgBox "no entries for " & txtname.Value & ". ", Title:="result of search" 
    End If 
Exit Sub 
refvalid: 

row_number = 0 
ListBox1.Clear 
Do 
DoEvents 
row_number = row_number + 1 
item_in_review = nwb.Sheets("notes").Range("C" & row_number) 
If item_in_review = txtname.Text Then 
txtsubject.Text = nwb.Sheets("notes").Range("A" & row_number) 
'concatenated date + subject in column F 
ListBox1.AddItem nwb.Sheets("notes").Range("F" & row_number) 

End If 
Loop Until item_in_review = "" 
'in module, sortlistbox to order then ascending 
Run "SortListBox", ListBox1, 0, 1, 1 

nwb.Close False ' close the source workbook without saving changes 
Set nwb = Nothing 
Application.ScreenUpdating = True 
With ListBox1 

.ColumnCount = 5 
.MultiSelect = fmMultiSelectSingle 
.TextColumn = 1 
.BoundColumn = 1 
If ListBox1.Value <> "" Then 
TextBox35.Value = " [" & ListBox1.Text & "] : " & ListBox1.Value 
End If 

End With 
End Sub 

'==================================================== 

Private Sub ListBox1_Click() 
If ListBox1.Value <> "" Then 
TextBox5.Value = " [" & ListBox1.Text & "] : " & ListBox1.Value 
End If 

End Sub 
+0

Чтобы получить помощь вам нужно, чтобы включить свою собственную попытку, а затем быть конкретными о строке кода, вызывающей проблемы, в противном случае вопрос будет проголосован и, вероятно, закрыт –

+0

здесь, получая данные, но получая комментарий в texbox5 при нажатии на записи в списке, не работает –

ответ

1

Добавление этого кода после ListBox1.AddItem решить проблему:

ListBox1.List(ListBox1.ListCount - 1, 1) = nwb.Sheets("notes").Range("F" & row_number) 
Смежные вопросы