tự động cập nhật excel vào access (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

hoabattu3387

Thành viên chính thức
Tham gia
11/9/08
Bài viết
91
Được thích
2
Mình có 1 file access lấy dữ liệu từ file excel vào bảng BVL để tạo ra 2 report BVL và VTB, file excel thay đổi theo ngày (cả nội dung lẫn tên file). Nhờ các bạn viết code giúp mình trên access để tự động lấy dữ liệu từ file excel.
Mình cảm ơn cả nhà!
 

File đính kèm

Mình có 1 file access lấy dữ liệu từ file excel vào bảng BVL để tạo ra 2 report BVL và VTB, file excel thay đổi theo ngày (cả nội dung lẫn tên file). Nhờ các bạn viết code giúp mình trên access để tự động lấy dữ liệu từ file excel.
Mình cảm ơn cả nhà!
Bạn chỉnh code sau và chạy thử nhé

Mã:
On Error Resume Next
DoCmd.DeleteObject acTable, "BVL"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "BVL", "DuongDanDenFile", True, "DetailOfCreditTotalTransaction!A6:Z17"
 
Upvote 0
Bạn chỉnh code sau và chạy thử nhé

Mã:
On Error Resume Next
DoCmd.DeleteObject acTable, "BVL"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "BVL", "DuongDanDenFile", True, "DetailOfCreditTotalTransaction!A6:Z17"
Anh ơi, lệnh DoCmd.DeleteObject sẽ bị xóa cả bảng "BVL", nên lệnh DoCmd.TransferSpreadsheet không tìm thấy bảng "BVL" để import ạ.
 
Upvote 0
Anh ơi, lệnh DoCmd.DeleteObject sẽ bị xóa cả bảng "BVL", nên lệnh DoCmd.TransferSpreadsheet không tìm thấy bảng "BVL" để import ạ.
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "\\10.33.132.218\ktts\Doi soat\12. POS-BVL\THANG 09.17\28.09\28.09.xlsx", True, "DetailOfCreditTotalTransaction!A6:Z19"
e chạy riêng lệnh này vẫn báo lỗi ạ upload_2017-9-28_11-6-51.png
 
Upvote 0
Anh ơi, lệnh DoCmd.DeleteObject sẽ bị xóa cả bảng "BVL", nên lệnh DoCmd.TransferSpreadsheet không tìm thấy bảng "BVL" để import ạ.
Nó sẽ xóa bảng BVL cũ và thay thế bằng bảng BVL mới chứ làm gì có chuyện báo lỗi không tìm thấy bảng BVL để import? Có chăng là không tìm thấy BVL để xóa thôi, cho nên tôi mới có dòng On error resume next đó.
 
Upvote 0
Upvote 0
Mã:
Sub importfile()
Dim tblefilename, tblename As String
tblefilename = Access.CurrentProject.Path
tblename = tblefilename & "\28.09.xlsx"
DoCmd.DeleteObject acTable, "BVL"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "BVL", tblename, True, "DetailOfCreditTotalTransaction!A6:Z19"
DoCmd.RunSavedImportExport "chi tiet gui bvl.xlsx"
End Sub
anh kiểm tra giúp em dòng code (DoCmd.RunSavedImportExport "chi tiet gui bvl.xlsx"), e muốn export bảng "chi tiet gui bvl" mà báo lỗi, e ko hiểu ạ.
 
Upvote 0
Mã:
Sub importfile()
Dim tblefilename, tblename As String
tblefilename = Access.CurrentProject.Path
tblename = tblefilename & "\28.09.xlsx"
DoCmd.DeleteObject acTable, "BVL"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "BVL", tblename, True, "DetailOfCreditTotalTransaction!A6:Z19"
DoCmd.RunSavedImportExport "chi tiet gui bvl.xlsx"
End Sub
anh kiểm tra giúp em dòng code (DoCmd.RunSavedImportExport "chi tiet gui bvl.xlsx"), e muốn export bảng "chi tiet gui bvl" mà báo lỗi, e ko hiểu ạ.
Túm lại bạn đã đưa dữ liệu vào được chưa?
Câu lệnh
Mã:
DoCmd.RunSavedImportExport "chi tiet gui bvl.xlsx"
Mục đích của bạn làm gì?
upload_2017-9-28_15-1-35.png
Bạn có làm động tác trên khi Import dữ liệu không?
 
Upvote 0
Upvote 0
Upvote 0
Bạn thử như sau nhé.
Mã:
DoCmd.OutputTo ObjectType:=acOutputQuery, ObjectName:="TenQueryCuaBan", OutputFormat:=acFormatXLSX
được rồi anh ạ, chỗ import vào bảng "BVL" ý anh, vì mỗi ngày 1 file dữ liệu khác nhau, nếu em muốn chọn đến dòng có dữ liệu (trừ dòng tổng cộng cuối cùng) thì có cách nào không anh, vì khi e tăng số dòng lên cao để đảm bảo dữ liệu luôn import vào hết thì lại bị dòng tổng cộng dính vào.
 
Upvote 0
được rồi anh ạ, chỗ import vào bảng "BVL" ý anh, vì mỗi ngày 1 file dữ liệu khác nhau, nếu em muốn chọn đến dòng có dữ liệu (trừ dòng tổng cộng cuối cùng) thì có cách nào không anh, vì khi e tăng số dòng lên cao để đảm bảo dữ liệu luôn import vào hết thì lại bị dòng tổng cộng dính vào.
Import bình thường thì phải chịu thôi bạn, muốn theo ý phải dùng ADO.

Bạn thử code sau nhé:
Mã:
Dim cn As Object
Dim SourcePath As String
Set cn = CreateObject("ADODB.Connection")
SourcePath = "DuongDanDenFile\DetailOfCreditTotalTransaction_20170926_105939.xlsx"
Set cn = CurrentProject.Connection
cn.Execute ("insert into BVL SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=" & SourcePath & "].[DetailOfCreditTotalTransaction$A6:Z100] Where MID is not null")
Code này sẽ ghi nối xuống dưới bảng BVL, Nếu muốn bỏ cái cũ thì dùng code xóa nó đi trước khi chạy code trên.
 
Upvote 0
Dim cn As Object
Mã:
Sub importfile()
On Error Resume Next
Dim tblefilename, tblename As String
tblefilename = Access.CurrentProject.Path
FName = "\29.09.XLSX"
tblename = tblefilename & FName
DoCmd.DeleteObject acTable, "BVL"
Dim cn As Object
Set cn = CreateObject("ADODB.Connection")
Set cn = CurrentProject.Connection
cn.Execute ("insert into BVL SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=" & tblename & "].[DetailOfCreditTotalTransaction$A6:Z100] Where MID is not null")
DoCmd.OutputTo ObjectType:=acOutputQuery, ObjectName:="chi tiet gui bvl", OutputFormat:=acFormatXLSX, Outputfile:=tblefilename & "\chi tiet gui bvl.xlsx"
DoCmd.OutputTo ObjectType:=acOutputReport, ObjectName:="BVL", OutputFormat:=acFormatPDF, Outputfile:=tblefilename & "\BVL.pdf"
DoCmd.OutputTo ObjectType:=acOutputReport, ObjectName:="VTB", OutputFormat:=acFormatPDF, Outputfile:=tblefilename & "\VTB.pdf"
End Sub
SourcePath As String Set cn = CreateObject("ADODB.Connection") SourcePath = "DuongDanDenFile\DetailOfCreditTotalTransaction_20170926_105939.xlsx" Set cn = CurrentProject.Connection cn.Execute ("insert into BVL SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=" & SourcePath & "].[DetailOfCreditTotalTransaction$A6:Z100] Where MID is not null")
e sửa thế này nhưng vẫn bị báo lỗi, và thoát luôn access ạ, a xem giúp em sai chỗ nào với: upload_2017-9-29_14-28-49.png
 
Upvote 0
Upvote 0
Mã:
cn.Execute ("insert into BVL SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=" & tblename & "].[DetailOfCreditTotalTransaction$A6:Z100] Where MID is not null")
đến dòng này thì báo lỗi và thoát luôn access ạ.
Bạn kiểm tra lại tiêu đề cột coi có đúng với tiêu đề cột trong bảng BVL không nhé. Mà trước khi báo lỗi hình trên nó có thông báo lỗi gì không bạn?
 
Upvote 0
Bạn kiểm tra lại tiêu đề cột coi có đúng với tiêu đề cột trong bảng BVL không nhé. Mà trước khi báo lỗi hình trên nó có thông báo lỗi gì không bạn?
tiêu đề cột đúng a ạ, chạy qua dòng
Mã:
Set cn = CurrentProject.Connection
thì báo lôĩ và thoát luôn access.
cái chỗ "insert in to BVL..." liệu nó có hiểu insert vào bảng BVL ko anh?
 
Upvote 0
tiêu đề cột đúng a ạ, chạy qua dòng
Mã:
Set cn = CurrentProject.Connection
thì báo lôĩ và thoát luôn access.
cái chỗ "insert in to BVL..." liệu nó có hiểu insert vào bảng BVL ko anh?
Máy tôi chạy bình thường, bạn thử chạy code này từ file Excel coi nó có bị gì không nhé

Mã:
Dim cn As Object
Set cn = CreateObject("ADODB.Connection")
cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\POS.accdb")
cn.Execute ("insert into BVL SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=" & ThisWorkbook.FullName & "].[DetailOfCreditTotalTransaction$A6:Z100] Where MID is not null")
 
Upvote 0
Máy tôi chạy bình thường, bạn thử chạy code này từ file Excel coi nó có bị gì không nhé

Mã:
Dim cn As Object
Set cn = CreateObject("ADODB.Connection")
cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\POS.accdb")
cn.Execute ("insert into BVL SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=" & ThisWorkbook.FullName & "].[DetailOfCreditTotalTransaction$A6:Z100] Where MID is not null")
e chạy từ excel thì được ạ. nhưng khi e sửa code như này vào access
Mã:
Sub importfile()
Dim tblefilename, tblename As String
tblefilename = Access.CurrentProject.Path
FName = "\BVL.XLSX"
tblename = tblefilename & FName
Dim cn As Object
Set cn = CreateObject("ADODB.Connection")
cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & tblename)
cn.Execute ("insert into BVL SELECT * FROM [Excel 12.0;HDR=YES;DATABASE= [DetailOfCreditTotalTransaction$A6:Z100] Where MID is not null")
DoCmd.OutputTo ObjectType:=acOutputQuery, ObjectName:="chi tiet gui bvl", OutputFormat:=acFormatXLSX, Outputfile:=tblefilename & "\chi tiet gui bvl.xlsx"
DoCmd.OutputTo ObjectType:=acOutputReport, ObjectName:="BVL", OutputFormat:=acFormatPDF, Outputfile:=tblefilename & "\BVL.pdf"
DoCmd.OutputTo ObjectType:=acOutputReport, ObjectName:="VTB", OutputFormat:=acFormatPDF, Outputfile:=tblefilename & "\VTB.pdf"
End Sub
thì báo lỗi "unreconigze database fomat" từ dòng
Mã:
cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & tblename)
 
Upvote 0
e chạy từ excel thì được ạ. nhưng khi e sửa code như này vào access
Mã:
Sub importfile()
Dim tblefilename, tblename As String
tblefilename = Access.CurrentProject.Path
FName = "\BVL.XLSX"
tblename = tblefilename & FName
Dim cn As Object
Set cn = CreateObject("ADODB.Connection")
cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & tblename)
cn.Execute ("insert into BVL SELECT * FROM [Excel 12.0;HDR=YES;DATABASE= [DetailOfCreditTotalTransaction$A6:Z100] Where MID is not null")
DoCmd.OutputTo ObjectType:=acOutputQuery, ObjectName:="chi tiet gui bvl", OutputFormat:=acFormatXLSX, Outputfile:=tblefilename & "\chi tiet gui bvl.xlsx"
DoCmd.OutputTo ObjectType:=acOutputReport, ObjectName:="BVL", OutputFormat:=acFormatPDF, Outputfile:=tblefilename & "\BVL.pdf"
DoCmd.OutputTo ObjectType:=acOutputReport, ObjectName:="VTB", OutputFormat:=acFormatPDF, Outputfile:=tblefilename & "\VTB.pdf"
End Sub
thì báo lỗi "unreconigze database fomat" từ dòng
Mã:
cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & tblename)
Bạn thử test code sau:
Mã:
Private Sub Command0_Click()
    Dim tblefilename, tblename As String
    tblefilename = Access.CurrentProject.Path
    FName = "\DetailOfCreditTotalTransaction_20170926_105939.xlsx"
    tblename = tblefilename & FName
    Dim cn As Object
    Set cn = CreateObject("ADODB.Connection")
    cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & tblefilename & "\POS.accdb")
    
    cn.Execute ("insert into [BVL] SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=" & tblename & "].[DetailOfCreditTotalTransaction$A6:Z100] Where MID is not null")
    DoCmd.OutputTo ObjectType:=acOutputQuery, ObjectName:="chi tiet gui bvl", OutputFormat:=acFormatXLSX, Outputfile:=tblefilename & "\chi tiet gui bvl.xlsx"
    DoCmd.OutputTo ObjectType:=acOutputReport, ObjectName:="BVL", OutputFormat:=acFormatPDF, Outputfile:=tblefilename & "\BVL.pdf"
    DoCmd.OutputTo ObjectType:=acOutputReport, ObjectName:="VTB", OutputFormat:=acFormatPDF, Outputfile:=tblefilename & "\VTB.pdf"
End Sub
 

File đính kèm

Upvote 0
Đã chạy oki rồi anh ạ. Em hỏi chút là dictionary có dùng được trong access không anh?em search google mà không thấy nói đến, em muốn query từng MiD và xuất ra các file excel 1 cách tự động (như query "chi tiet gui bvl" của em nhưng có bao nhiêu MID thì bấy nhiêu file chứ ko phải 1 file tổng hợp như hiện tại ạ)
 
Upvote 0
Đã chạy oki rồi anh ạ. Em hỏi chút là dictionary có dùng được trong access không anh?em search google mà không thấy nói đến, em muốn query từng MiD và xuất ra các file excel 1 cách tự động (như query "chi tiet gui bvl" của em nhưng có bao nhiêu MID thì bấy nhiêu file chứ ko phải 1 file tổng hợp như hiện tại ạ)
Có sẵn Query thì chỉ duyệt qua nó thôi, đâu cần dùng dic làm gì bạn.
 
Upvote 0
A giúp em để em học tập với ạ. Em chỉ nghĩ đến dic, nhưng ở excel thì e biết làm còn access e mới học nên chưa nghĩ ra cách ạ.
Tạo 1 recordset với câu truy vấn là select distinct MID..., rồi sau đó dùng vòng lặp duyệt qua từng dòng của field MID này, mỗi lần duyệt qua lấy giá trị gán vào điều kiện lọc và xuất file. LÀm như vậy sẽ gọn và linh hoạt hơn.
 
Upvote 0
Các phần mềm sử dung câu truy vấn SQL query có những phép tính lọc hiệu quả hơn ta dùng Dictionary nhiều.
Lưu ý rằng lọc không trùng chỉ là một ứng dụng của Dictionary mà ở diễn đàn này sử dụng nhiều. Có vậy thôi.
 
Upvote 0
Tạo 1 recordset với câu truy vấn là select distinct MID..., rồi sau đó dùng vòng lặp duyệt qua từng dòng của field MID này, mỗi lần duyệt qua lấy giá trị gán vào điều kiện lọc và xuất file. LÀm như vậy sẽ gọn và linh hoạt hơn.
A kiểm tra đoạn sau của e giúp e với sao recordcount chỉ có 1 record nhỉ? em có sai chỗ nào không ạ?
Mã:
   Dim rcs As Recordset
    Dim qry As QueryDef
    Set qry = CurrentDb.QueryDefs("chi tiet gui bvl")
    Set rcs = qry.OpenRecordset
    MsgBox (rcs.RecordCount)
 
Upvote 0
A kiểm tra đoạn sau của e giúp e với sao recordcount chỉ có 1 record nhỉ? em có sai chỗ nào không ạ?
Mã:
   Dim rcs As Recordset
    Dim qry As QueryDef
    Set qry = CurrentDb.QueryDefs("chi tiet gui bvl")
    Set rcs = qry.OpenRecordset
    MsgBox (rcs.RecordCount)
Bạn thêm dòng này trước Msgbox:

rcs.MoveLast
 
Upvote 0
Tạo 1 recordset với câu truy vấn là select distinct MID..., rồi sau đó dùng vòng lặp duyệt qua từng dòng của field MID này, mỗi lần duyệt qua lấy giá trị gán vào điều kiện lọc và xuất file. LÀm như vậy sẽ gọn và linh hoạt hơn.
E TẠO 1 QUERY "MID" VÀ LÀM NHƯ SAU MÀ BÁO LỖI, A XEM GIÚP EM THEO LINK SAU NHÉ (E KO POST ĐC FILE) https://drive.google.com/drive/folders/0By-1v-3ovcUWWWtrQzVyOTRmRGc
 
Upvote 0
E TẠO 1 QUERY "MID" VÀ LÀM NHƯ SAU MÀ BÁO LỖI, A XEM GIÚP EM THEO LINK SAU NHÉ (E KO POST ĐC FILE) https://drive.google.com/drive/folders/0By-1v-3ovcUWWWtrQzVyOTRmRGc
Làm cho bạn luôn.

Mã:
Private Sub Command1_Click()
    Dim db As DAO.Database
    Dim rs, rs1 As DAO.Recordset
    Dim qdf As DAO.QueryDef
    Dim mypath As String
    mypath = Access.CurrentProject.Path
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("SELECT DISTINCT MID FROM BVL", dbOpenDynaset)
    Label3.Visible = True
    txtMid.Visible = True
    Do While Not rs.EOF
        txtMid = rs("MID")
        With DoCmd
            .OpenReport "rptBVL", acViewPreview, , "[BVL].[MID]='" & txtMid & "'"
            .OutputTo acOutputReport, "rptBVL", acFormatPDF, mypath & "\" & txtMid & ".pdf"
            .Close acReport, "rptBVL"
            Set qdf = db.QueryDefs("chi tiet gui bvl")
            qdf.Parameters(0) = txtMid
            Set rs1 = qdf.OpenRecordset
            .OutputTo acOutputQuery, "chi tiet gui bvl", acFormatXLSX, mypath & "\" & txtMid & ".xlsx"
        End With
        rs.MoveNext
    Loop
    Label3.Visible = False
    txtMid.Visible = False
    Set rs = Nothing
    Set rs1 = Nothing
    Set db = Nothing
    MsgBox "Da thuc hien xong viec xuat du lieu.", vbExclamation
End Sub

Giải nén và chạy file Access nhé.
 

File đính kèm

Upvote 0
Làm cho bạn luôn.

Mã:
Private Sub Command1_Click()
    Dim db As DAO.Database
    Dim rs, rs1 As DAO.Recordset
    Dim qdf As DAO.QueryDef
    Dim mypath As String
    mypath = Access.CurrentProject.Path
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("SELECT DISTINCT MID FROM BVL", dbOpenDynaset)
    Label3.Visible = True
    txtMid.Visible = True
    Do While Not rs.EOF
        txtMid = rs("MID")
        With DoCmd
            .OpenReport "rptBVL", acViewPreview, , "[BVL].[MID]='" & txtMid & "'"
            .OutputTo acOutputReport, "rptBVL", acFormatPDF, mypath & "\" & txtMid & ".pdf"
            .Close acReport, "rptBVL"
            Set qdf = db.QueryDefs("chi tiet gui bvl")
            qdf.Parameters(0) = txtMid
            Set rs1 = qdf.OpenRecordset
            .OutputTo acOutputQuery, "chi tiet gui bvl", acFormatXLSX, mypath & "\" & txtMid & ".xlsx"
        End With
        rs.MoveNext
    Loop
    Label3.Visible = False
    txtMid.Visible = False
    Set rs = Nothing
    Set rs1 = Nothing
    Set db = Nothing
    MsgBox "Da thuc hien xong viec xuat du lieu.", vbExclamation
End Sub

Giải nén và chạy file Access nhé.
Em cảm ơn anh Hai Lúa ạ. Em đọc code của anh và đã hiểu tương đối ạ, nhưng anh có thể xem giúp em vì sao em dùng filter thì bị lỗi là do sai chỗ nào ạ? Em muốn học hỏi thêm cách này nữa. anh giúp em nhé.
 
Upvote 0
Em cảm ơn anh Hai Lúa ạ. Em đọc code của anh và đã hiểu tương đối ạ, nhưng anh có thể xem giúp em vì sao em dùng filter thì bị lỗi là do sai chỗ nào ạ? Em muốn học hỏi thêm cách này nữa. anh giúp em nhé.
Tôi không tải file được vì không có quyền
upload_2017-10-9_13-37-56.png
 
Upvote 0
Tôi không tải file được vì không có quyền
View attachment 184510
xin lỗi anh, e vừa sharing rồi ạ.
Mã:
Private Sub Command2_Click()

      Dim tblefilename, tblename As String
    tblefilename = Access.CurrentProject.Path
    FName = "\BVL.xlsx"
    tblename = tblefilename & FName
    Dim cn As Object
    Set cn = CreateObject("ADODB.Connection")
    cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & tblefilename & "\POS.accdb")
   cn.Execute ("DELETE * FROM BVL")
    cn.Execute ("insert into [BVL] SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=" & tblename & "].[DetailOfCreditTotalTransaction$A6:Z100] Where MID is not null")
 Set cn = Nothing
End Sub

Private Sub Command3_Click()
Dim tblefilename, tblename As String
tblefilename = Access.CurrentProject.Path
FName = "\BVL.xlsx"
tblename = tblefilename & FName
DoCmd.OutputTo ObjectType:=acOutputQuery, ObjectName:="chi tiet gui bvl", OutputFormat:=acFormatXLSX, Outputfile:=tblefilename & "\chi tiet gui bvl.xlsx"
DoCmd.OutputTo ObjectType:=acOutputReport, ObjectName:="BVL", OutputFormat:=acFormatPDF, Outputfile:=tblefilename & "\BVL.pdf"
DoCmd.OutputTo ObjectType:=acOutputReport, ObjectName:="VTB", OutputFormat:=acFormatPDF, Outputfile:=tblefilename & "\VTB.pdf"
Dim rcs, rcs1 As Recordset
Dim qry, qry1 As QueryDef
Set qry = CurrentDb.QueryDefs("chi tiet gui bvl")
Set qry1 = CurrentDb.QueryDefs("mid")
Set rcs = qry.OpenRecordset
rcs.MoveLast
rcs.Move first
Set rcs1 = qry1.OpenRecordset
For I = 0 To rcs1.RecordCount - 1
With rcs
.Filter = "[Mid] =" & rcs1!Mid
Set orcs = .OpenRecordset
.Close
orcs.MoveLast
orcs.MoveFirst
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, orcs, tblefilename & "\" & I & ".xlsx", True
End With
Next
Set rcs = Nothing
Set rcs1 = Nothing
Set cn = Nothing
End Sub
 
Upvote 0
Bạn chỉnh code sau và chạy thử nhé

Mã:
On Error Resume Next
DoCmd.DeleteObject acTable, "BVL"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "BVL", "DuongDanDenFile", True, "DetailOfCreditTotalTransaction!A6:Z17"

Do data của mình quá lớn nên mình phải tách ra thành nhiều file data access khác nhau (cùng cấu trúc), anh @Hai Lúa Miền Tây có thể hướng dẫn giúp mình cách thay tên table name như thế nào để import được đúng file access không anh nhỉ?

Mình đã thử thay dạng
Mã:
DoCmd.TransferSpreadsheet(acImport, _
    acSpreadsheetTypeExcel12Xml, "D:\data1.accdb\Sales", vFileSourceLink, _
    False, "A2:K50000")

code không báo lỗi nhưng hoàn toàn không import vào access.

Cám ơn anh ạ.
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom