2013-08-08 3 views
0

내 VBA 매크로에 dbf 파일을 읽으려고하고 데이터를 처리하고 선택된 워크 시트에 넣으려고 할 때 문제가 있습니다. 3001 오류 (잘못된 유형의 인수, 범위 또는 충돌)가 발생하기 때문에 붙어 있습니다.DBF (dBase) 파일 - Excel VBA에서 열고 변환하기

이것은 내 코드이며, 무엇이 잘못 될 수 있습니까?

FileToOpen = Application.GetOpenFilename _ 
(Title:="Please choose a file to import", _ 
FileFilter:="Excel Files *.dbf (*.dbf),") 
'' 
If FileToOpen = False Then 
MsgBox "Plik nie został wybrany.", vbExclamation, "Błąd!" 
Exit Sub 
Else 
    Dim conn As Object 
    Set conn = CreateObject("ADODB.Connection") 
    Dim rst As Object 
    Set rst = CreateObject("ADODB.Recordset") 
    iPos = InStrRev(FileToOpen, "\", , vbTextCompare) 
    Filepath = Left(FileToOpen, iPos) 
    Filename = Right(FileToOpen, iPos - 1) 
    MsgBox Filename & " " & Filepath 
    conn.Open "DRIVER={Microsoft dBase Driver (*.dbf)};" & "DBQ=" & Filepath 
    Debug.Print conn.ConnectionString 
    rst.Open "Select * From " & Filename, conn, adOpenStatic, adLockReadOnly, adCmdText 
Do Until rst.EOF 
    Debug.Print rst.Fields(1).Value 
    rst.MoveNext 
Loop 
    rst.Close 
    Set rst = Nothing 
    conn.Close 
    Set conn = Nothing 
End If 

는 또한 파일 형식을 확인하고 그것은 여전히 ​​그것의 형식을 알 수 없다는 뜻대로 "DBT없이 파일"입니다 :> 어쩌면 내가 드라이버 ID를 변경해야합니까?

답변

1

연결 문자열이 잘못되었다고 생각합니다. 대신이 연결 문자열을 사용해보십시오.

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Filepath & ";Extended Properties=dBASE IV" 

개봉 된 파일 경로가 폴더에 아닌 특정 파일에 대한 올바른 경로인지 확인합니다.