|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
Можно ли как-то перенести таблицу из одной базы в другую программно -средствами VBA. Без построения таблицы и полей средствами VBA. Мне надо сделать небольшую программку на Access 2007, создать в ней таблицу (конструктором), отдать программку пользователю, он нажмёт кнопочку на всплывающей форме и таблица "перепрыгнет" к нему в базу. Или я фантазёр? -------------------------------------------------------------------------- СПС ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2016, 09:38 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
час58, сам не делал, но функционал есть в 2007. Запрос на создание таблицы - стандартным конструктором только указываете базу получатель или ручками написать с формированием строки адреса базы ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2016, 14:42 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
час58, DoCmd.TransferDatabase ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2016, 15:09 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
час58, или DoCmd.CopyObject ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2016, 15:11 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
час58, или SELECT…INTO ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2016, 15:14 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
час58, Кроме того, о недостатках способа SELECT…INTO почитайте здесь: создать пустую таблицу со структурой существующей . Что про "пустую" - не обращайте внимания, все то же самое относится и к "полной".))) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2016, 15:53 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
__Michelle, понял. спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2016, 19:53 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
Игортан, Это не понял. как ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2016, 19:54 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
час58, мастером конструкторов создайте запрос нужных данных. Потом переключитесь в тип окна - конструктор(запроса) там на вкладке будет - создать таблицу. Нажимаете. Далее по вопросам мастера. После этого можно посмотреть сформированную строку запроса. переключить запрос в вид - SQL. Или его задействовать, или сделать свой в vba, Если динамичность нужна. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2016, 21:07 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
Игортан, ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2016, 21:07 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
Игортан, ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2016, 21:07 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
Игортан, Спасибо огромное. Понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2016, 21:10 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
Игортан, Чем результат этих манипуляций отличается от 19624621 ? Тем, что запрос wizard составит? А как быть с 19624691 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2016, 21:24 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
час58, Думаю, вам надо немного оптимизировать процесс. Вы забрасываете нужные таблицы в "транзитный" файл, пользователь размещает этот файл в определённый каталог, после чего прямо у себя в программе (я так понимаю, что у пользователя программа вашей разработки) нажимает кнопочку "принять". То есть нет нужды в транзитном файле делать формочку, кнопочку, и пользователю метаться между программами и тыкать кнопочки там и сям. Правда, тут удобно и "культурно" по нажатию кнопочки сделать предварительную проверку наличия в каталоге файла с определённым именем, и проверку наличия таблицы. Плюс по этой же кнопочке, или отдельной - сделать удаление из базы пользователя старых таблиц. Тогда не будет вылетать ошибок. Сама загрузка таблицы из внешнего файла выполняется, как было сказано __Michelle командой DoCmd.TransferDatabase acImport, "Microsoft Access", NameFiles, acTable, "ТаблицаВФайле", "ТаблицаВФайлеПришло", False. Если интересно - могу скинуть пример и расписать подробнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 01:10 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
Tarasios, Спасибо. Вы оч подробно всё расписали. ----------------------------------- То есть нужно добавить кнопку в сервисной форме программы: [Загрузить обновление]. ----------------------------------- И иногда ею пользоваться. ================================================= Но это только если изменения коснулись добавления таблиц, форм, отчётов, запросов в отдельности. Если же изменения коснулись и модулей и форм и запросов с отчётами - проще просто заменить файл с интерфейсом. Или у Вас и на этот счёт есть хороший совет? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 12:55 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
Tarasios, Задачей обновления может быть просто добавка в имеющуюся таблицу с данными - нового поля(полей). Задачей обновления может быть разбивка поля таблицы на 2-... поля с разносом данных по добавленным полям. Задачи могут быть разными. Поэтому я создаю файл с формой и кнопочкой - [Обновить программу] Файл кладётся в директорию программы и запускается. Пользователь жмёт кнопочку Выполняется код (проверка и исправления). И пользователь получает сообщение о том, что всё норм. Мне кажется такой вариант обновления более приемлем. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 13:13 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
час58, Я, наверное, извращенец: если я вижу запрос "Можно ли как-то перенести таблицу из одной базы в другую программно -средствами VBA.", то я предполагаю, что речь идёт именно о "перенести таблицу". И, по мере умений, даю вариант ответа именно на этот запрос. Каюсь, что не допетрил о всех остальных хотелках ТС ))) А заниматься теоретизированием, где, как и в каких ипостасях может использоваться обновление БД - вещь, не спорю - архиинтересная, но требует отдельного топика ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 20:07 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
Tarasios, Я имел ввиду что у пользователя программы не может быть универсальной кнопочки загрузки обновления. Или вы предлагаете сделать таковую кнопку на один сеанс обновления? Или что вы имеете ввиду, говоря о моих хотелках? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 20:20 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
час58, откуда взялась "универсальная кнопочка загрузки обновлений"? Если первоначально речь шла именно о переносе таблицы (таблиц)? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 20:29 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
час58Можно ли как-то перенести таблицу из одной базы в другую программно -средствами VBA. Без построения таблицы и полей средствами VBA.А через буфер обмена - не? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 20:30 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
час58Или что вы имеете ввиду, говоря о моих хотелках? Я извиняюсь , что встряю. Но о Ваших хотелках , мне кажется вообще бредовая идея. 1.Если брать во внимание метод Seek , то получается , что у Вас неразделенная база , и таблицы и вся программа находятся в одной базе , что не очень то и хорошо. На мой взгляд . 2 . Самый простой способ , это сделать изменения в программе и переслать клиенту . 3. А Вы не задумывались над квалификацией клиента , и то что у него таблицы с данными ? А если что нибудь пойдет не так ? 4. И частое изменение структур таблиц , на мой взгляд говорит о плохом проэктировании базы. 5. Этот список можно было бы продолжать до бесконечности 6. Извиняюсь если обидел , ничего личного. 7. А теперь все быстренько налетели на меня и заклевали . ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 20:32 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
Tarasios, Вы предложили сделать кнопочку в программе, а не в "транзитном" файле . ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 20:48 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
D.B, 1 интерфейс и таблицы в разных базах. 2 Файл с таблицами от этого не изменится . 3 Квалификация пользователя??? Он не пишет программу, а только нажимает на кнопочки. 4 база в начальной стадии разработки, но пользователь не хочет терять данные, которые вбил. иду ему на встречу. 5 ,6,7 - http://www.sql.ru/forum/images/laugh.gif ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 20:54 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
D.B3. А Вы не задумывались над квалификацией клиента , и то что у него таблицы с данными ? А если что нибудь пойдет не так ? 4. И частое изменение структур таблиц , на мой взгляд говорит о плохом проэктировании базы Есть такой момент. Но меня всегда мучает вопрос: что делать? - Человек хочет новую хотелку. Для этого нужно или модифицировать уже имеющуюся таблицу или добавить новую+связать. И вот что делать? 1. Попадать к нему по удаленке и делать ручками? - Не всегда прокатывает 2. а)Присылать базку апгрейда с кодом на автоматич создание/добавление таблиц/полей(я уже когда чую, что человек попросит, загодя ложу пару полей в таблицу. Некрасиво, но при попадании облегчает жизнь мне) 2. б)потом присылать уже новую версию клиентского файла. 3. Встроить апгрейд в клиентский файл и при старте проверять, что и куда, есть или нет. И апгрейдить. Но тоже не красивый способ. При каждом старте увеличивается время на проверку уже сделанного апгрейда... И хорошо бы пройтись по теме. Есть заинтересованность в быстром и легком решении))) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 20:56 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
час58, правильно, для приёма таблиц. Пересмотрите собственный "старт" топика. Я предложил, что при таком варианте у пользователя будет меньше ненужных движений. Во всяком случае, в моей ситуации я начинал с форм и кнопок в транзитном файле. Потом перешёл на вариант кнопки приёма в интерфейсе программы прямо у пользователя. Это оказалось значительно удобнее. Процедуры обработки - вторичны, потому я и описал эту методику схематично, "до востребования". А вы вдруг переключились на: "Но это только если изменения коснулись добавления таблиц, форм, отчётов, запросов в отдельности. Если же изменения коснулись и модулей и форм и запросов с отчётами -..." Это ведь совсем другая задача, и как бы не относится к теме. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 20:57 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
Akina, Через буфер обмена можно?! Круто... не умею однако. Только текст перегонял таким образом. И то в виде экспримента. Надо почитать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 20:58 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
ИгортанD.B3. А Вы не задумывались над квалификацией клиента , и то что у него таблицы с данными ? А если что нибудь пойдет не так ? 4. И частое изменение структур таблиц , на мой взгляд говорит о плохом проэктировании базы Есть такой момент. Но меня всегда мучает вопрос: что делать? - Человек хочет новую хотелку. Для этого нужно или модифицировать уже имеющуюся таблицу или добавить новую+связать. И вот что делать? 1. Попадать к нему по удаленке и делать ручками? - Не всегда прокатывает 2. а)Присылать базку апгрейда с кодом на автоматич создание/добавление таблиц/полей(я уже когда чую, что человек попросит, загодя ложу пару полей в таблицу. Некрасиво, но при попадании облегчает жизнь мне) 2. б)потом присылать уже новую версию клиентского файла. 3. Встроить апгрейд в клиентский файл и при старте проверять, что и куда, есть или нет. И апгрейдить. Но тоже не красивый способ. При каждом старте увеличивается время на проверку уже сделанного апгрейда... И хорошо бы пройтись по теме. Есть заинтересованность в быстром и легком решении))) Тоже кладу несколько полей заранее, по теме таблицы... Но тут он меня подловил сразу на шесть новых полей, и это не окончательное, я так думаю, усовершенствование. Так что сделаю файл с кнопочкой заброски таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 21:02 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
час58Через буфер обмена можно?!А почему нет? руками же можно... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 21:04 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
Tarasiosчас58, правильно, для приёма таблиц. Пересмотрите собственный "старт" топика. Я предложил, что при таком варианте у пользователя будет меньше ненужных движений. Во всяком случае, в моей ситуации я начинал с форм и кнопок в транзитном файле. Потом перешёл на вариант кнопки приёма в интерфейсе программы прямо у пользователя. Это оказалось значительно удобнее. Процедуры обработки - вторичны, потому я и описал эту методику схематично, "до востребования". А вы вдруг переключились на: "Но это только если изменения коснулись добавления таблиц, форм, отчётов, запросов в отдельности. Если же изменения коснулись и модулей и форм и запросов с отчётами -..." Это ведь совсем другая задача, и как бы не относится к теме. Понял. Что эта кнопочка будет уметь делать? Принимать объекты и раскладывать их по файлам? Таблицы в табличный файл, а остальное в файл интерфейса? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 21:07 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
Akinaчас58Через буфер обмена можно?!А почему нет? руками же можно... :-) Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 21:08 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
час58....а остальное в файл интерфейса? а вот этого точно не нужно делать. Интерфейсный файл просто должен быть новым ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 21:08 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
Игортанчас58....а остальное в файл интерфейса? а вот этого точно не нужно делать. Интерфейсный файл просто должен быть новым Совершенно согласен. Тогда нафига эта кнопочка в программе ? Для решения разовой задачи? Файл - с табличкой и с кнопкой на форме - лучший выход. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 21:13 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
час58, всё, сдаюсь: я вас решительно перестал понимать. Какие объекты, какие "остальное", и "раскладывать по файлам"? Если это вам всё нужно - создавайте соответствующий новый топик, народ будет сообща думать. Этот топик, как я полагал, был посвящён теме переноса таблиц. Всё. Зачем множить сущности? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 21:14 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
Tarasiosчас58, всё, сдаюсь: я вас решительно перестал понимать. Какие объекты, какие "остальное", и "раскладывать по файлам"? Если это вам всё нужно - создавайте соответствующий новый топик, народ будет сообща думать. Этот топик, как я полагал, был посвящён теме переноса таблиц. Всё. Зачем множить сущности? То есть для решения моей разовой задачи вы предлагаете создать кнопочку на стороне интерфейса, что бы она перекинула таблицу из файла челнока в файл с таблицами? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 21:17 |
|
Копирование таблиц средствами VBA
|
|||
---|---|---|---|
#18+
час58, ага, пошла конкретика, это хорошо. Если разово - то да, заветную кнопочку лучше делать в транзитном файле. Тогда, если точно известно, что такой таблицы в базе клиента нету, то можно обойтись без проверки наличия таблицы в базе клиента. Ну или сделать проверку и по результатам - просто перенести таблицу, или сначала грохнуть старую таблицу в базе клиента, потом перенести новую из файла. Если многоразово - то кнопку (кнопки) лучше делать в базе клиента. У меня по такой системе курсируют файлы между магазинами и главной базой в торговой сети. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2016, 21:33 |
|
|
start [/forum/topic.php?all=1&fid=45&tid=1613190]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 381ms |
total: | 505ms |
0 / 0 |