2016-01-26 5 views
0

Мне нужно импортировать одну строку данных с листа excel в таблицу базы данных Access.
Я предварительно сконфигурировал строку данных, чтобы ячейки соответствовали полям таблицы доступа. Данные были названы диапазоном.
Используя GUI доступа, я могу добавить таблицу, и она дает мне возможность импортировать диапазон, а не таблицу.
Есть ли способ сделать это через VBA?import named range from excel to access

ответ

0

Да, есть ... более одного пути, на самом деле. Я бы, вероятно, сделал бы что-то подобное в макросе Access VBA. Сначала откройте книгу Excel с помощью автоматизации COM:

Dim xl As Object 
Set xl = CreateObject("Excel.Application") 'open Excel 
Dim wb as Object, ws as Object 
Set wb = xl.WorkBooks.Open("c:\mypath\myfile.xlsx") 'open WorkBook 
Set ws = wb.worksheets("My Sheet") 'Select WorkSheet 

Затем получите данные из вашего именованного диапазона.

Data1 = ws.Range("myRangeName").Cells(1,1) 
Data2 = ws.Range("myRangeName").Cells(1,2) 
Data3 = ws.Range("myRangeName").Cells(1,3) 
Data4 = ws.Range("myRangeName").Cells(1,4) 

Затем сделать любые необходимые манипуляции с данными при необходимости перед установкой в ​​операторе SQL Access (например, даты в формате, имеют дело со специальными символами). Наконец, вставьте данные в строку SQL.

qs = "INSERT INTO MyTable (Field1,Field2,Field3,Field4) VALUES ('" & Data1 & "','" & Data2 & "','" & Data3 & "','" & Data4 & "');" 
CurrentDb.Execute qs 

В этом примере предполагается, что все поля получат строковые данные.

+0

Благодарим за информацию. Это похоже на то, что я пытался сделать. –