Mình đang làm một đoạn Macro trong VBA để tạo họp Inputbox sau đó t tự động input data từ file access vào Excel với đường dẫn được xác định trước.
Sau đây là đoạn MACRO:
--------------------------------------------------
Sub Macro1()
Dim path1 As String
Set path1 = Application.InputBox(" Nhap duong dan file", "Pathfile", Type:=2)
With ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=path1;" _
, _
"Mode=Share Deny Write;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDBatabase Password" _
, _
"="""";Jet OLEDB:Engine Type=5;Jet OLEDBatabase Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transact" _
, _
"ions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDBon'" _
, _
"t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False" _
), Destination:=Range("A1"))
.CommandType = xlCmdTable
.CommandText = Array("Column")
.Name = path1
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = _
path1
.Refresh BackgroundQuery:=False
End With
End Sub
---------------------------------
Làm hoài ma nó có báo lỗi Path1 không xác định, truy vấn file cũ hoài.
Với lại nếu bạn nào có kính nghiệm về access cho mình hỏi tại sao khi export sang excel thì với khối lượng Table có số lượng dòng quá lớn nó không cho phép chạy nổi. Có cách nào làm tăng limitation spectiflie của nó không.
Nó báo có quá nhiều dòng trong bảng nên không thực hiện được
Xin cảm ơn rất nhiều
Sau đây là đoạn MACRO:
--------------------------------------------------
Sub Macro1()
Dim path1 As String
Set path1 = Application.InputBox(" Nhap duong dan file", "Pathfile", Type:=2)
With ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=path1;" _
, _
"Mode=Share Deny Write;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDBatabase Password" _
, _
"="""";Jet OLEDB:Engine Type=5;Jet OLEDBatabase Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transact" _
, _
"ions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDBon'" _
, _
"t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False" _
), Destination:=Range("A1"))
.CommandType = xlCmdTable
.CommandText = Array("Column")
.Name = path1
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = _
path1
.Refresh BackgroundQuery:=False
End With
End Sub
---------------------------------
Làm hoài ma nó có báo lỗi Path1 không xác định, truy vấn file cũ hoài.
Với lại nếu bạn nào có kính nghiệm về access cho mình hỏi tại sao khi export sang excel thì với khối lượng Table có số lượng dòng quá lớn nó không cho phép chạy nổi. Có cách nào làm tăng limitation spectiflie của nó không.
Nó báo có quá nhiều dòng trong bảng nên không thực hiện được
Xin cảm ơn rất nhiều