1

ExcelファイルをMS Accessデータベーステーブルにインポートするモジュールがあります。私は得る: MS Access データベース エンジンはオブジェクト 'REPORTCONFIG' を見つけることができませんでした。テーブル REPORTCONFIG は存在し、コードによって「ピックアップ」されます。これは、Excel をインポートする直前に、最初にテーブルを空にする (正常に動作する) ためです。Excel のタブがテーブルと同じ名前であることを確認しました。(レポート構成)

これは私のモジュールです:

Dim MyExcelFileDialogBox As New OpenFileDialog()
        If MyExcelFileDialogBox.ShowDialog = DialogResult.OK Then
            MyExcelFullFileName = MyExcelFileDialogBox.FileName
            MyExcelFile = Dir(MyExcelFileDialogBox.FileName)
            MyExcelFilePath = Path.GetDirectoryName(MyExcelFileDialogBox.FileName)
            ModuleConnection.AccessConnect()
            ModuleTables.DeleteTableContent(MyTableName)
            Dim MyExcelInsertSQL As String = "INSERT INTO [" & MyTableName & "] SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=" & MyExcelFullFileName & "].[" & MyTableName & "];"
            Dim MyCommand As OleDbCommand = New OleDbCommand(MyExcelInsertSQL, MyAccessConnection)
            Try
                MyCommand.ExecuteNonQuery()
                MyCommand.Dispose()
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
            MyAccessConnection.Close()
        End If 

どんな助けでも大歓迎です。

4

1 に答える 1

1

クエリのデータ ソースとしてワークシートを使用する場合は$、シート名の後にドル記号 ( ) を追加して、見つけられるようにします。

この単純なSELECTクエリでは、db エンジンは見つからないと文句を言いますREPORTCONFIG

SELECT *
FROM [Excel 12.0;DATABASE=C:\share\Access\MyWorkBook.xlsx;HDR=YES].[REPORTCONFIG];

ただし、句で使用REPORTCONFIG$すると、次のクエリはエラーなしでデータを返します。FROM

SELECT *
FROM [Excel 12.0;DATABASE=C:\share\Access\MyWorkBook.xlsx;HDR=YES].[REPORTCONFIG$];
于 2013-01-07T17:57:13.013 に答える