|
|
|
| Проблема следующая. Есть таблица1 с полями: Номер, Дата, соответственно тип string и data. Есть запрос, который склеивает записи Номер и Дата из таблицы1 и заносит их через запятую в поле другой таблицы2 (т.е. Номер1 Дата1, Номер2 Дата2 и т.д. сколько записей в таблице1), с помощью функции:
Public Function UnionStr(Optional Номер, Optional Дата)
Static Union
Union = Union & Номер & Дата & " , "
UnionStr = Union
End Function
В запросе поле на добавление описывается так: Str: Last(UnionStr([Номер];[Дата]))
После того, как первый раз выполняешь запрос, в таблицу2 в первую строку заносится запись "Номер1 Дата1, ". После второго выполнения во вторую строку таблицы2 заносится уже "Номер1 Дата1, Номер1 Дата1 , ". Т.е. функция запоминает значение UnionStr с прошлого раза и приклеивает к нему еще одну, такую же, запись. Функция прописана в общем модуле. Как обнулить значение функции при ее повторном использовании, чтобы, если в таблице1 одна запись Номер1 и Дата1, то и после многократного использования запроса в таблицу2 заносилась одна и таже запись "Номер1 Дата1 ,"? | |
|
| |
|
|
|
| Запоминает не функция а
Static Union
посмотрите
http://hiprog.com/index.php?option=com_content&task=view&id=334 | |
|
| |
|
16 Кб. |
|
| Переменная Union обьявленая с помощью Static сохраняет (или возвращает) свое значение только пока ывполняется функция UnionStr. То есть, после того как я выполнил запрос, в функции пременная Union обнулилась, но на самом деле предыдущее значение где-то сохраняетя и когда я еще раз выполняю запрос к предыдущему значению приклеивается еще одно такое же и заносится в новую строку таблицы2. | |
|
| |