Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
 Аватар для Kkarn
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229

Программное добавление таблицы в другую базу данных

05.02.2015, 14:26. Показов 2556. Ответов 13
Метки нет (Все метки)

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

Мне необходимо программно добавить новую таблицу в ДРУГУЮ базу данных. Смысл в том, что я создал базу, как положено разделил ее на две части (с таблицами и всем остальным), отдал в работу заказчику. А теперь он хочет внести некоторые доработки (возможно, не последние), и для них нужно создать еще одну таблицу. При этом база уже в нескольких экземплярах в работе, наполнена данными, поэтому будем считать, что я не могу иметь прямой доступ к базе, в которой лежат таблицы.

Заранее спасибо за ответы или адреса где почитать).
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.02.2015, 14:26
Ответы с готовыми решениями:

Программное добавление строки в базу данных
В winforms пытаюсь создать кнопку, добавляющую строку в подключенную базу данных, перерыл уже интернет, не могу найти почти ничего,...

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

Добавление таблицы в базу данных
Как добавить таблицу в базу данных? Если нету ссылки добавление таблицы в базу данных SQL. Качал и устанавливал SQL Server Data Tools...

13
 Аватар для VinniPuh
9129 / 6134 / 593
Регистрация: 27.03.2013
Сообщений: 19,984
05.02.2015, 14:31
Цитата Сообщение от Kkarn Посмотреть сообщение
...отдал в работу заказчику....
А вручную создать связи между БД, не прокатит что ли?
По идее то минутное дело.
0
 Аватар для Kkarn
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
05.02.2015, 14:44  [ТС]
"вручную" - это уже там, у заказчика?) В смысле, чтобы они там сами у себя в файле с таблицами создали нужную таблицу - и потом прилинковали ее к базе с формами?.. Не, это не вариант совсем. Они умеют в Access только в тех пределах, в которых их научили...
0
 Аватар для VinniPuh
9129 / 6134 / 593
Регистрация: 27.03.2013
Сообщений: 19,984
05.02.2015, 14:56
А прийти к ним воочию, установить чего требуется и дополнительно денег малость срубить не судьба?
Типа на пол ставки давайте устраивайте за 1000 в месяц, раз в месяц обновления переустановишь и все у них будет - ХОРОШО!
0
 Аватар для Kkarn
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
05.02.2015, 15:00  [ТС]
kmv-puh, Я туда не дойду))) Это мало того что в другом городе - это в ДРУГИХ ГОРОДАХ ДРУГОЙ СТРАНЫ)))
0
 Аватар для VinniPuh
9129 / 6134 / 593
Регистрация: 27.03.2013
Сообщений: 19,984
05.02.2015, 15:11
Цитата Сообщение от Kkarn Посмотреть сообщение
...в ДРУГИХ ГОРОДАХ ДРУГОЙ СТРАНЫ...
Хорошо, что не на Марсе.
Ну тогда не знаю. Ждите, может кто чего присоветует.
Удачи!
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
05.02.2015, 15:13
Цитата Сообщение от Kkarn Посмотреть сообщение
Мне необходимо программно добавить новую таблицу в ДРУГУЮ базу данных.
Цитата Сообщение от Kkarn Посмотреть сообщение
Они умеют в Access только в тех пределах, в которых их научили...
Тогда нормальный приемлемый вариант это создать файл имя.VBS в котором записать команды создания таблицы. Выполнить его просто - только нажать на него и он выполнится. Так же как обычный командный файл *.BAT.

Например: в папке c:\temp находится файл mydb.mdb в который надо добавить таблицу mytab с полями ID - счетчик и txt -текстовое. Причем ID ключевое поле
Visual Basic
1
2
3
set dbe = CreateObject("DAO.DBEngine.36")   ' DAO.DBEngine.35, DAO.DBEngine.120
set db=dbe.OpenDatabase("c:\temp\mydb.mdb")
db.execute ("create table mytab (id counter constraint ptimarykey primary key, txt text(50))")
Файл имя.VBS создать несложно. Создаете обычный текстовый файл, записывает в него команды. А потом переименовываете расширение в VBS.

Числа 36 и 120 при DBEngine это версия файла. Для *.MDB надо 36, для *.ACCDB надо 120
0
 Аватар для Kkarn
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
05.02.2015, 15:22  [ТС]
mobile, Ого, оказывается это не так и просто, как я предполагал... То есть штатными средствами (из базы с формами, запросами и прочим) никак нельзя создать таблицу в базе с таблицами?.. Только через VBS?..
В таком случае у меня дело осложняется тем, что я не знаю, где именно у пользователя лежит база с таблицами. У меня в базе с формами встроен алгоритм автоматической прилинковки таблиц, я бы мог оттуда выцепить как-то имя и путь файла нужной базы данных, а как это сделать в этом VBS?..
Хотя стоп. А почему я не могу выполнить те же самые команды из своей родной базы данных?))...
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
05.02.2015, 15:29
Про связи с новой таблицей, если такие нужны. Их можно записать в том же запросе на создание таблицы или в запросе на изменение таблицы ALTER TABLE имятаблицы. Связи определяются констрейнтами. Надо посмотреть в хелпе и если что непонятно, спросить

Добавлено через 4 минуты
Цитата Сообщение от Kkarn Посмотреть сообщение
То есть штатными средствами (из базы с формами, запросами и прочим) никак нельзя создать таблицу в базе с таблицами?.. Только через VBS?..
Нет, можно и из самой базы. Но Вы же говорите, что они ничего не умеют, поэтому и предложил вариант с VBS, который достаточно только нажать и он выполнится. Что может быть проще? А путь Вы можете запросить у них по мэйлу.

Но ровно те же самые команды можно выполнить и из БД. Путь можно определить из коннектов присоединных таблиц
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
05.02.2015, 15:37
А удаленный доступ к базе - никак?

Не по теме:

Вообще то заказчики, которые не могут/хотят его обеспечить, должны идти ... на этапе предварительных переговоров.

0
 Аватар для Kkarn
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
05.02.2015, 15:41  [ТС]
mobile, Вот я как раз и думал определить путь из коннектов, и сделать все из самой базы, чтобы пользователи вообще не участвовали. Мне просто нужны были именно подробности комманд, которыми можно создать таблицу в другой базе данных.
То есть я где-нибудь в автозагрузке первым делом пропишу проверку, есть ли такая таблица (чтобы при следующих запусках оно не выполняло этот код), и если нет, то создать, подключить ее к текущей базе и т.д.

Добавлено через 2 минуты
ltv_1953, дело в том, что база используется в нескольких разных филиалах конторы, у каждого филиала - своя база. я вообще без понятия, сколько вообще экземпляров базы они уже распространили по своим конторам) Поэтому любые варианты "удаленного доступа" или "пусть сами пользователи сделают" - не подходят. Только автоматически из самой базы, версию которой я отсылаю центральному заказчику.
0
 Аватар для VinniPuh
9129 / 6134 / 593
Регистрация: 27.03.2013
Сообщений: 19,984
05.02.2015, 15:47
Цитата Сообщение от Kkarn Посмотреть сообщение
...подключить ее к текущей базе и т.д....
А не забоятся заказчики подцепить с автозагрузкой чего нибудь, ну например типа вирусов или троянов???

Добавлено через 2 минуты
Цитата Сообщение от Kkarn Посмотреть сообщение
...сколько вообще экземпляров базы они уже распространили по своим конторам)...
Как я и пророчил, НУЖЕН СИСАДМИН, тоесть - ВЫ, тем более все там сечешь и знаешь что и в куда всовать своевременно.
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
05.02.2015, 17:12
Лучший ответ Сообщение было отмечено Kkarn как решение

Решение

Цитата Сообщение от Kkarn Посмотреть сообщение
Только автоматически из самой базы
Ну, раз так, то попробуйте на событии открытия загрузочной формы выполнить процедуру
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Private Sub Form_Open(Cancel As Integer)
    Dim rst As DAO.Recordset, tdf As TableDef
    Dim db As DAO.Database, dbe As Object, mydb As DAO.Database
    
    Set mydb = CurrentDb
    Dim newTbl, linkTbl, con
 
    newTbl = "НоваяТаблица"
    linkTbl = "ИмеющаясЛинкованнаяТаблица"
 
    On Error Resume Next
    Set rst = CurrentDb.OpenRecordset("select * from [" & newTbl & "]") 'Есть ли таблица в БД
    If Err.Number <> 0 Then
        Err.Clear
        On Error GoTo 0
        
        Set dbe = CreateObject("DAO.DBEngine.36")
        con = Replace(CurrentDb.TableDefs(linkTbl).Connect, ";DATABASE=", "")
        Set db = OpenDatabase(con)
        On Error Resume Next
        Set rst = db.OpenRecordset("select * from [" & newTbl & "]")
        If Err.Number <> 0 Then 'Есть ли таблица в табличной базе
            Err.Clear
            On Error GoTo 0
            db.Execute "create table [" & newTbl & "] " _
            & "(id counter constraint ptimarykey primary key, txt text(50))"
            Set tdf = mydb.CreateTableDef(newTbl)
            tdf.SourceTableName = newTbl
            tdf.Connect = CurrentDb.TableDefs(linkTbl).Connect
            mydb.TableDefs.Append tdf
 
        End If
    End If
    
End Sub
1
 Аватар для Kkarn
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
06.02.2015, 11:27  [ТС]
mobile, Отлично! Это как раз то, что нужно. В очередной раз огромное спасибо!)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.02.2015, 11:27
Помогаю со студенческими работами здесь

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

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

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

Добавление данных из одной таблицы в другую.
Всем доброго времени суток. Есть такая проблема. Точнее две, но все по порядку. Имеются две таблицы, первая база данных по сотрудникам...

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
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