LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Один запр...
 Тема: Один запрос на добавление в разные таблицы
 
 15.06.2007 21:03:45
All
4316 сообщения
1-ый


Тема: Один запрос на добавление в разные таблицы
Есть несколько однотипных таблиц. Написал для одной запрос на добавление. Попробовал задать имя таблицы-получателя как параметр, чтобы применять запрос для разных таблиц - не разрешается. Странно, потому что в запросе на обновление имя таблицы можно задавать как параметр - такой запрос есть и отлично работает. Писать текстовую строку в VBA - слишком длинный запрос. Заменять имя таблицы с помощью ф-ции Replace... Может есть нормальный выход?


P.S. Запросы на добавление
Автор: ALEX от 0:00:00 Источник ...
 15.06.2007 21:03:45
All
4316 сообщения
1-ый


RE: Один запрос на добавление в разные таблицы
Если есть много однотипных запросов, то можно создать таблицу и хранить их там. В этом случае интерфейс базы данных будет менее перегружен.


P.S. Запросы на добавление
Автор: Expert от 0:00:00 Источник ...
 15.06.2007 21:03:45
All
4316 сообщения
1-ый


RE: Один запрос на добавление в разные таблицы
Такое решение не подходит.
С помощью одного запроса я раскидываю данные во временные таблицы (управляя параметрами из VBA) и одной таблицей тут не обойдешься. Потом записи в этих таблицах сравниваются. вопрос в другом - я не могу из VBA получить доступ к DestinationTable запроса.


P.S. Запросы на добавление
Автор: ALEX от 0:00:00 Источник ...
 15.06.2007 21:03:45
All
4316 сообщения
1-ый


видел ленивых... но настолько...
'если уж тяжело из шаблона строку нарезать, то я молчу...
? DestinationTable("INSERT INTO qwerty ...")
? DestinationTable(CurrentDB.Querydefs("Query1").SQL
Function DestinationTable(InsertSQL As String)
Dim PosFrom As Long, PosTo As Long

PosFrom = Len("INSERT INTO ") + 1
If Mid(InsertSQL, PosFrom, 1) = "[" Then
PosTo = InStr(PosFrom, InsertSQL, "]") + 1
Else
PosTo = InStr(PosFrom, InsertSQL, " ")
End If

DestinationTable = Mid(InsertSQL, PosFrom, PosTo - PosFrom)
End Function
'правда не поможет, если не хочется следовать стандартному синтаксису #:-)



P.S. Запросы на добавление
Автор: AR от 0:00:00 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Один запр...
ПоискПоиск  Список форумовСписок форумов  
right