HashMap

POPA
Дата: 16.11.2009 12:48:18
Нужно динамически формировать текст запроса в VBA.
Есть ли в VBA объект типа HashMap???
Хочу по ключу доставать значение Стринговое. Т.е. вначале объявили-проинициализировали и используем всю жизнь.
ё
Дата: 16.11.2009 13:26:57
Dictionary, Collection

..а почему не из таблицы?
POPA
Дата: 16.11.2009 14:38:33
ё,

я бы так делал в java или c#...
а из таблицы - надо же читать лишний раз информацию из таблицы..

А как еще можно создать выборку, кроме как
Set rst = db.OpenRecordset("XXX", dbReadOnly)

т.е. надо не по имени запроса, а указать явно текст запроса прямо тут.. так можно скорее всего?
ё
Дата: 16.11.2009 14:46:17
POPA
ё,

я бы так делал в java или c#...
а из таблицы - надо же читать лишний раз информацию из таблицы..

А как еще можно создать выборку, кроме как
Set rst = db.OpenRecordset("XXX", dbReadOnly)

т.е. надо не по имени запроса, а указать явно текст запроса прямо тут.. так можно скорее всего?


ну конечно можно!
Set rst = db.OpenRecordset("SELECT * FROM ляляляля ", dbReadOnly)
POPA
Дата: 16.11.2009 15:54:17
ё,

спасибо )

а есть тип строковый большой, чтобы можно было хранить больше 500 символов
??
ё
Дата: 16.11.2009 15:58:37
POPA
...
а есть тип строковый большой, чтобы можно было хранить больше 500 символов
??


...а что за число - 500?
у текстового типа в Аксе - ограничение - 255
так что тут по-любому Мемо-поле

...мы ж про типы данных полей таблиц говорим...?
POPA
Дата: 16.11.2009 16:18:38
ё,

неа, мы говорим сейчас уже про типы данных.. про тип String

запрос формируем в коде очень длинный..
qwrqwr
Дата: 16.11.2009 16:34:51
POPA
а есть тип строковый большой, чтобы можно было хранить больше 500 символов
POPA

неа, мы говорим сейчас уже про типы данных.. про тип String
в тип String можно записать 2 Млрд символов. Вам хватит?
ё
Дата: 16.11.2009 16:36:45
POPA
..
неа, мы говорим сейчас уже про типы данных.. про тип String
..


ааа,
ну тада паника, ваще - излишняя
мудрый help

String Data Type
A variable-length string can contain up to approximately 2 billion (2^31) characters


может "Война и мир" - и не влезет,
...но вот сочинить такой запрос что б в String не влез - я б не взялся
POPA
Дата: 16.11.2009 16:38:23
ё,

пишу такое



query = "SELECT Max(InCasso_" + v(1) + ".Date) AS [Последняя инкассация], Market_" + v(1) & _
".Place AS Терминал, Market_" + v(1) + ".Full AS АЗС, Market_" + v(1) + ".Short, Bases_" + v(1) & _
".Name AS Владелец, POSPlace_" + v(1) + ".PlaceName AS Город, Market_" + v(1)

query = query + ".Addr AS Адрес, Market_" + v(1) + ".TerminalVersion AS [Версия терминала], Market_" + v(1) & _
".PinpadVersion AS [Версия пинпада]"

query = query + " FROM ((InCasso_" + v(1) + " RIGHT JOIN Market_" + v(1) + " ON InCasso_" + v(1) & _
".Place=Market_" + v(1) + ".Place) INNER JOIN POSPlace_" + v(1) + " ON Market_" + v(1)

query = query + ".POSPlaceId=POSPlace_" + v(1) + ".POSPlaceId) INNER JOIN Bases_" + v(1) + " ON Market_" + v(1) & _
".IdBases=Bases_" + v(1) + ".Id"

query = query + "WHERE (((Market_" + v(1) + ".Closed) = False) And ((Market_" + v(1) + ".Ident) = 1))" & _
"GROUP BY Market_" + v(1) + ".Place, Market_" + v(1) + ".Full, Market_" + v(1) + ".Short, Bases_" + v(1)

query = query + ".Name, POSPlace_" + v(1) + ".PlaceName, Market_" + v(1) + ".Addr, Market_" + v(1) & _
".TerminalVersion, Market_" + v(1) + ".PinpadVersion" & _
"ORDER BY Max(InCasso_" + v(1) + ".Date);"


в итоге оборванный запрос получается! =)