|
|
|
Перечисление в поле запроса данных через запятую.
|
|||
|---|---|---|---|
|
#18+
Таблица Договоры связана с табл.Счета. Один договор может иметь несколько счетов. Как сделать, чтобы в запросе все счета перечислялись в одном поле через запятую, т.е. один договор занимал бы одну строку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 16:08 |
|
||
|
Перечисление в поле запроса данных через запятую.
|
|||
|---|---|---|---|
|
#18+
Первое, что пришло в голову: - создаешь функцию, которая делает выборку номеров счетов по каждому договору и выстраивает их в строку - вставлешь эту функцию в запрос - в качестве параметра функции указываешь id договора Недостаток - может подтормаживать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 16:13 |
|
||
|
Перечисление в поле запроса данных через запятую.
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 16:17 |
|
||
|
Перечисление в поле запроса данных через запятую.
|
|||
|---|---|---|---|
|
#18+
Тут пример по совету, который дали выше... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 16:17 |
|
||
|
Перечисление в поле запроса данных через запятую.
|
|||
|---|---|---|---|
|
#18+
2 incold Быстрый олень:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 16:18 |
|
||
|
Перечисление в поле запроса данных через запятую.
|
|||
|---|---|---|---|
|
#18+
Вариант для mdb... Cоздать функцию в модуле, а как обратиться к ней из запроса? Я имею ввиду как ей передать аргументы(номера счетов)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 16:26 |
|
||
|
Перечисление в поле запроса данных через запятую.
|
|||
|---|---|---|---|
|
#18+
выражение1:МояФункция(ИМяКлючевогоПоляТаблицы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 16:29 |
|
||
|
Перечисление в поле запроса данных через запятую.
|
|||
|---|---|---|---|
|
#18+
Dim rst As ADODB.Recordset Set rst = New ADODB.Recordset rst.Open "SELECT DISTINCT Клиент FROM Клиенты ORDER BY Клиент;", СurrentProject.Connection ПеременнаяString = rst.GetString(adClipString, , ";", ";") rst.Close ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 16:49 |
|
||
|
Перечисление в поле запроса данных через запятую.
|
|||
|---|---|---|---|
|
#18+
2 ХТ: может это и работает, но у меня А97, к сожалению...:( Значит придется из одного rst выбирать КодДоговора, а потом как фильтр использовать это для другого Rst, который со Счетами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 17:13 |
|
||
|
Перечисление в поле запроса данных через запятую.
|
|||
|---|---|---|---|
|
#18+
Попробуй до и после переменной в запросе ставить одинарные ковычки: "начало запроса....'" & твоя_переменная_в_перечислением_номеров_ счетов & "'...конец запроса" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 17:30 |
|
||
|
Перечисление в поле запроса данных через запятую.
|
|||
|---|---|---|---|
|
#18+
А переменную-то как "собрать"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 19:02 |
|
||
|
Перечисление в поле запроса данных через запятую.
|
|||
|---|---|---|---|
|
#18+
Примерно так: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 19:22 |
|
||
|
Перечисление в поле запроса данных через запятую.
|
|||
|---|---|---|---|
|
#18+
Нет, так не пойдет... Надо так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 19:26 |
|
||
|
Перечисление в поле запроса данных через запятую.
|
|||
|---|---|---|---|
|
#18+
Ну и как всегда, стормозил на rst.MoveNext Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 19:28 |
|
||
|
Перечисление в поле запроса данных через запятую.
|
|||
|---|---|---|---|
|
#18+
Ну а у меня так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. "Запрос1" это набор данных: один столбец -Договор, второй - №_счета. Ну а вообще - тормозит все это довольно сильно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2004, 11:16 |
|
||
|
Перечисление в поле запроса данных через запятую.
|
|||
|---|---|---|---|
|
#18+
Set rstFlt = rst.OpenRecordset Зачем это? Для каждого договора каждый раз отбираются все записи, а потом накладывается фильтр. На фига, если можно ограничиться нужным номером? И второй раз открывать рекордсет на основе уже существующего тоже не надо If rstFlt.RecordCount > 0 Then rstFlt.MoveFirst Это лишнее. Рекордсет сам встает на первую запись, если она есть. Поэтому можно перейти сразу к следующей строке, где заменить While Not -> Until (это я сначала писал через While / Wend) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2004, 11:50 |
|
||
|
Перечисление в поле запроса данных через запятую.
|
|||
|---|---|---|---|
|
#18+
Как собрать переменную? Была у меня такая задача: на форме есть листбокс, где перечисленны группы товаров, листбокс причем позволяет выбирать несколько строк одновременно. Надо было составить отчет, в который входили бы только товары из выбранных групп. Вот как это решил: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Задача усложнялась еще тем, что группы товара могли содержать пробелы и запятые, поэтому так много кавычек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2004, 12:10 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32391215&tid=1676948]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
185ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 471ms |

| 0 / 0 |
