หา Code แปลง .dbf เป็น .xls
Posted: Mon Mar 13, 2017 4:01 pm
พอดีผมต้องเขียนโปรแกรมออกรีพอทจาก File .dbf ที่ถูกสร้างขึ้นจาก DOS แต่ผมลอง Link Table ไปที่ .dbf file ปรากกว่า ไม่สามารถอ่านค่าภาษาไทยได้ ผมเลยลอง Save .dbf เป็น .xls แล้วลอง Link ใหม่ปรากฏว่าอ่านได้นะครับ
แต่ประเด็นคือถ้าให้ User มาทำเองคงไม่สะดวกเพราะ Program ใช้กันหลายคน และผมไม่ต้องการให้ User ไปยุ่งกับไฟล์ใน Server เพราะ File เยอะมากเลยลองเขียน Script แปลงค่าดูดังนี้ครับ
Private Sub Command0_Click()
On Error GoTo Err_Command0_Click
Dim fn As String
Dim newfn As String
fn = "C:\Users\User\Desktop\XJ\New folder\tx5025A.dbf"
Set xlq = CreateObject("excel.application")
Set xl = xlq.workbooks.Open(fn)
newfn = Replace(fn, ".dbf", ".xls")
xl.saveas filename:=newfn, FileFormat:=xlnormal
xl.Close savechanges:=False
xlq.Quit
Set xl = Nothing
Set xlq = Nothing
Exit_Command0_Click:
Exit Sub
Err_Command0_Click:
MsgBox Err.Description
Resume Exit_Command0_Click
End Sub
แต่พอลองใช้ไม่สามารถแปลงได้นะครับ มันขึ้นเตือนแบบนี้ครับ
"SaveAs Method of Workbook class failed"
ทำอย่างไรดีครับ
แต่ประเด็นคือถ้าให้ User มาทำเองคงไม่สะดวกเพราะ Program ใช้กันหลายคน และผมไม่ต้องการให้ User ไปยุ่งกับไฟล์ใน Server เพราะ File เยอะมากเลยลองเขียน Script แปลงค่าดูดังนี้ครับ
Private Sub Command0_Click()
On Error GoTo Err_Command0_Click
Dim fn As String
Dim newfn As String
fn = "C:\Users\User\Desktop\XJ\New folder\tx5025A.dbf"
Set xlq = CreateObject("excel.application")
Set xl = xlq.workbooks.Open(fn)
newfn = Replace(fn, ".dbf", ".xls")
xl.saveas filename:=newfn, FileFormat:=xlnormal
xl.Close savechanges:=False
xlq.Quit
Set xl = Nothing
Set xlq = Nothing
Exit_Command0_Click:
Exit Sub
Err_Command0_Click:
MsgBox Err.Description
Resume Exit_Command0_Click
End Sub
แต่พอลองใช้ไม่สามารถแปลงได้นะครับ มันขึ้นเตือนแบบนี้ครับ
"SaveAs Method of Workbook class failed"
ทำอย่างไรดีครับ