Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Microsoft Office и VBA > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 23.05.2018, 17:43   #1
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Адрес: Россия, Москва
Сообщений: 289
Репутация: 10
По умолчанию Добавление нескольких записей (строк) в таблицу одним запросом

Подскажите как одним запросом добавить несколько строк в таблицу посредством VBA.

Сейчас использую цикл и следующим кодом добавляю данные

SQL1 = "INSERT INTO Таблица1 ( Поле1, Поле2 ) VALUES(" & a1 & "," & a2 & ");"
DoCmd.RunSQL SQL1

Но так я добавляю только одну строку. А мне например нужно 100 шт добавить и при цикле комп загибается(((

Какие есть варианты решения данной задачи подскажите плиз?
sasha_prof вне форума   Ответить с цитированием
Старый 23.05.2018, 18:29   #2
shanemac51
Профессионал
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Адрес: менее 300 км от москвы
Сообщений: 1,046
Репутация: 271
По умолчанию

--сформировать текстовый файл (хоть тысячу строк)
--прилинковать этот файл к базе
--и одним запросом закинуть в основную таблицу


применяла часто

иногда даже не закидывала, а использовала обращение в запросах к линкованной таблице

можно и не линковать, а прописывать путь к текстовику прямо в запросе
__________________
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума   Ответить с цитированием
Старый 23.05.2018, 18:53   #3
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Адрес: Россия, Москва
Сообщений: 289
Репутация: 10
Радость

Цитата:
Сообщение от shanemac51 Посмотреть сообщение
--сформировать текстовый файл (хоть тысячу строк)
--прилинковать этот файл к базе
--и одним запросом закинуть в основную таблицу


применяла часто

иногда даже не закидывала, а использовала обращение в запросах к линкованной таблице

можно и не линковать, а прописывать путь к текстовику прямо в запросе

Может у вас есть какойто пример а то я не силен в этом?
sasha_prof вне форума   Ответить с цитированием
Старый 23.05.2018, 19:02   #4
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Адрес: Россия, Москва
Сообщений: 289
Репутация: 10
По умолчанию

Если пробую таким образом (пример ниже) и если строк 1000 то пишет "Слишком сложный запрос"

[NO PARSE]INSERT INTO Таблица1
SELECT *
FROM (select top 1 "абвд" AS Поле1, 123 AS Поле2 from msysobjects

union all

select top 1 "еёжз" AS Поле1, 987 AS Поле2 from msysobjects

union all

select top 1 "мрст" AS Поле1, 300 AS Поле2 from msysobjects) AS test1;
[/NO PARSE]
sasha_prof вне форума   Ответить с цитированием
Старый 23.05.2018, 19:21   #5
shanemac51
Профессионал
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Адрес: менее 300 км от москвы
Сообщений: 1,046
Репутация: 271
По умолчанию

я имею в виду другое


Код:

k=freefile
open "c:\temp\rabtxt.txt" for output as #k
print #k,"ggggg";s9;12341

print #k,"ggggg";s9;12342
print #k,"ggggg";s9;12343
print #k,"ggggg";s9;12344

.....
print #k,"ggggg";s9;12999
close #k

теперь файл "c:\temp\rabtxt.txt" можно или прилинковать или напрямую прописать в запросе

я обычно линковала, чтобы можно было просмотреть заранее для ввода в основную таблицу
__________________
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума   Ответить с цитированием
Старый 23.05.2018, 21:28   #6
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Адрес: Россия, Москва
Сообщений: 289
Репутация: 10
По умолчанию

а если мне постоянно нужно добавлять данные в БД? Как тогда линк сработает? И как вообще линковать?)
sasha_prof вне форума   Ответить с цитированием
Старый 23.05.2018, 21:30   #7
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Адрес: Россия, Москва
Сообщений: 289
Репутация: 10
По умолчанию

Я все же понаглею)) может есть какой-то пример этого ликования?
sasha_prof вне форума   Ответить с цитированием
Старый 23.05.2018, 21:49   #8
shanemac51
Профессионал
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Адрес: менее 300 км от москвы
Сообщений: 1,046
Репутация: 271
По умолчанию

вы можете формировать этот тхт хоть каждую минуту, линковка при этом не пострадает

после формирования --дописать в аксесс-таблицу и можно снова формировать тхт

я обычно добавляла еще имя порции(и в тхт тоже)
оно нужно для анализа спорных ситуаций(вдруг кто-то запустил импорт повторно одну и ту же порцию
__________________
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума   Ответить с цитированием
Старый 23.05.2018, 22:25   #9
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Адрес: Россия, Москва
Сообщений: 289
Репутация: 10
По умолчанию

Пытаюсь таким образом загрузить, но ругается на спецификацию spec_01.....


INSERT INTO Таблица1
SELECT 'C:\Users\User\Desktop\1111\rabtxt. txt' AS Поле1, *
FROM [file.txt] IN 'C:\Users\User\Desktop\1111'[Text;DSN=spec_01,IMEX=1,Hdr=No];
sasha_prof вне форума   Ответить с цитированием
Старый 23.05.2018, 22:51   #10
shanemac51
Профессионал
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Адрес: менее 300 км от москвы
Сообщений: 1,046
Репутация: 271
По умолчанию

попробуйте,если у вас количество поле совпадает
INSERT INTO Таблица1
SELECT *
FROM [file.txt] IN 'C:\Users\User\Desktop\1111'[Text;DSN=spec_01,IMEX=1,Hdr=No];

но я обычно делаю это мастером, а не пытаюсь угадать синтаксис
__________________
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание

Последний раз редактировалось shanemac51; 23.05.2018 в 22:53.
shanemac51 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедура.Множественное добавление в таблицу одним запросом Deep-Minimal SQL, базы данных 5 21.12.2015 15:51
Как одним запросом добавить копию записи в таблицу? ЛюбительПИ Microsoft Office Access 5 28.10.2015 11:28
добавление нескольких записей в форме elepre Microsoft Office Access 1 18.04.2014 23:35
Выборка и подсчет кол-ва записей одним запросом WennY SQL, базы данных 1 02.07.2013 16:00
Обновление двух строк одним запросом L_M SQL, базы данных 5 03.02.2011 03:01


04:41.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru