Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / два листбокса.... / 5 сообщений из 5, страница 1 из 1
24.11.2003, 04:06
    #32332513
Spate
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
два листбокса....
Подскажите, пожалуйста, где ошибка?\r
\r
у меня в форме два листбокса, выбрав значение в одном, я выбираю одно или несколько значний в другом , затем на кнопке висит вот такой код:\r
\r
Private Sub Кнопка9_Click()\r
Dim lb As ListBox\r
Dim strWhere As String\r
Dim strCriteria As String\r
Dim stDocName As String\r
Dim i As Long\r
Dim lb2 As ListBox\r
Dim strWhere2 As String\r
Dim strCriteria2 As String\r
\r
\r
Set lb2 = Me.[CodeD]\r
\'MsgBox lb2\r
If lb2.ItemsSelected.Count <> 0 Then\r
\r
strCriteria2 = "buys.CodeD Like \'" \'\r
strWhere2 = strCriteria2\r
For i = 0 To lb2.ListCount - 1\r
If lb2.Selected(i) Then\r
If strWhere2 = strCriteria2 Then\r
strWhere2 = strWhere2 & lb2.Column(0, i) & "\'"\r
Else\r
strWhere2 = strWhere2 & " OR " & strCriteria2 & lb2.Column(0, i) & "\'"\r
End If\r
End If\r
Next\r
MsgBox strWhere2\r
\r
End If\r
\r
Set lb = Me.[ChoiceTM]\r
\'MsgBox lb ---------> вот здесь значенье второго листбокса при отстутствии нсвязного выделения еще уникальное (то которое должно быть) а при \r
\t\t\tпростом несвязанном выделении тут выдается ошибка: run-time error 94, Invalid Use of Null.\r
If lb.ItemsSelected.Count <> 0 Then\r
\r
strCriteria = "buys.CodeTM Like \'" \'\r
strWhere = strCriteria\r
For i = 0 To lb.ListCount - 1\r
If lb.Selected(i) Then\r
If strWhere = strCriteria Then\r
strWhere = strWhere & lb.Column(0, i) & "\'"\r
Else\r
strWhere = strWhere & " OR " & strCriteria & lb.Column(0, i) & "\'"\r
End If\r
End If\r
Next\r
MsgBox strWhere\r
----------> а вот тут оно уже продублировано из первого листбокса. :((\r
\r
End If\r
\r
strWhere = strWhere2 & " AND " & strWhere\r
\r
MsgBox strWhere\r
On Error GoTo Err_ChoiceTM_L\r
stDocName = "reportDistribToShopTM2"\r
DoCmd.OpenReport stDocName, acPreview, , strWhere\r
\r
Exit_ChoiceTM_L:\r
Exit Sub\r
\r
Err_ChoiceTM_L:\r
\'MsgBox Err.Description\r
Resume Exit_ChoiceTM_L\r
End Sub\r
\r
это моя вольная интерпритация совета Hummer\'а по моему прошлому вопросу вот здесь /topic/56586&hl= \r
\r
Вот после второго IF ( второй листбокс) значение strWhere дублируется из strWhere2 , другими словами теряется то что я выбрал во втором листбоксе.\r
\r
Как исправить это сие?
...
Рейтинг: 0 / 0
24.11.2003, 10:03
    #32332600
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
два листбокса....
Какой-то длинный текст, некогда читать.
Поставь брикпойнт, запусти программу, поcредством f8 иди по строчкам, и смотри, где ошибка.
Если в процессе выполнения навести курсор мышки на переменную - вылезет ее содержимое. Если в ctrl-g написать ?myfunct(1) - выполнится myfunct. И сам все найдешь.
...
Рейтинг: 0 / 0
26.11.2003, 17:45
    #32335855
Spate
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
два листбокса....
последовал Вашему совету, и вот что выяснил:
мой листбок формируется в источнике данных- запросе, в этой же форме.
При этом условием отбора являются значения из первого листбокса.

если я ставлю второй листбокс на одинарное выделение, то все отлично сортируется и выводитсся в отчете ,
а если как сейчас, выделение простое, то вот какое сообщение на брекПоинте висит.
If lb.ItemsSelected.Count <> 0 Then -----> вот здесь
object variable or with Block variable not set

если я в первом листбоксе выделил третье поле, а во втором первое и пятое,
то значения этоих выделений второго листбокса теряются, а вместо них там висит значение выделения первого листбокса.

в акссесе я чайник.. :-\
...
Рейтинг: 0 / 0
26.11.2003, 18:26
    #32335937
Spate
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
два листбокса....
ура!!!
сам дошел!!! :-))
проблема была вот в чем
strWhere = strWhere & lb.Column(0, i) & "'"
Else
strWhere = strWhere & " OR " & strCriteria & lb.Column(0, i) & "'"

а надо было взять второй лист бокс!!!
strWhere = strWhere & lb.Column(1, i) & "'"
Else
strWhere = strWhere & " OR " & strCriteria & lb.Column(1, i) & "'"
...
Рейтинг: 0 / 0
26.11.2003, 20:48
    #32336032
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
два листбокса....
Вот и славненько :)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / два листбокса.... / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]