2017-02-08 16 views
1

Я пытаюсь импортировать данные из Excel в Access.Использование INSERT INTO ..... SELECT для импорта Excel для доступа

файлу Excel получает выбран с помощью

Function selectFile() 
    Dim fd As FileDialog 
    Set fd = Application.FileDialog(msoFileDialogFilePicker) 

    With fd 
     If .Show Then 
      selectFile = .SelectedItems(1) 
     Else 
      End 
     End If 
    End With 

    Set fd = Nothing 
End Function 

выбранный файл всегда будет иметь только 1 Рабочий

До сих пор я использую TransferSpreadsheet

DoCmd.TransferSpreadsheet acImport, 8, "Summary", selectFile(), True 

и все было хорошо. Однако выбранный файл может содержать дополнительные, нежелательные столбцы данных. Мне просто нужны данные в первых столбцах данных, строка 1 - это строка заголовка, а заголовки в листе excel соответствуют первым 4 заголовкам столбцов в таблице «Summary» («ПРЕДЛОЖЕНИЕ», «ОПИСАНИЕ»), «Total AMRM» "," RMACCNUM ").

Дополнительная проблема заключается в том, что рабочий лист с данными можно назвать «Sheet1», «Summary» или, возможно, что-то еще!

Я пробовал INSERT INTO ...... SELECT .... FROM, но не могу получить синтаксис вправо.

Любая помощь очень ценится.

+0

Возможный дубликат [Вставить в Access Выбрать из Excel из Access VBA] (http://stackoverflow.com/questions/33896746/insert-into-access-select-from-excel-from-within-access-vba) –

ответ

1

Используйте местоположение Темпа для отображения (и фильтрации) вопросы, дает лучший контроль над процессом

DoCmd.TransferSpreadsheet acImport, 8, "TempSummary", selectFile(), True 

Затем проверьте Сопоставления и вставить данные:

CurrentDB.Execute "INSERT INTO Summary (OFFER, DESCRIPTION, [Total AMRM], RMACCNUM) " & _ 
"SELECT(OFFER, DESCRIPTION, [Total AMRM], RMACCNUM) " & _ 
"FROM TempSummary" 

Финли, удалите Temp стол:

CurrentDb.TableDefs.Delete "TempSummary" 
+0

Пришлось удалить круглые скобки после SELECT, но в остальном отличное решение, большое спасибо. – user3663792

0

Вы будете лучше соединение таблица.

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

Сохраните этот запрос и используйте его для дальнейшего обрабатывая как добавление записей к существующим таблицам.

 Смежные вопросы

  • Нет связанных вопросов^_^