powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос на добавление
11 сообщений из 11, страница 1 из 1
Запрос на добавление
    #39342259
Fora74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Не смог емко топик назвать.
В VBA собираю строку запроса на добавление. Искомая конструкция примерно такая:
Код: sql
1.
2.
3.
INSERT INTO tTest.Поле1,  tTest.Поле2
SELECT qInsertTest.(field0), qInsertTest.(field1)
FROM qInsertTest;


причем field0 и field1- это не имена полей, а индекс в коллекции fields.
Проблема в том, что таблица-источник имеет статичную структуру, но какие будут имена- заранее неизвестно.
Пока вижу решение- в цикле пробежаться по всем полям, а затем собирать строку запроса на обновление.
Может есть более изящное решение?
Спасибо.
...
Рейтинг: 0 / 0
Запрос на добавление
    #39342260
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А qInsertTest - это статический запрос, что ли?

Fora74Может есть более изящное решение?
Вообще желательно дать больше информации. А то полное ощущение, что ты "желаешь странного".
...
Рейтинг: 0 / 0
Запрос на добавление
    #39342262
Fora74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Вообще это продолжение ковыряния в соседнем топике http://www.sql.ru/forum/1236438/import-iz-html .
Там получилась временная таблица в html. Имена полей могут быть разными (например на русском или английском языке).
Данные из нее необходимо загрузить в таблицу в БД.
qInsertTest- запрос к этой таблице+ ключевое поле.
Теперь результаты qInsertTest необходимо поместить в tTest.
...
Рейтинг: 0 / 0
Запрос на добавление
    #39342265
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fora74qInsertTest- запрос к этой таблицеНу коли так, то у тебя есть его QueryDef. Возьми оттуда имена полей.
...
Рейтинг: 0 / 0
Запрос на добавление
    #39342269
Fora74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Я в первом посте писал про такое решение.
В общем то оно должно работать.
Просто по неопытности может я не вижу более простого решения.
...
Рейтинг: 0 / 0
Запрос на добавление
    #39342335
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вообще неопределённая структура - это нонсенс. Так что имхо правильнее думать в том направлении, чтобы избавиться от неопределённости в именах полей.
...
Рейтинг: 0 / 0
Запрос на добавление
    #39342583
FORA74_guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Со структурой как раз все в порядке- количество полей, типы данных все одинаково.
Привести к единообразности наименований полей наверно можно на предыдущем шаге.
Только это будет сложнее, нежели в данной задаче считывать наименования из коллекции.
Если предложений нет, я делаю вывод, что и решения нет.
Всем спасибо.
...
Рейтинг: 0 / 0
Запрос на добавление
    #39342691
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На чистом SQL это не сделаешь, по номерам столбцов можно обращаться только в ORDER BY, насколько я знаю. Так что проще всего коллекцию анализировать.
...
Рейтинг: 0 / 0
Запрос на добавление
    #39342705
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FORA74_guestПривести к единообразности наименований полей наверно можно на предыдущем шаге.
Только это будет сложнее, нежели в данной задаче считывать наименования из коллекции.
Не смеши. В конце твоей "предыдущей операции" сделать тупое
Код: vbnet
1.
TableDef.Fields(intNum).Name = "ConstName"


гораздо проще, чем потом трахаться с неизвестными именами полей
...
Рейтинг: 0 / 0
Запрос на добавление
    #39342927
Fora74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaFORA74_guestПривести к единообразности наименований полей наверно можно на предыдущем шаге.
Только это будет сложнее, нежели в данной задаче считывать наименования из коллекции.
Не смеши. В конце твоей "предыдущей операции" сделать тупое
Код: vbnet
1.
TableDef.Fields(intNum).Name = "ConstName"


гораздо проще, чем потом трахаться с неизвестными именами полей
Попробовал. Не работает Ваш совет на присоединенных таблицах.
...
Рейтинг: 0 / 0
Запрос на добавление
    #39342968
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fora74Не работает Ваш совет на присоединенных таблицах.Понятное дело, это ж DAO. Перепишите то же на ADO, и всё заработает.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос на добавление
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]