|
|
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
как передать из списка в форме в запрос несколько значений этого списка для того , что бы отфильтровать в запросе данные, по результату выделения в форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 14:19 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
такими делами удобнее заняться с таблицей: делаешь в ней поле с галкой ставишь галку для нужных объединяешь эту таблицу с таблицей данный в запросе и ставишь фильтр: брать тока те, где стоит галка. ВСЕ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 14:38 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
проверить св-во .Selected (см. справку). Накидать идентификаторы записей в авоську (строку " IN(x,x,x,x,x,)") и прицепить ее к строке WHERE запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 14:52 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
То assa : Хоть этот пост и не я открыл, но мне тоже это надо будет делать и вот тоже ломал голову как. Ты подкинул мне светлую(???) мыслишку. :)) Пасибочки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 14:56 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
Расшифруйте, пожалуйста, 399963 сообщение.Я не знаю как найти это свойство, и по справке никак не докопаюсь.:-( Это свойство у моего списка? запрос в режиме SQL выгладит так: SELECT ShopManagerSpecialize.CodeTMSpecialize, TradeMark.TradeMarkR FROM TradeMark INNER JOIN ((ShopInfo INNER JOIN ShopManager ON ShopInfo.CodeSI = ShopManager.CodeSI) INNER JOIN ShopManagerSpecialize ON ShopManager.CodeShM = ShopManagerSpecialize.CodeShM) ON TradeMark.CodeTM = ShopManagerSpecialize.CodeTMSpecialize WHERE (((ShopManagerSpecialize.CodeTMSpecialize) Like [Forms]![formaFIOsellerALL]![choiceTM])); запрос открывается отчетом.Отчет открывается формой, в которой есть только этот список : (поле choiceTM). Private Sub ChoiceTM_AfterUpdate() On Error GoTo Err_ChoiceTM_AfterUpdate Dim stDocName As String stDocName = "reportFIOsellerALL" DoCmd.OpenReport stDocName, acPreview Exit_ChoiceTM_AfterUpdate: Exit Sub Err_ChoiceTM_AfterUpdate: 'MsgBox Err.Description Resume Exit_ChoiceTM_AfterUpdate End Sub Когда я вместо списка делал поле со списком, и соотвественно его подставлял в в запрос, то результат выдавался, но только для одного выбранного значения, а мне к несчастью, нужно чтобы отчет выдавал результат нескольких значений списка choiceTM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 18:01 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
Не связанное выделение уже научили делать, как я понял? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Ну примерно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 18:15 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
а как это сделать- собрать строку в where? у листбокса имя ChoiceTM. Куда вставлять Ваш код? я так понимаю, что вот в этом месте что то должно поменяться? WHERE (((ShopManagerSpecialize.CodeTMSpecialize) Like [Forms]![formaFIOsellerALL]![choiceTM])); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 11:27 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
Под кнопку на форме с листбоксом вставляем код. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 11:51 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
Лучше использовать цикл dim var as Variant For each var in list.ItemsSelected вместо For i = 0 To lb.ListCount - 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 11:54 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
2 Senin Viktor Ну да, так быстрее будет:) Не додумал немного, просто писалось быстро и на примерном листе (небольшом). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 11:56 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
В коде ошибка есть - присвоение lb нужно делать раньше первого IF:) Ghjcnj Ша добавил потом не подумавши:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 11:57 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
Не, Like + OR оно конечно хорошо, но рыхло (все таки есть ограничение на длину SQL инструкции). In(,,,,,) значительно компактнее. Я для сбора строк использую че -нить наподобие: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. И вызываю ее под разными соусами (sep ="," | " OR " | " AND ") для сшивок strWhere. Пополнив джентельменский набор ф-ей наподобие: Код: plaintext 1. 2. 3. 4. 5. 6. можно покрыть большую часть потребностей по динамическому сбору SQL строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 12:23 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за участие в этой проблеме! И помогите сделать наверное последниый шаг %-\ сейчас у меня на кнопке, в форме которая вызывает отчет,благодаря вам, висит вот этот код: Private Sub Кнопка9_Click() Dim lb As ListBox Dim strWhere As String Dim strCriteria As String Dim stDocName As String Dim i As Long Set lb = Me.[ChoiceTM] If lb.ItemsSelected.Count <> 0 Then strCriteria = "ShopManagerSpecialize.CodeTMSpecialize Like '" ' strWhere = strCriteria For i = 0 To lb.ListCount - 1 If lb.Selected(i) Then If strWhere = strCriteria Then strWhere = strWhere & lb.Column(0, i) & "'" Else strWhere = strWhere & " OR " & strCriteria & lb.Column(0, i) & "'" End If End If Next MsgBox strWhere End If On Error GoTo Err_ChoiceTM_L stDocName = "reportFIOsellerALL" DoCmd.OpenReport stDocName, acPreview Exit_ChoiceTM_L: Exit Sub Err_ChoiceTM_L: MsgBox Err.Description Resume Exit_ChoiceTM_L End Sub Отчет использует запрос, который я собрал в конструкторе, и чтобы его здесь показать, я его представил в виде SQL. SELECT ShopManagerSpecialize.CodeTMSpecialize, TradeMark.TradeMarkR FROM TradeMark INNER JOIN ((ShopInfo INNER JOIN ShopManager ON ShopInfo.CodeSI = ShopManager.CodeSI) INNER JOIN ShopManagerSpecialize ON ShopManager.CodeShM = ShopManagerSpecialize.CodeShM) ON TradeMark.CodeTM = ShopManagerSpecialize.CodeTMSpecialize WHERE (((ShopManagerSpecialize.CodeTMSpecialize) Like '6' Or (ShopManagerSpecialize.CodeTMSpecialize) Like '16')); в данном примере я подставил просто два числа 6 и 16 чтобы мне самому было понятнее как пишется условие отбора. Но вопрос вот в чем: я уже пробовал подставлять так: SELECT ShopManagerSpecialize.CodeTMSpecialize, TradeMark.TradeMarkR FROM TradeMark INNER JOIN ((ShopInfo INNER JOIN ShopManager ON ShopInfo.CodeSI = ShopManager.CodeSI) INNER JOIN ShopManagerSpecialize ON ShopManager.CodeShM = ShopManagerSpecialize.CodeShM) ON TradeMark.CodeTM = ShopManagerSpecialize.CodeTMSpecialize WHERE ('strWhere'); с вариантами скобок, ковычек :-(, но похоже, что при таком подходе, данные не подставляются, а в WHERE используетсся просто само слово strWhere, а не то что эта переменная должна нести в себе. вот что собирается при выборе двух значений из списка "ShopManagerSpecialize.CodeTMSpecialize Like '6' OR ShopManagerSpecialize.CodeTMSpecialize Like '16'" после нажатия кнопки в форме, но еще раз повторюсь, похоже что эта строка в запрос не передается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2003, 12:41 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
Если в запрос вставлено имя переменной, то оно там не распознается. Надо вставить значение переменной. То есть: strSelect = ... & strWhere таким образом, чтобы значение strWhere стало частью значения strSelect. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2003, 14:56 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
напишите пожалуйста что куда поставить исходя из моего примера- никак не соображу сам :-(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 20:55 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
В этом примере составляется некий стринг: strWhere = strWhere & ... Точно таким же образом надо этот стринг запихать в селект. Не имя его, а сам стринг. strSelect = ... & strWhere ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 21:12 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
прошу прощения за то, что торможу, но вот куда конкретно вписать ваш пример в моем запросе???: В этом примере составляется некий стринг: strWhere = strWhere & ... Точно таким же образом надо этот стринг запихать в селект. Не имя его, а сам стринг. strSelect = ... & strWhere SELECT ShopManagerSpecialize.CodeTMSpecialize, TradeMark.TradeMarkR FROM TradeMark INNER JOIN ((ShopInfo INNER JOIN ShopManager ON ShopInfo.CodeSI = ShopManager.CodeSI) INNER JOIN ShopManagerSpecialize ON ShopManager.CodeShM = ShopManagerSpecialize.CodeShM) ON TradeMark.CodeTM = ShopManagerSpecialize.CodeTMSpecialize WHERE ('strWhere'); с вариантами скобок, ковычек :-(, но похоже, что при таком подходе, данные не подставляются, а в WHERE используетсся просто само слово strWhere, а не то что эта переменная должна нести в себе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2003, 04:52 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
> но похоже, что при таком подходе, данные не подставляются, а в WHERE используетсся просто само слово strWhere, а не то что эта переменная должна нести в себе. Вот именно это и надо исправить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2003, 15:21 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
но вот именно что как и где я и не могу дотумкать :-((( Пожалуйста, впешите в пример моего запроса правильную строку подстановки фильтра выбранного из списка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2003, 12:28 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
А как выглядит программа, которая запихивает буквы "strWhere" в стринг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2003, 12:38 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
2 ВС В сообщении выше представлен текст программы. 2 Spate Код: plaintext 1. В источнике данных репорта ставишь запрос без Where. Должно работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2003, 12:54 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
Hummer писал:В сообщении выше представлен текст программы. В котором? Я прошу программу, которая запихивает буквы "strWhere" в стринг. Выше я вижу только сам стринг, полученный при помощи какой-то программы, и вижу программу, которая сочиняет strWhere, который нигде не используется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2003, 13:04 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
2 Владимир Саныч Не будем разводить демагогию. Если прочитать всю ветку, то становится ясно, что автор ветки привёл текст запроса с неправильной вставкой переменной в запрос, вот и всё, Вы сами это поняли (strSelect = ... & strWhere (Ваше сообщение 404775)), автор этого не понял и не понял, что нужно сделать, чтобы всё заработало. Он в конструкторе в запрос вставляет в условие Where переменную, потом смотрит текст запроса и получает имя переменной в кавычках. Это следут из поста автора за номером 402641. ("Отчет использует запрос, который я собрал в конструкторе, и чтобы его здесь показать, я его представил в виде SQL"). Итоговая строка запроса в коде нигде не формируется, как это следует из того же поста. 2 Spate Нужно объявить строковую переменную (strSelect) и сделать то, что предложил Владимир Саныч (strSelect = ... & strWhere, где вместо многоточия текст запроса с последней командой WHERE), далее открыть отчёт и в качестве его источника данных использовать эту переменную. Передать можно значение через OpenArgs или открыть в скрытом режиме и присвоить источник данных в том же блоке кода, где формируется Where. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2003, 13:40 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
> Не будем разводить демагогию. Без демагогии я уже дважды сказал автору вопроса, что надо делать. Если он не понимает, то пусть покажет свою программу. Вставляет ли он в конструкторе, я не знаю, но догадка интересная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2003, 13:54 |
|
||
|
как передать из списка в форме в запрос несколько значений этого списка(+)?
|
|||
|---|---|---|---|
|
#18+
:) Не понимает, но программу показал уже всю. как мне кажется:) Или я уже тоже ничего не понимаю:) см. 402641 >сейчас у меня на кнопке, в форме которая вызывает отчет,благодаря вам, висит вот этот код: и далее по тексту... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2003, 14:12 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32317338&tid=1678383]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
91ms |
get tp. blocked users: |
1ms |
| others: | 255ms |
| total: | 445ms |

| 0 / 0 |
