2011-09-13 21 views
6

いくつかの単純なVBAコードを使用してExcelスプレッドシートをAccessにインポートしようとしています。私が実行した問題は、Excelファイルに2つのワークシートがあり、2番目のワークシートをインポートする必要があることです。 VBAコードに必要なワークシートを指定することは可能ですか?VBAを使用してExcelワークシートをAccessにインポート

Private Sub Command0_Click() 

Dim dlg As FileDialog 
Set dlg = Application.FileDialog(msoFileDialogFilePicker) 

With dlg 
.Title = "Select the Excel file to import" 
.AllowMultiSelect = False 
.Filters.Clear 
.Filters.Add "Excel Files", "*.xls", 1 
.Filters.Add "All Files", "*.*", 2 

If .Show = -1 Then 
StrFileName = .SelectedItems(1) 
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "COR Daily", StrFileName, True 
Else 
Exit Sub 
End If 
End With 

End Sub 

私は'StrFileName'&'.Worksheetname'にStrFileNameを設定すべきか?それはそれのための適切な命名計画ですか?

StrFileName = StrFileName & ".WorkSheetName" 

答えて

11

DoCmd.TransferSpreadsheet Methodの範囲パラメータでシート名を渡しますよう

何か。そのページの下部にある「範囲パラメータのワークシート」というボックスを参照してください。

このコードは、 "temp.xls"という名前のブック内の "temp"という名前のシートからインポートし、 "tblFromExcel"という名前のテーブルにデータを格納します。

Dim strXls As String 
strXls = CurrentProject.Path & Chr(92) & "temp.xls" 
DoCmd.TransferSpreadsheet acImport, , "tblFromExcel", _ 
    strXls, True, "temp!" 
+0

感嘆符のようなものはすべて違いがあります。 Thanxs。 –

+1

ターゲットテーブルがAccessデータベースに既に存在し、同じ構造を持っている場合、インポートされたデータがそのテーブルに追加されることに注意する必要があります。 – Aris

+0

これは今ではmがExcelと同じテーブル構造を持っていますが、作成された新しいテーブル –

関連する問題