2017-09-12 6 views
0
Private Sub Button_Import_Click(sender As Object, e As EventArgs) Handles Button_Import.Click 
    Try 
     Dim MyConnection As OleDb.OleDbConnection 
     Dim Ds As System.Data.DataSet 
     Dim MyAdapter As System.Data.OleDb.OleDbDataAdapter 

     MyConnection = New System.Data.OleDb.OleDbConnection(String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\Users\matil\Desktop\KontaktDaten.xlsx';Extended Properties=Excel 8.0")) 
     MyAdapter = New System.Data.OleDb.OleDbDataAdapter("Select * from [KontaktDaten$]", MyConnection) 
     Ds = New System.Data.DataSet 
     MyAdapter.Fill(Ds) 
     Me.DataGridView_Kontakte.DataSource = Ds.Tables(0) 
    Catch ex As Exception 
     MsgBox(ex.Message) 
    End Try 
End Sub 

上記のコードでは、ExcelデータファイルをDataGridviewにインポートしていますが、ユーザーがロード時に自分のデータソースを選択できるようにしたいファイルウィンドウ。どうすれば実現できますか?私はすでにこのように自分のコードを修正しようとしましたが、私はいつも "Microsoft Accesデータベースでファイルを開くか書き込めません"というエラーが出ます。OleDb setデータソースファイルを読み込むウィンドウ

Dim Path As New OpenFileDialog() 
MyConnection = New System.Data.OleDb.OleDbConnection(String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 8.0", Path)) 
+0

ちょうどクエリを変更:あなたのケースでは

Dim indlg As New OpenFileDialog indlg.DefaultExt = "csv" indlg.Filter = "Texte|*.txt|CSV-Files|*.csv|Alle Files|*.*" indlg.Title = "Textdatei" indlg.Multiselect = False If indlg.ShowDialog <> DialogResult.OK Then MessageBox.Show("Funktionsabbruch.", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information) Exit Sub End If 

を、不足しているだけの行があります。 – muffi

+0

あなたは多分私に例を示すことができますか? – matilarab

+0

データソース/列がわからないため、例を表示できません。しかし、上の例をあなた自身が入力しました( 'Select * from [KontaktDaten $]')。 – muffi

答えて

0

あなたのご意見にお答えするには、問題を処理するのが簡単です。私は、ファイル名を取得するために、このコードを使用します。

MyConnection = New System.Data.OleDb.OleDbConnection(String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & indlg.FileName & ";Extended Properties=Excel 8.0")) 
関連する問題