2013-03-06 2 views
0
Dim inc As Integer 
Dim MaxRows As Integer 
Dim con As New OleDb.OleDbConnection 
Dim dbProvider As String 
Dim dbSource As String 
Dim dA As OleDb.OleDbDataAdapter 
Dim dS As New DataSet 
Dim SQL As String 

Private Sub AbrirToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AbrirToolStripMenuItem.Click 
    Dim strFileName As String 
    Dim ClikedOk As Integer 

    OpenFD.InitialDirectory = "C:\" 
    OpenFD.Title = "Ubica la base de datos" 
    OpenFD.Filter = "Agenda|Agenda.mdb" 
    OpenFD.ShowDialog() 

    If ClikedOk = DialogResult.OK Then 
     strFileName = OpenFD.FileName 
     dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;" 
     dbSource = "Data Source = Agenda.mdb" 

     con.ConnectionString = dbProvider & dbSource 
     con.Open() 
     SQL = "SELECT * FROM Contactos" 
     dA = New OleDb.OleDbDataAdapter(SQL, con) 
     dA.Fill(dS, "Agenda") 

     con.Close() 
     MaxRows = dS.Tables("Agenda").Rows.Count 
     inc = -1 

    End If 
End Sub 

내가하고 싶은이있다 파일. "dbSource = Data Source = ..."줄에 무엇을 넣어야합니까? 사용자가 선택한설정 데이터 소스는

dbSource = "Data Source=""" & OpenFD.FileName & """" 

그리고 그 파일에 Data Source를 가리 킵니다 :

dbSource = "Data Source = Agenda.mdb" 

이에 : 액세스 데이터베이스 내가이 줄

답변

1

변경을 .accdb 사용하여 문제를 가지고 있기 때문에 .MDB입니다 .

+0

의견을 보내 주셔서 감사합니다. 그러나 문제가 해결되지 않았습니다. 사실, OpenFD.Filename; 그것은 나에게 ";" 거기에 가지 않는다. –

+0

@CamiloBloodstar, 제 사과, 제 언어가 섞여 있어요. 당신은 VB를 사용하고 있는데, 주로 C#으로 작성하기 때문에 거기에';'를 써 넣습니다. 그럼에도 불구하고 사용자가 선택한 파일의 경로를 얻고 싶다고 말했을 때 - 변경하지 않는'OpenFD.FileName'을 가진'dbSource'에 파일을 추가하기 만하면됩니다. 내 편집을보고, 구문 오류를 해결했습니다. *** 및 *** 경로에 공백이있는 경우를 대비하여 문자열에 큰 따옴표를 넣습니다. –

0

그럼 문제가 좀 있습니다. Jet drivers are 32 bit and need to be updated if you want to use jet to access databases in 64 bit windows.

32 비트 드라이버를 사용하려면 WoW64 모드로 실행되도록 앱을 구성 할 수도 있습니다. 당신은 제트 작품을 만들기에 대해 뭔가를 할 경우

, 당신은 할 수 있습니다 :

dbSource = "Data Source=" & OpenFD.FileName; 

당신은 제트가 작동하는지고의 남이하지 않은 경우, then you can use the .Net libraries to connect 변경 :

dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;" 
dbSource = "Data Source = Agenda.mdb" 

행운을 빕니다

dbProvider = "Driver={Microsoft Access Driver (*.mdb)};" 
dbSource = "Dbq=" & "Agenda.mdb;" 

에.

+0

Somewhy AccessDatabaseEngine_x64.exe를 설치하려고하면 32 비트 환경에 있다고 들었지만 Windows x64, Visual Studio x64 및 Office x64가 있습니다. 두 가지 옵션을 모두 시도했지만 그 중 아무 것도 제대로 작동하지 않았습니다. Ok 버튼을 클릭하면 데이터베이스가로드되지 않습니다. 어쨌든 시간을내어 주셔서 감사합니다! –

관련 문제