у меня есть база данных с пятью столбцов в другой книге под названием 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
Чтобы получить помощь вам нужно, чтобы включить свою собственную попытку, а затем быть конкретными о строке кода, вызывающей проблемы, в противном случае вопрос будет проголосован и, вероятно, закрыт –
здесь, получая данные, но получая комментарий в texbox5 при нажатии на записи в списке, не работает –