powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
18 сообщений из 18, страница 1 из 1
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40051426
Фотография Vakho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В MS ACCESS 2003 есть возможность вручную импортировать (Import...) и
экспортировать (Export...) таблицы различного формата:
dBASE (III, IV, 5), EXCEL (xls), CSV, TXT ...

А как при помощи Visual Studio 2010 Ultimate можно запрограммировать
эти процессы ? То есть существует некоторое десктоп приложение,
созданное при помощи Visual Studio 2010 Ultimate, а также существует
некоторая MS ACCESS-база данных. Щёлкнули по кнопке - импортируется,
например, DBF-файл в некоторую таблицу. Другая кнопка - таблица
экспортируется в DBF-файл.

Спасибо.

PS. Я при помощи Visual Studio 2010 Ultimate, ADO / ADOX
делал присоединения ( Linked Tables ), а так же создавал запросы ( queries ).
А вот импорт / экспорт ...
...
Рейтинг: 0 / 0
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40051499
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vakho,

Тут вам никто не ответит, потому что непонятно сформулировал вопрос. Откуда и куда импорт должен идти?

PS. Выложи код линковки на C# ( на нем писал ранее?)
...
Рейтинг: 0 / 0
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40051529
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vakho,

самый простой и "ленивый" вариант, это делать через COM-объект Access.Application и его метод DoCmd.TransferDatabase
Но для этого нужно будет что бы был установлен Акс на "целевой машине"
А это, наверняка, слишком "жирное" требование :)

Тогда, "путь самурая" - запросы:
https://stackoverflow.com/questions/11231454/copying-to-from-dbase-data-using-access
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
INSERT INTO [dBASE III;DATABASE=z:\docs\].[dbf2.dbf]
SELECT *
FROM dbf1;

INSERT  INTO dbf1
SELECT *
FROM  [dBASE III;DATABASE=z:\docs\].[dbf2.dbf];
...
Рейтинг: 0 / 0
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40051543
Фотография Vakho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лалов,
Импорт - в базу данных на MS ACCESS. Например, у вас есть
файл MyFile.DBF. Вы его можете импортировать в таблицу
MyFile, которая создаётся в процессе импортирования, и
в которую переносятся данные из MyFile.DBF.
Экспорт - из таблицы в файл. Например, есть таблица
MyTable. Я могу экспортировать её в файл, например, MyTable.DBF.

Всё это можно сделать вручную средствами MS ACCESS.

Всё это так же можно сделать при помощи VBA, который встроен в
MS ACCESS. Но я не хочу использовать VBA при всём моём к нему уважении.

Я хочу написать десктоп приложение, которое, грубо говоря,
будет "подавть команды" MS ACCESS-у через штатные "соединители":
либо ODBC, либо OLEDB, либо ADO / ADOX, либо ...

По вашей просьбе прикрепляю архив с программами линковки.
Написаны в Visual Studio 2010 ULTIMATE на Visual Basic-е
в среде Windows XP SP3. Использовался MS ACCESS 2003.
Перебросить их в C# наверно будет не трудно.
Структура архива WinRAR:
- папка MSAccessLinkedTablesManagement - работа с Linked Tables.
- папка MSAccessQueriesManagement - работа с View (Query).
Кроме этого отдельно высылаю:
ErrorsDescriptionClasses.rar, PublicFunctionsAndSubs.rar - вспомогательные методы
общего пользования. См. ниже.

Для нормальной работы методов в Windows XP предварительно должен быть установлен
Microsoft Data Access Components (MDAC) 2.8 Software Development Kit, загрузка
которого может быть осуществлена отсюда:
https://www.microsoft.com/en-us/download/details.aspx?id=21995

Классы LinkedTables и View использует
- ADOX (Microsoft ActiveX Data Objects Extensions 2.8 for DDL and Security);
- ADODB.
Для этого должны быть установлены ссылки (Propertie / References) на следующие
библиотеки:
- Microsoft ActiveX Data Objects 2.8 Library (тип библиотеки - COM);
- Microsoft ADO Ext. 2.8 for DDL and Security (тип библиотеки - COM).
...
Рейтинг: 0 / 0
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40051544
Фотография Vakho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лалов,
Архив с архивами вспомогательных методов общего пользования.
- ErrorsDescriptionClasses.rar
- PublicFunctionsAndSubs.rar
...
Рейтинг: 0 / 0
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40051549
Фотография Vakho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лалов,
Смотрите также ссылки в файле.
...
Рейтинг: 0 / 0
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40051596
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я з@срал свой Vs этими файлами))

В общем смотрите, самый простой способ. Так как вы пишите в vb, вам нужно в проект импортировать библиотеки и среду исполнения ms access . Так как вы подключились ранее к аксессу там, все они у вас есть.
Что вам нужно сделать, из проекта VS подключиться к возможностям VBA акссесс, библы аксесса, самого аксессовского файла и уже при помощи него (среды MS Access) выполнить простые команды типа :
docmd.transferdatabase acimport
или
docmd.transferdatabase acexport
именно они отвечают за импорт и экспорт, аналог тех функций которые вы делаете руками в самом аксессе,как писали ранее.


Какой код должен работать в VS после подключения библиотек:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
dbFile = "С:\путь к файлу аксесс\storage.accdb"
Set acApp = CreateObject("Access.Application") ' создаем объект типа акссесс
acApp.OpenCurrentDatabase dbFile ' открываем его
Set acDoCmd = acApp.DoCmd ' даем ему ссылку на инициализацию команды docmd
'выполняем команду импорта или экспорта
acDoCmd.TransferSpreadsheet  acimport' здесь после набор констант, которые более гибко позволят настроить импорт/или экспорт
acApp.Quit ' закрываем объект




и усё в общем то
...
Рейтинг: 0 / 0
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40051626
Фотография Vakho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лалов,

Visual Studio 2010 не видит метод CreateObject(),
хотя я подключил: ADO, ADOX. На всякий случай подключил OLEDB, ODBC.

Что не так ?

Прошу пардону, недоглядел.
...
Рейтинг: 0 / 0
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40051640
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vakho,

Та не могет такого быть, у вас дружественная среда vb. Вы можете в импорт библиотек напихать все что угодно.
Вам не надо ODBC вообще - вы заставляете сам аксесовский файл выполнить код внутри себя. То есть используете API самого аксесовского файла и его среды.
...
Рейтинг: 0 / 0
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40051644
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел пример реализации даже :

Код: vbnet
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.
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Access
Imports Microsoft.VisualBasic
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Windows.Forms

Dim acApp As New Microsoft.Office.Interop.Access.Application

        acApp.OpenCurrentDatabase("D:\S\Test\Test.mdb", False)
        acApp.DoCmd.TransferDatabase(Microsoft.Office.Interop.Access.AcDataTransferType.acImport, _
                                     "dBASE III", "D:\S\Test\", Microsoft.Office.Interop.Access.AcObjectType.acTable, _
                                     "Test.dbf", "Job")


        acApp.DoCmd.OpenQuery("Query1") ' Updates Data
        acApp.DoCmd.OpenQuery("Query2") ' Creates Table
        acApp.DoCmd.OpenQuery("Query3") ' Appends Data to New table
        acApp.DoCmd.OpenQuery("Query4") ' More updates to new table

        acApp.DoCmd.TransferDatabase(Microsoft.Office.Interop.Access.AcDataTransferType.acExport, "dBASE IV", _
                                     "D:\S\Test\", Microsoft.Office.Interop.Access.AcObjectType.acTable, "NewJob", _
                                     "NewDBF")

        acApp.CloseCurrentDatabase()



PS. Это именно то,что вам нужно.
...
Рейтинг: 0 / 0
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40051654
Фотография Vakho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лалов,
Спасибо, у меня всё заработало ещё до ваших последних двух сообщений.
Просто я не до конца всё проверил.
Ни OLEDB, ни ODBC, ни ADO / ADOX, ничего из этого не понадобилось.
...
Рейтинг: 0 / 0
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40051656
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vakho,

Да, нормально, можно еще упростить затестил только что в VS (вообще не надо библиотек никаких подключать в импорт):
Данный код берет таблицу из аксесс и экспортирует ее в формат excel у меня на рабочем столе.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim dbFile As String
        Dim acApp As Object
        Dim acDoCmd As Object
        dbFile = "C:\Users\SL\Desktop\storage.accdb"
        acApp = CreateObject("Access.Application") ' создаем объект типа акссесс
        acApp.OpenCurrentDatabase(dbFile) ' открываем его
        acDoCmd = acApp.DoCmd ' даем ему ссылку на инициализацию команды docmd
        'выполняем команду импорта или экспорта
        acDoCmd.Outputto(0, "t_test", "Excel Workbook (*.xlsx)", , True) 
        acApp.Quit ' закрываем объект
    End Sub
End Class
...
Рейтинг: 0 / 0
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40051667
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лалов
Vakho,

Да, нормально, можно еще упростить затестил только что в VS (вообще не надо библиотек никаких подключать в импорт):
Данный код берет таблицу из аксесс и экспортирует ее в формат excel у меня на рабочем столе.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim dbFile As String
        Dim acApp As Object
        Dim acDoCmd As Object
        dbFile = "C:\Users\SL\Desktop\storage.accdb"
        acApp = CreateObject("Access.Application") ' создаем объект типа акссесс
        acApp.OpenCurrentDatabase(dbFile) ' открываем его
        acDoCmd = acApp.DoCmd ' даем ему ссылку на инициализацию команды docmd
        'выполняем команду импорта или экспорта
        acDoCmd.Outputto(0, "t_test", "Excel Workbook (*.xlsx)", , True) 
        acApp.Quit ' закрываем объект
    End Sub
End Class

а что, в дот.нете не принято "обнулять" объекты ?
я не в курсе, вдруг что ... :)
...
Рейтинг: 0 / 0
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40051669
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
court,
да ,крайне желательно хлопнуть, но он сам уже разберется с этим делом .
...
Рейтинг: 0 / 0
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40051686
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лалов,

мдя, студия прикольная штучка, я тут с vb-net недавно потыкался пару часов на бесплатной коммюнити 2019,
впечатлило... если щёки не надувать, выбрать фрейворк 2, то после Release небольшой .exe файл, на любой
машине работает без проблем, даже если на ней вообще ничего не установлено кроме ОС...
Я б так сказал - студия с vb-net это следующая ступень для акцесника в своем развитии...
Ну так скажем модуль в модуль закопипастил, потом максимум 5 % подшаманил, и в путь...
Правда с лету не понял что там в ней с привычными отчетами и как, но можно сразу выводить в Эксель и не парится особо...
...
Рейтинг: 0 / 0
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40051692
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

Да, точно. Ну я бы не стал в VS продолжать писать в VB. VB и VBA это могилка из которой надо выбираться:)
Лучше сразу в C#.

У меня был кривой путь, сначала я подучил Java, а потом увидел что C# очень похож , и гораздо более дружелюбный.
Собрал пару простеньких десктопных приложений на C# Windows Forms + mysql (надо сказать что там есть все , и гриды,и кнопки и многое чего другое. И можно обработать поведение вообще на любой вкус,любого контрола. И функционал побогаче чем в офисном пакете.)
Отчеты там тоже есть ,они входят в большущий блок Reporting Service. Там можно их делать динамическими, с фильтрами,комбобоксами, выбором срезов. Я туда не совался. Слишком обширная тема.

VS у меня живет на компе ради сборки мобильных приложений. Там есть Xamarin, где человек, который знает синтаксис Java или C++, или C# (базового уровня достаточно) сможет написать сразу приложение ,которое можно скомпилировать и под андроид и под айфон. Я поэтому за него держусь.
...
Рейтинг: 0 / 0
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40051702
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS и кстати VS community edition (она покрывает 99.9% потребности нашего брата формошлепа и базодела) абсолютно бесплатная в отличии от аксесса. И если писать приложения и иметь доход ваш/компании в год меньше 1млн долларов и количество разрабов <5ти, то вам не надо ничего отчислять в MS.
...
Рейтинг: 0 / 0
MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
    #40052008
Vakho, для вашей задачи нет нужды поднимать приложение Access. Запрос вида Select... Into... с правильной строкой подключения выполнит и импорт, и экспорт. Для текстовых файлов может понадобиться спецификация в файле Schema.ini.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / MS ACCESS 2003: Как в Visual Studio запрограммировать Import и Export таблиц
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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