powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Копирование таблиц средствами VBA
35 сообщений из 35, показаны все 2 страниц
Копирование таблиц средствами VBA
    #39303044
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли как-то перенести таблицу из одной базы в другую программно -средствами VBA.
Без построения таблицы и полей средствами VBA.
Мне надо сделать небольшую программку на Access 2007, создать в ней таблицу (конструктором), отдать программку пользователю, он нажмёт кнопочку на всплывающей форме и таблица "перепрыгнет" к нему в базу. Или я фантазёр?
--------------------------------------------------------------------------
СПС
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303134
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58,

сам не делал, но функционал есть в 2007.
Запрос на создание таблицы - стандартным конструктором
только указываете базу получатель
или ручками написать с формированием строки адреса базы
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303142
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58,

DoCmd.TransferDatabase
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303143
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58,

или
DoCmd.CopyObject
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303147
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58,

или
SELECT…INTO
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303168
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58,

Кроме того, о недостатках способа
SELECT…INTO
почитайте здесь: создать пустую таблицу со структурой существующей .
Что про "пустую" - не обращайте внимания, все то же самое относится и к "полной".)))
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303237
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle,

понял.
спасибо.
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303238
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,
Это не понял.
как ?
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303263
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58,

мастером конструкторов создайте запрос нужных данных.
Потом переключитесь в тип окна - конструктор(запроса)
там на вкладке будет - создать таблицу. Нажимаете.
Далее по вопросам мастера.

После этого можно посмотреть сформированную строку запроса.
переключить запрос в вид - SQL.

Или его задействовать, или сделать свой в vba, Если динамичность нужна.
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303265
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303266
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303268
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

Спасибо огромное.
Понял.
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303275
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

Чем результат этих манипуляций отличается от 19624621 ?
Тем, что запрос wizard составит?
А как быть с 19624691 ?
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303302
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58,
Думаю, вам надо немного оптимизировать процесс.
Вы забрасываете нужные таблицы в "транзитный" файл, пользователь размещает этот файл в определённый каталог, после чего прямо у себя в программе (я так понимаю, что у пользователя программа вашей разработки) нажимает кнопочку "принять". То есть нет нужды в транзитном файле делать формочку, кнопочку, и пользователю метаться между программами и тыкать кнопочки там и сям.
Правда, тут удобно и "культурно" по нажатию кнопочки сделать предварительную проверку наличия в каталоге файла с определённым именем, и проверку наличия таблицы. Плюс по этой же кнопочке, или отдельной - сделать удаление из базы пользователя старых таблиц. Тогда не будет вылетать ошибок.
Сама загрузка таблицы из внешнего файла выполняется, как было сказано __Michelle командой
DoCmd.TransferDatabase acImport, "Microsoft Access", NameFiles, acTable, "ТаблицаВФайле", "ТаблицаВФайлеПришло", False.

Если интересно - могу скинуть пример и расписать подробнее.
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303345
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tarasios,

Спасибо.
Вы оч подробно всё расписали.
-----------------------------------
То есть нужно добавить кнопку в сервисной форме программы:
[Загрузить обновление].
-----------------------------------
И иногда ею пользоваться.
=================================================
Но это только если изменения коснулись добавления таблиц, форм, отчётов, запросов в отдельности.
Если же изменения коснулись и модулей и форм и запросов с отчётами - проще просто заменить файл с интерфейсом.
Или у Вас и на этот счёт есть хороший совет?
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303349
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tarasios,

Задачей обновления может быть просто добавка в имеющуюся таблицу с данными - нового поля(полей).
Задачей обновления может быть разбивка поля таблицы на 2-... поля с разносом данных по добавленным полям.
Задачи могут быть разными.
Поэтому я создаю файл с формой и кнопочкой - [Обновить программу]
Файл кладётся в директорию программы и запускается.
Пользователь жмёт кнопочку
Выполняется код (проверка и исправления).
И пользователь получает сообщение о том, что всё норм.

Мне кажется такой вариант обновления более приемлем.
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303433
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58,
Я, наверное, извращенец: если я вижу запрос "Можно ли как-то перенести таблицу из одной базы в другую программно -средствами VBA.", то я предполагаю, что речь идёт именно о "перенести таблицу". И, по мере умений, даю вариант ответа именно на этот запрос. Каюсь, что не допетрил о всех остальных хотелках ТС ))) А заниматься теоретизированием, где, как и в каких ипостасях может использоваться обновление БД - вещь, не спорю - архиинтересная, но требует отдельного топика ;)
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303437
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tarasios,
Я имел ввиду что у пользователя программы не может быть универсальной кнопочки загрузки обновления.
Или вы предлагаете сделать таковую кнопку на один сеанс обновления?
Или что вы имеете ввиду, говоря о моих хотелках?
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303440
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58, откуда взялась "универсальная кнопочка загрузки обновлений"? Если первоначально речь шла именно о переносе таблицы (таблиц)?
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303441
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58Можно ли как-то перенести таблицу из одной базы в другую программно -средствами VBA.
Без построения таблицы и полей средствами VBA.А через буфер обмена - не?
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303443
D.B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
D.B
Гость
час58Или что вы имеете ввиду, говоря о моих хотелках?
Я извиняюсь , что встряю.
Но о Ваших хотелках , мне кажется вообще бредовая идея.
1.Если брать во внимание метод Seek , то получается , что у Вас неразделенная база , и таблицы и вся программа находятся в одной базе , что не очень то и хорошо. На мой взгляд .
2 . Самый простой способ , это сделать изменения в программе и переслать клиенту .
3. А Вы не задумывались над квалификацией клиента , и то что у него таблицы с данными ? А если что нибудь пойдет не так ?
4. И частое изменение структур таблиц , на мой взгляд говорит о плохом проэктировании базы.
5. Этот список можно было бы продолжать до бесконечности
6. Извиняюсь если обидел , ничего личного.
7. А теперь все быстренько налетели на меня и заклевали .
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303448
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tarasios,

Вы предложили сделать кнопочку в программе, а не в "транзитном" файле .
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303451
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D.B,
1 интерфейс и таблицы в разных базах.
2 Файл с таблицами от этого не изменится .
3 Квалификация пользователя??? Он не пишет программу, а только нажимает на кнопочки.
4 база в начальной стадии разработки, но пользователь не хочет терять данные, которые вбил.
иду ему на встречу.
5 ,6,7 - http://www.sql.ru/forum/images/laugh.gif
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303452
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D.B3. А Вы не задумывались над квалификацией клиента , и то что у него таблицы с данными ? А если что нибудь пойдет не так ?
4. И частое изменение структур таблиц , на мой взгляд говорит о плохом проэктировании базы
Есть такой момент.
Но меня всегда мучает вопрос: что делать?
- Человек хочет новую хотелку. Для этого нужно или модифицировать уже имеющуюся таблицу или добавить новую+связать.

И вот что делать?
1. Попадать к нему по удаленке и делать ручками? - Не всегда прокатывает
2. а)Присылать базку апгрейда с кодом на автоматич создание/добавление таблиц/полей(я уже когда чую, что человек попросит, загодя ложу пару полей в таблицу. Некрасиво, но при попадании облегчает жизнь мне)
2. б)потом присылать уже новую версию клиентского файла.
3. Встроить апгрейд в клиентский файл и при старте проверять, что и куда, есть или нет. И апгрейдить. Но тоже не красивый способ. При каждом старте увеличивается время на проверку уже сделанного апгрейда...

И хорошо бы пройтись по теме. Есть заинтересованность в быстром и легком решении)))
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303453
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58, правильно, для приёма таблиц. Пересмотрите собственный "старт" топика. Я предложил, что при таком варианте у пользователя будет меньше ненужных движений. Во всяком случае, в моей ситуации я начинал с форм и кнопок в транзитном файле. Потом перешёл на вариант кнопки приёма в интерфейсе программы прямо у пользователя. Это оказалось значительно удобнее. Процедуры обработки - вторичны, потому я и описал эту методику схематично, "до востребования".
А вы вдруг переключились на:
"Но это только если изменения коснулись добавления таблиц, форм, отчётов, запросов в отдельности.
Если же изменения коснулись и модулей и форм и запросов с отчётами -..."
Это ведь совсем другая задача, и как бы не относится к теме.
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303455
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

Через буфер обмена можно?!
Круто...
не умею однако.
Только текст перегонял таким образом. И то в виде экспримента.
Надо почитать.
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303456
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИгортанD.B3. А Вы не задумывались над квалификацией клиента , и то что у него таблицы с данными ? А если что нибудь пойдет не так ?
4. И частое изменение структур таблиц , на мой взгляд говорит о плохом проэктировании базы
Есть такой момент.
Но меня всегда мучает вопрос: что делать?
- Человек хочет новую хотелку. Для этого нужно или модифицировать уже имеющуюся таблицу или добавить новую+связать.

И вот что делать?
1. Попадать к нему по удаленке и делать ручками? - Не всегда прокатывает
2. а)Присылать базку апгрейда с кодом на автоматич создание/добавление таблиц/полей(я уже когда чую, что человек попросит, загодя ложу пару полей в таблицу. Некрасиво, но при попадании облегчает жизнь мне)
2. б)потом присылать уже новую версию клиентского файла.
3. Встроить апгрейд в клиентский файл и при старте проверять, что и куда, есть или нет. И апгрейдить. Но тоже не красивый способ. При каждом старте увеличивается время на проверку уже сделанного апгрейда...

И хорошо бы пройтись по теме. Есть заинтересованность в быстром и легком решении)))

Тоже кладу несколько полей заранее, по теме таблицы...
Но тут он меня подловил сразу на шесть новых полей, и это не окончательное, я так думаю, усовершенствование.
Так что сделаю файл с кнопочкой заброски таблицы.
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303457
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58Через буфер обмена можно?!А почему нет? руками же можно...
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303459
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tarasiosчас58, правильно, для приёма таблиц. Пересмотрите собственный "старт" топика. Я предложил, что при таком варианте у пользователя будет меньше ненужных движений. Во всяком случае, в моей ситуации я начинал с форм и кнопок в транзитном файле. Потом перешёл на вариант кнопки приёма в интерфейсе программы прямо у пользователя. Это оказалось значительно удобнее. Процедуры обработки - вторичны, потому я и описал эту методику схематично, "до востребования".
А вы вдруг переключились на:
"Но это только если изменения коснулись добавления таблиц, форм, отчётов, запросов в отдельности.
Если же изменения коснулись и модулей и форм и запросов с отчётами -..."
Это ведь совсем другая задача, и как бы не относится к теме.

Понял.
Что эта кнопочка будет уметь делать?
Принимать объекты и раскладывать их по файлам?
Таблицы в табличный файл, а остальное в файл интерфейса?
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303460
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinaчас58Через буфер обмена можно?!А почему нет? руками же можно...

:-)
Да.
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303463
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58....а остальное в файл интерфейса?

а вот этого точно не нужно делать.
Интерфейсный файл просто должен быть новым
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303464
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортанчас58....а остальное в файл интерфейса?

а вот этого точно не нужно делать.
Интерфейсный файл просто должен быть новым

Совершенно согласен.
Тогда нафига эта кнопочка в программе ?
Для решения разовой задачи?
Файл - с табличкой и с кнопкой на форме - лучший выход.
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303465
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58, всё, сдаюсь: я вас решительно перестал понимать.
Какие объекты, какие "остальное", и "раскладывать по файлам"?
Если это вам всё нужно - создавайте соответствующий новый топик, народ будет сообща думать.
Этот топик, как я полагал, был посвящён теме переноса таблиц. Всё. Зачем множить сущности?
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303466
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tarasiosчас58, всё, сдаюсь: я вас решительно перестал понимать.
Какие объекты, какие "остальное", и "раскладывать по файлам"?
Если это вам всё нужно - создавайте соответствующий новый топик, народ будет сообща думать.
Этот топик, как я полагал, был посвящён теме переноса таблиц. Всё. Зачем множить сущности?

То есть для решения моей разовой задачи вы предлагаете создать кнопочку на стороне интерфейса, что бы она перекинула таблицу из файла челнока в файл с таблицами?
...
Рейтинг: 0 / 0
Копирование таблиц средствами VBA
    #39303475
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58, ага, пошла конкретика, это хорошо.
Если разово - то да, заветную кнопочку лучше делать в транзитном файле.
Тогда, если точно известно, что такой таблицы в базе клиента нету, то можно обойтись без проверки наличия таблицы в базе клиента.
Ну или сделать проверку и по результатам - просто перенести таблицу, или сначала грохнуть старую таблицу в базе клиента, потом перенести новую из файла.
Если многоразово - то кнопку (кнопки) лучше делать в базе клиента. У меня по такой системе курсируют файлы между магазинами и главной базой в торговой сети.
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Копирование таблиц средствами VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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