|
|
|
как передать данные в ....
|
|||
|---|---|---|---|
|
#18+
Скорее всего все мои вопросы из области знания азов Аксеса, просто есть какие то операторы, которых я не знаю. и еще, несмотря на то, что тут очень много чего я написал, но на самом деле тут дольше читать, чем разбираться в сложностях. На данный момент состояние дел таково: мой запрос выводит нужную мне информацию. но условия (товар) мне приходится вводить в ручную в конструкторе запросов. вид всего этого безобразия таков: есть первый запрос созданный в конструкторе, в котором стоит только одно условие( именно его я ввожу руками в конструкторе)- его результатом является табличка из трех колонок: город(CodeSI), ТорговаяМарка(CodeTM), НазваниеНагазина(NameShopE). В нем есть все магазины, которые торгуют или одной или второй или третьей .... торговой маркой (сколько Like ..OR.. поставлю, столько и выдает). он выглядит так: Код: plaintext 1. 2. 3. называется он : zКакиеМагазиныТоргуютSrazuТМEp затем также в конструкторе я создал второй запрос с помощью мастера(Повторяющиеся записи). в виде SQL он выглядит так: Код: plaintext 1. 2. 3. 4. 5. называется он :zКакиеМагазиныТоргуютSrazuТМE Результат этого запрос выдает как раз ту табличку, которую я и хотел получть. Только если я в первом запросе ставлю N условий, то во втором запросе приходится после знака> ставить число (N-1). НО все это хорошо только для эксперимента. В реальности у меня есть форма в которой есть листбокс ТорговыхМарок, есть кнопка которая запускает Отчет, вот код на кнопке в форме: Код: 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. Отчет в качестве источника данных использует второй запрос с именем zКакиеМагазиныТоргуютSrazuТМE, этот запрос в качестве источника использует первый запрос с именем zКакиеМагазиныТоргуютSrazuТМEp проблема заключается в том, что А) надо как-то передать количество выбранных Торговых Марок из кода на кнопке ( их количество можно взять так : KOLVO= lb.ItemsSelected.Count-1 ) в условие во втором запросе вот сюда HAVING Count(*)>1. Б) я не знаю как передать условие во второй запрос(подчиненный). Дело в том, что условие которое находится в strWhere подставляется в поле с тем же именем в первом запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2003, 22:12 |
|
||
|
как передать данные в ....
|
|||
|---|---|---|---|
|
#18+
Господа! если кто то может помочь, то не сочтите за труд сделать это как можно быстрее! Мне эта штука очень срочно нужна! Заранее огромное спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2003, 09:04 |
|
||
|
как передать данные в ....
|
|||
|---|---|---|---|
|
#18+
А можно сделать краткое содержание вопроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2003, 09:53 |
|
||
|
как передать данные в ....
|
|||
|---|---|---|---|
|
#18+
Да, ладно, можно пока и без краткого обойтись, для начала как обычно, по маленькой: /topic/36767&hl=faq ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2003, 10:04 |
|
||
|
как передать данные в ....
|
|||
|---|---|---|---|
|
#18+
кратко наверное можно например так: проблема заключается в том, что А) надо как-то передать количество выбранных Торговых Марок из кода на кнопке ( их количество можно взять так : KOLVO= lb.ItemsSelected.Count-1 ) в условие во втором запросе вот сюда HAVING Count(*)>1. Б) я не знаю как передать условие во второй запрос(подчиненный). Дело в том, что условие которое находится в strWhere подставляется в поле с тем же именем в первом запросе. но что бы понять что за а) и Б) я решил накатать такую простыню какая здесь и отображена. вообще, в силу своих ограниченных познаний в аксессе, я действительно не могу более кратко изложить суть вопроса, но с готовностью попытаюсь уточнить то , что вам покажется недостаточным для понимания того чем мне можно помочь здесь. по той же причине мне очнеь трудно понять односложные ответы, которые отсылают меня к теории :-(( именно для этого я в первом своем сообщении и накатал как можно больше о своей проблеме, что бы возможный ответ звучал приблизительно так: " вставь тото и тото вот в это конкретное место в твоем коде,..." Спасибо за участие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2003, 23:25 |
|
||
|
как передать данные в ....
|
|||
|---|---|---|---|
|
#18+
Полумысль. Может быть, можно не писать Like в конструкторе, а сделать таблицу, в записях которой будут сидеть эти лайки. Тогда во втором запросе количество лайков можно написать как количество записей в этой таблице. Еще полумысль. Чтобы эту таблицу не заполнять каждый раз руками, можно сделать в ней поле "номер варианта" и включать в запросы только те ее записи, в которых номер варианта равен какому-нибудь параметру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2003, 23:36 |
|
||
|
как передать данные в ....
|
|||
|---|---|---|---|
|
#18+
вот что я сделал после своего последнего сообщения: strCriteria = "zSrazuTMEp.buys.CodeTM 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 strWhere = strWhere & " " & "zSrazuTME.CodeSI In (SELECT [CodeSI] FROM [zSrazuTMEp] As Tmp GROUP BY [CodeSI] HAVING Count(*)>'" & Kolvo & "'" & ")" MsgBox strWhere 1) для краткости я заменил названия запросов, но оставил их окончания теми же что и были :-) 2) в запросе с именем zSrazuTME я убрал из конструктора строку условия, и вставил ее в код на кнопке. - результат: теперь отчет вовсе не запускается, но зато возникла резонная мысль- а ведь я возможно не верно разделяю условия для разных полей!!! да еще и в разных запросах!!! теперь мысль вопроса более четкая: как в strWhere = ..... написать это услови правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 00:20 |
|
||
|
как передать данные в ....
|
|||
|---|---|---|---|
|
#18+
некоторые уточнения: 1) Dim Kolvo As Byte Set lb = Me.[choiceTradeMark] Kolvo = lb.ItemsSelected.Count - 1 это откуда количество взялось 2) строка условия наверное более правильно должна так выглядеть: strWhere = strWhere & " " & "zSrazuTME .zSrazuTMEp .CodeSI In (SELECT [CodeSI] FROM [zSrazuTMEp] As Tmp GROUP BY [CodeSI] HAVING Count(*)>'" & Kolvo & "'" & ")" MsgBox strWhere так как поле CodeSI в запросе zSrazuTME из запроса zSrazuTMEp это я так по аналогии с лайком... еще комментарий: отдельно лайк в варианте для запроса предварительного отлично работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 00:35 |
|
||
|
как передать данные в ....
|
|||
|---|---|---|---|
|
#18+
Насколько я понял, тебе надо найти магазины одновременно торгующие n торговыми марками (товарами). Аналогичная задача рассматривалась \r тут\r Удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 00:36 |
|
||
|
как передать данные в ....
|
|||
|---|---|---|---|
|
#18+
еще в догонку: разделил условия знаком "," отчет снова заработал, но он пустой... буду дальше думать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 00:37 |
|
||
|
как передать данные в ....
|
|||
|---|---|---|---|
|
#18+
она то вроде аналогичная, но я никак не могу ее к своим полям подставить :_)))) поэтому мучаюсь в том виде который тут написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 00:38 |
|
||
|
как передать данные в ....
|
|||
|---|---|---|---|
|
#18+
еще один вопрос рядом с этой темой: а как в коде запустить не отчет с параметрами, а запрос? на моем примере? хочу посмотреть- может быть у меня отчет где то глючит? ведь как я уже раньше писал, если отдельно запрос запускать с предустановленными условиями вручную, то там правильно все выдается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 00:47 |
|
||
|
как передать данные в ....
|
|||
|---|---|---|---|
|
#18+
Свести все нужные данные в один запрос И действуя фильтрами по выделенному легко решить поставленную задачу Если в запросе не окажется поля с нужной характеристикой отбора, создайте его как вычисляемое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 01:21 |
|
||
|
как передать данные в ....
|
|||
|---|---|---|---|
|
#18+
проблема в том, что моя метода работает только с двумя запросами! в первом происходит выборка по Торговым маркам и группировка, а во втором запросе применение вот такого условия: zSrazuTME.zSrazuTMEp.CodeSI In (SELECT [CodeSI] FROM [zSrazuTMEp] As Tmp GROUP BY [CodeSI] HAVING Count(*)>'" & Kolvo & "'" & ")" причем zSrazuTME.zSrazuTMEp.CodeSI это я сам подставил в код на кнопке, в попытке автоматизации ввода фильтра. если же я пытаюсь совместить группировку, отбор по лайку с этим условием, то мне выдается много ненужной инфы- другими словами так не работает... возможно тут действительно надо какое то выражение вписать в запрос, но я не знаю какое! :_( причем как в первом запросе так и во втором используются только два столбца из одной таблицы ( в ссылке , которую мне тут дали) она называется таблицей соответствия... поля CodeSI- название магазина, CodeTM- название торговой марки продукта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 03:10 |
|
||
|
|

start [/forum/topic.php?fid=45&gotonew=1&tid=1677904]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 208ms |
| total: | 396ms |

| 0 / 0 |
