Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/54: Рейтинг темы: голосов - 54, средняя оценка - 4.94
18 / 18 / 0
Регистрация: 11.10.2010
Сообщений: 102

Запрос на добавление ИЗ другой базы данных

04.12.2010, 19:03. Показов 10201. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, кто знает, можно ли создать запрос обратный запросу на добаление данных в таблицу другой базы данных. Т.е. что бы данные брались не из текущей и вставлялись в другую БД, а наоборот - брались из другой БД и вставлялись в текущую?

Добавлено через 1 час 14 минут
Ага!!! Все извиняюсь за беспокоство - сам разобрался!
Если кому интересно, то для решения данной проблемы, необходимо в запросе SQL поместить Предложение IN в конце конструкции, после выражения предложения FROM.
Примерно так:
SQL
1
2
3
INSERT INTO ТаблицаПустая ( Значение1, Значение2, Значение3 )
SELECT ТаблицаЗаполненная.Значение1, ТаблицаЗаполненная.Значение2, ТаблицаЗаполненная.Значение3
FROM ТаблицаЗаполненная IN 'C:апросыазаЗаполненная.mdb';
Добавлено через 8 часов 18 минут
Гм, а вот с развитием запроса что-то не клеится. Хочу вставить в него ссылку на объект управления Поле1 Формы1 в котором содержится путь к базе данных:

SQL
1
2
3
INSERT INTO ТаблицаПустая ( Значение1, Значение2, Значение3 )
SELECT ТаблицаЗаполненная.Значение1, ТаблицаЗаполненная.Значение2, ТаблицаЗаполненная.Значение3
FROM ТаблицаЗаполненная IN  'Forms!Форма1!Поле1';
Выдает: "Не удается найти файл 'C:\Запросы\Forms!Форма1!Поле1' " При выборе любой директории пишет путь в указанную папку, а вместо названия файла БД - Forms!Форма1!Поле1. Подозреваю, что дело в синтаксисе, но ничего придумать не могу. Помогите кто знает как быть.
3
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.12.2010, 19:03
Ответы с готовыми решениями:

Запрос на добавление данных из другой таблицы Delphi
Помогите пожалуйста очень нужно ((( Из одной таблицы данные перенести в другую Все поля одинаковы Не знаю как написать запрос . Только...

Добавление данных через форму в таблицу базы данных MS SQL
Здравствуйте! Я делаю форму для добавления записи в таблицу базы данных, созданную в MS SQL 2008. В таблице три поля...

Добавление базы данных и запросы в эту базу данных
Подскажите пожалуйста. При помощи каких компонентов в delphi можно добавить базу данных acces и какой код и как создать запросы в эту базу...

4
 Аватар для HOUSE MD
453 / 215 / 5
Регистрация: 16.05.2010
Сообщений: 420
04.12.2010, 20:49
Доброго времени суток.
1. Попробуйте сделать выполнение запроса SQL с использованием переменных (например так):
Visual Basic
1
2
3
4
5
6
Me!DISTRICT.RowSource = sqlDISTRICT(Name_column_district, Name_table)
 
 
Public Function sqlDISTRICT(Name_column_district As String, Name_table As Variant)
    sqlDISTRICT = "SELECT " & Name_table & ".POINT_COD, " & Name_table & Name_column_district & " FROM " & Name_table & " WHERE (((" & Name_table & ".POINT_COD) Like Forms!frmNewPatient!District_cod))"
End Function
2. Или сделать програмноеизменение запроса (видел такое решение, но как делается - не знаю)
2
1181 / 632 / 39
Регистрация: 30.05.2010
Сообщений: 715
04.12.2010, 23:53
Здравствуйте Обсидиан.
Если запрос на добавление выполняется (вызывается) из кода VBA
корректную сборку SQL конструкции выполнять стоит так-же в коде:
Visual Basic
1
2
3
4
5
Const sQ = "INSERT INTO ТаблицаПустая ( Значение1, Значение2, Значение3 ) " + _
"SELECT Значение1, Значение2, Значение3 FROM ТаблицаЗаполненная IN '"
Dim s$
s = Forms!Форма1!Поле1 & "'"
CurrentDb.Execute sQ + s
Евгений.
2
18 / 18 / 0
Регистрация: 11.10.2010
Сообщений: 102
05.12.2010, 08:51  [ТС]
Цитата Сообщение от HOUSE MD
Доброго времени суток.
1. Попробуйте сделать выполнение запроса SQL с использованием переменных (например так):
Visual Basic
1
2
3
4
5
6
Me!DISTRICT.RowSource = sqlDISTRICT(Name_column_district, Name_table)
 
 
Public Function sqlDISTRICT(Name_column_district As String, Name_table As Variant)
    sqlDISTRICT = "SELECT " & Name_table & ".POINT_COD, " & Name_table & Name_column_district & " FROM " & Name_table & " WHERE (((" & Name_table & ".POINT_COD) Like Forms!frmNewPatient!District_cod))"
End Function
2. Или сделать програмноеизменение запроса (видел такое решение, но как делается - не знаю)
Спасибо большое за ответ. Но боюсь, для меня это слишком сложно, все-таки, я не профессиональный программист. Тем не менее код интересный, на досуге обязательно разберусь.

Цитата Сообщение от Teslenko_EA
Здравствуйте Обсидиан.
Если запрос на добавление выполняется (вызывается) из кода VBA
корректную сборку SQL конструкции выполнять стоит так-же в коде:

Visual Basic
1
2
3
4
5
Const sQ = "INSERT INTO ТаблицаПустая ( Значение1, Значение2, Значение3 ) " + _
"SELECT Значение1, Значение2, Значение3 FROM ТаблицаЗаполненная IN '"
Dim s$
s = Forms!Форма1!Поле1 & "'"
CurrentDb.Execute sQ + s
И Вам спасибо, Евгений, что не оставляете без внимания мои записи. Ваш вариант мне более подошел.
В моем же случае для решения задачи, я просто перенес запрос SQL в код VBA. Странно, но в VBA это сработало!
Событие "Нажатие кнопки" для Форма1!Кнопка1

Visual Basic
1
2
3
4
5
6
7
Private Sub Кнопка1_Click()
    Dim SQL As String
    SQL = "INSERT INTO ТаблицаПустая ( Значение1, Значение2, Значение3 )" & _
          "SELECT ТаблицаЗаполненная.Значение1, ТаблицаЗаполненная.Значение2, ТаблицаЗаполненная.Значение3 " & _
          "FROM ТаблицаЗаполненная IN " & "'" & Поле1 & "'"  ' В Поле1 содержится путь к базе данных. 
    DoCmd.RunSQL SQL
End Sub
Правда мой код несколько более "топорный".
0
1181 / 632 / 39
Регистрация: 30.05.2010
Сообщений: 715
05.12.2010, 18:35
Обсидиан, Ваш код нельзя называть "топорным", ведь задача выполняется, а различия между кодами в следующем :
1. постоянную (неизменяемую) часть SQL конструкции я помещаю в константу.
'доступ к константе меньше "напрягает" VB(A)
2. текстовое значение контрола Поле1 передается в переменную
'значения всех контролов лучше помещать в переменные не нагружая конкатенацией текста с объектом.
3. сформированная SQL конструкция выполняется не командой JET - .RunSQL, а командой DAO - .Execute
'DoCmd внутренняя команда JET, зависящая от настроек MS Access, а DAO не зависит от этих настроек.
но главное принцип тот-же и задача выполняется.
Евгений.
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.12.2010, 18:35
Помогаю со студенческими работами здесь

Добавление записи в базу данных и считывание из базы данных
Здравствуйте! Знаю, что эти вопросы поднимались уже тысячи раз, но помогите пожалуйста. Написала код добавления записи в БД. Сколько...

Добавление данных из ComboBox в таблицу базы данных
ну типа выбрал строку в комбобоксе, нажал добавить и эта строка добавляется в ячейку в таблице базы данных которая уже подключена и...

Ссылка в запросе на тип данных из другой базы данных
Всем, доброго времени суток. На роботе столкнулся с такой проблемой: у меня есть две базы данных к первой (DB1) у меня есть доступ только...

Добавление базы данных
При создании базы данных Получаю ошибку Хотя SQL сервер у меня установлен

Как перенаправить в другую базу данных при вызове конкретной строки из таблицы другой базы данных?
Здравствуйте добрые люди! У меня вопрос о базе данных. Есть несколкько баз данных,в каждом из них есть по несколько таблиц. И есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru