простая форма импорта в Access - PullRequest
3 голосов
/ 30 ноября 2009

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

Ответы [ 3 ]

4 голосов
/ 30 ноября 2009

Для версий Access, начиная с 2003 года, вы можете использовать File Dialog, чтобы позволить пользователю просматривать нужный файл, до этого вы можете использовать API calls. Если это для вас излишне, вы можете указать тип пользователя в имени файла и пути, но вам придется проверить, существует ли он, используя код (Dir может подойти).

Лучше всего использовать TransferSpreadsheet метод объекта DoCmd (доступный в любой версии Access из, AFAIK, 1997 и далее) для импорта электронной таблицы. Это может быть выполнено как VBA (код) или макрос.

1 голос
/ 30 ноября 2009

Пример использования Access 2003 будет следующим для выбора файла:

Dim fDialog  As Office.FileDialog
Dim strFile As String
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
    .InitialFileName = "C:\temp\*.xls"
    .Filters.Clear
    .Filters.Add "Excel file", "*.xls"
    .Filters.Add "All Files", "*.*"
    If .Show = True Then
        strFile = .SelectedItems(1)
    End If

End With

Debug.Print strFile

Обратите внимание, что вам нужно добавить ссылку на библиотеку объектов Office 12

Для импорта файла вы можете использовать функцию TransferSpreadsheet объекта DoCmd. Например,

    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "ExcelImport", strFile, True

Таблица доступа с именем ExcelImport должна уже существовать в базе данных.

1 голос
/ 30 ноября 2009

Если мы предполагаем, что вы можете создать форму и подключить кнопку, у вас есть две проблемы:

  1. Диалог открытия файла.
  2. Запуск импорта.

Для 1 вы должны быть в состоянии использовать стандартные диалоговые окна файлов Microsoft - мои VB.OLD и Access впечатляюще ржавые (без доступа 2007), но вы можете ссылаться на соответствующие COM-сборки из Access, после чего это становится довольно просто.

2 немного интереснее - я полагаю, что вы можете в значительной степени сделать это, выбрав меню изнутри доступа, и в этом случае, по крайней мере, в качестве первого шага, вы должны иметь возможность автоматизировать те же самые шаги - практически все, что вы можете сделать из меню вы также можете, вызвав соответствующую команду из VBA. Более сложным решением было бы создать логику VBA для создания связанной таблицы, которая ссылается на файл Excel, а затем выполнить запрос создания таблицы и затем удалить ссылку.

С точки зрения усилий, форма - это то, от чего можно ожидать, что вы сможете обойтись без особой помощи - однако автоматизация чего-то вроде импорта из Excel не обязательно очевидна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...