powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как выбрать в ListBox несколько значений одновременно
25 сообщений из 63, страница 2 из 3
Как выбрать в ListBox несколько значений одновременно
    #32759312
alef120
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
иеще не пойму зачем здесь Print Me
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32760165
alef120
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так ничего и не получается
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32760179
Фотография GUESТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alef120так ничего и не получается

для того, чтобы получилось нужно просто сесть и подумать... почитать хелп на крайняк

не уверен, что каждый из присутствующих согласится - но (ИМХО) ООП отнюдь не высшая математика

не получается что - малтиселект в первом комбобоксе?
не получается что - подфильтровать рекордсет второго комбобокса?
не получается что - совместить малтиселект в первом и соответсвующую выборку во втором?

что не получается?
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32760184
alef120
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
выбрав из первого бокса значение-я
не получается увидеть что либо во втором боксе
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32760189
alef120
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
For Each varItem In Me.lboxDate.ItemsSelected
Debug.Print Me.lboxDate.Column(Me.lboxDate.BoundColumn - 1, varItem) & ",";
Next varItem

вот это персчитывает мне кол-во записей в боксе,а что с ними делать далше,как увидеть конкретный текст ведь мультиселект возвращает Нул
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32760230
alef120
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
туго, но начинает доходить
с помощью свойства СЕЛЕКТ я определяю какие строки списка1 = Тру, но список уменя постоянно меняющийся по запросу
в запрос для списка2 мне нужно вставить конкретный текст
как мне его вытащить из списка1 ?
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32760242
alef120
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
продолжаю беседовать сам с собой

With lboxDate
For Each varItem In .ItemsSelected
strList = strList & .Column(0, varItem)
Next varItem
End With
с помощью этого я вытащил текстовое значение ЛистВокса, теперь мучаюсь как этот strList вставить в запрос ?
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32760250
alef120
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спокойной ночи ! Надеюсь завтра кто-нибудь поможет
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32760252
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alef120продолжаю беседовать сам с собой

With lboxDate
For Each varItem In .ItemsSelected
strList = strList & .Column(0, varItem)
Next varItem
End With
с помощью этого я вытащил текстовое значение ЛистВокса, теперь мучаюсь как этот strList вставить в запрос ?

ответ на последний вопрос был дан позавчера:
http://www.sql.ru/forum/actualthread.aspx?tid=133392&pg=-1#1066391

подобный цикл Владимир Саныч учил писать примерно так
(в предположении строковых значений целевого поля в таблице)


Код: plaintext
1.
2.
3.
4.
5.
6.
  Dim varItem
  Dim varStr
  varStr = Null
  For Each varItem In Me.lst0.ItemsSelected
    varStr = varStr + ","
    varStr = varStr & "'" & Replace(lst0.Column( 1 , varItem), "'",  "''") & "'"   
  Next

тогда запрос запишется так

"select * from tbl where tbl.fld in (" & varStr & ")"

ЗЫ
Санычева первоисточника не нашел, штоб пальцем показать, но помню,
что красота необнакновенная была...
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32760261
Фотография GUESТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victosha[quot alef120](в предположении строковых значений целевого поля в таблице)

ИМХО или если в IN() нужна дата, то написать функцию вида:

Public Function t() As String
For Each varSelected In Forms![frmMyForm]![lbxDates].ItemsSelected
d = Format(Forms!frmMyForm!lbxDates.Column(0, varSelected), "\#dd\-mmm\-yy\#")
t = t & d & ","
Next varSelected
End Function

соответственно на AfterUpdate первого лист бокса определять RowSource второго лист бокса:

Me.LbxProducts.RowSource = "SELECT ProductID, OrderDate FROM tblOrders INNER JOIN tblProducts ON tblOrders.OrderID = tblProducts.OrderID WHERE (((OrderDate) In ( " & Left(t(), Len(t) - 1) & ")));"

только ИМХО проверочку надо прикрутить - на случай если ни одного значения не выбрано в lbxDates

кста... а можно просто в RowSource - запросе второго лист бокса прописать условие IN(t()) и перезапрашивать его - Requery?
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32760274
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GUESТ Victosha[quot alef120](в предположении строковых значений целевого поля в таблице)

ИМХО или если в IN() нужна дата, то написать функцию вида:

Public Function t() As String
For Each varSelected In Forms![frmMyForm]![lbxDates].ItemsSelected
d = Format(Forms!frmMyForm!lbxDates.Column(0, varSelected), "\#dd\-mmm\-yy\#")
t = t & d & ","
Next varSelected
End Function


ну, уж ежели пошла такая пъянка, то переписывать я бы так стал

Код: plaintext
1.
varStr = varStr + ","
varStr = varStr & FormatValueForSQL( lst0.Column( 1 , varItem))

для Jet функция могла бы выглядеть так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Function formatValueForSQL(tValue As Variant) As String
Dim curType As Long
  curType = VarType(tValue)
  Select Case curType
   Case vbDate
      formatValueForSQL = FormatDateForSql(CDate(tValue))
   Case vbString
      formatValueForSQL = FormatStringForSQL(CStr(tValue))
   Case vbDouble, vbCurrency, vbDecimal
      formatValueForSQL = FormatNumberForSQL(CDbl(tValue))
   Case vbEmpty, vbNull, vbObject, vbUserDefinedType, vbArray
      Err.Raise vbObjectError + mySQLFormatError, "FormatValueForSQL", _
      "Полученный тип данных не может быть непосредственно отформатирован в значение для фильтра"
   Case Else
      formatValueForSQL = CStr(tValue)
  End Select
End Function

Private Function FormatNumberForSQL(tValue As Variant) As String
  FormatNumberForSQL = Str(tValue)
End Function

Private Function FormatDateForSql(ByVal tDate As Date) As String
  FormatDateForSql = Str(CDbl(tDate))
End Function

Private Function FormatStringForSQL(ByVal vString As String) As String
  Dim retStr As String
  retStr = Replace(vString, "'", "''")
  retStr = "'" & retStr & "'"
  FormatStringForSQL = retStr
End Function


GUESТ
<...>

только ИМХО проверочку надо прикрутить - на случай если ни одного значения не выбрано в lbxDates


ItemsSelected.Count > 0

GUESТ
кста... а можно просто в RowSource - запросе второго лист бокса прописать условие IN(t()) и перезапрашивать его - Requery?

можно. но я менял бы текст запроса, пока возможно...
а потом бы сел бы нос расковыривать...
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32760410
Фотография GUESТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VictoshaFormatValueForSQL

5

от ить как! положил в копилку...

<? и о чем я раньше-то думал ?>
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32761262
alef120
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот это уже конкретные ответы
всем спасибо , особенно Victoshe
теперь буду пробовать внедрять это в жизнь
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32761347
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"внедряй"!


(с выражением лица)
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32761825
alef120
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
опять не получается
написал код на lstSupplier_AfterUpdate()

Dim varItem
Dim varStr

varStr = Null
For Each varItem In Me.lstSupplier.ItemsSelected
varStr = varStr + ","
varStr = varStr & "'" & Replace(lstSupplier.Column(0, varItem), "'", "''") & "'"
Next

lstDate = Empty
lstNomer = Empty
lstDate.Requery
lstNomer.Requery

в lstDate должны появиться даты поставок выбранного поставщика
создал простой запрос по двум полям Supplier и DatePost
в RowSource для DatePost вставил это выражение

select * from qryDatePost where qryDatepost.Supplier in (" & varStr & ")

выходит окно и запрашивает значение для qryDatepost.Supplier
помогите исправить
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32762298
alef120
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alef120опять не получается
написал код на lstSupplier_AfterUpdate()

Dim varItem
Dim varStr

varStr = Null
For Each varItem In Me.lstSupplier.ItemsSelected
varStr = varStr + ","
varStr = varStr & "'" & Replace(lstSupplier.Column(0, varItem), "'", "''") & "'"
Next

lstDate = Empty
lstNomer = Empty
lstDate.Requery
lstNomer.Requery

в lstDate должны появиться даты поставок выбранного поставщика
создал простой запрос по двум полям Supplier и DatePost
в RowSource для DatePost вставил это выражение

select * from qryDatePost where qryDatepost.Supplier in (" & varStr & ")

выходит окно и запрашивает значение для qryDatepost.Supplier
помогите исправить
???
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32763524
alef120
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помогите кто-нибудь!!!
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32763539
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у тебя поле Supplier точно присутствует в qryDatepost?
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32763571
alef120
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kelmeу тебя поле Supplier точно присутствует в qryDatepost?

конечно,но даже когда я вручную ввожу значение в ВОХ, который запрашивает условие для qryDatepost.Supplier

все равно lstDate- пустой
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32763614
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cкинь значение varStr
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32763646
alef120
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kelmecкинь значение varStr
",'Topstone'"
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32763668
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если так
For Each varItem In Me.lstSupplier.ItemsSelected
if not isnull(varstr) then varStr = varStr + ","
varStr = varStr & "'" & Replace(lstSupplier.Column(0, varItem), "'", "''") & "'"
Next
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32763720
alef120
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сделал как ты сказал

For Each varItem In Me.lstSupplier.ItemsSelected
If Not IsNull(varStr) Then

varStr = varStr + ","
varStr = varStr & "'" & Replace(lstSupplier.Column(0, varItem), "'", "''") & "'"

End If

Next


но у меня проблема не в If Not IsNull
varStr видит правильное значение, я просто не момогу передать его в запрос
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32763728
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alef120сделал как ты сказал

For Each varItem In Me.lstSupplier.ItemsSelected
varStr = varStr & "'" & Replace(lstSupplier.Column(0, varItem), "'", "''") & "'"

End If

Next


но у меня проблема не в If Not IsNull
varStr видит правильное значение, я просто не момогу передать его в запрос

cтоп :)
у тебя varStr всё время null будет :)

надо так:
If Not IsNull(varStr) Then varStr = varStr + ","
...
Рейтинг: 0 / 0
Как выбрать в ListBox несколько значений одновременно
    #32763740
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я это всё к тому, что меня запятая смущает в ",'Topstone'", у тебя проверка идёт не на "'Topstone'", а на ",'Topstone'"
...
Рейтинг: 0 / 0
25 сообщений из 63, страница 2 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как выбрать в ListBox несколько значений одновременно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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