Đây là đoạn ví dụ code vba nạp 1 file excel tên là nhanvien.xlsx ở ổ D vào table của access có tên tbNhanSu
Bước 1: Tạo 1 file excel có các cột theo tứ tự để nạp vào table access
Mã nhân viên Họ tên Phòng ban HSL
001 Trần A Kế toán 5
002 Trần B nhân sự 6
003 Trần C Kế toán 7
Bước 2: Tạo ra 1 file Access
- Sau đó tạo 1 table tbNhanVien có các cột: MaNV,HoTen,PhongBan
- Vào 1 From có tên frmNapFileExcel
Thêm vào form 1 button có tên btNapExcel sau đó ta copy đoạn code này vào
Private Sub btNapExcel_Click()
SQL = "Insert into tb_ChucVu_test(MaVV,HoTen,PhongBan,HSL) Values('{0}','{1}','{2}',{3})"
duongdanfile="D:\nhanvien.xlsx"
Dim conn As Object, db As Object, rst As DAO.Recordset
Set conn = CreateObject("DAO.DBEngine.120") '
' EXCEL CURRENT VERSION
Set db = conn.OpenDatabase(duongdanfile, False, True, "Excel 12.0 Xml;HDR=Yes;")
tensheet = InputBox("Ban vui long nhat ten sheet ?", "", "Sheet1")
Set rst = db.OpenRecordset("SELECT * FROM [" & tensheet & "$]")
'MsgBox rst.Fields(0)
rst.MoveLast
rst.MoveFirst
'MsgBox rst.RecordCount
MsgBox "File excel co " & rst.RecordCount & " dong du lieu "
tongbangghi_thanhcong = 0
For i = 1 To rst.RecordCount
'MsgBox rst.Fields(0)
'MsgBox rst.Fields(1)
'MsgBox rst.Fields(2)
sql_t = SQL
sql_t = Replace(sql_t, "{0}", rst.Fields(0))
sql_t = Replace(sql_t, "{1}", rst.Fields(1))
sql_t = Replace(sql_t, "{2}", rst.Fields(2))
sql_t = Replace(sql_t, "{3}", rst.Fields(3))
DoCmd.SetWarnings False
dem_ma_cv_trong_csdl = 0
dem_ma_cv_trong_csdl = DCount("MaNV", "tbNhanVien", "MaBV='" & rst.Fields(0) & "'")
If dem_ma_cv_trong_csdl = 0 Then
DoCmd.RunSQL sql_t
tongbangghi_thanhcong = tongbangghi_thanhcong + 1
End If
rst.MoveNext
Next
MsgBox "Chen duoc " & tongbangghi_thanhcong & " bang ghi"
End Sub
Cách code nạp file excel vào table access với vba, sử dụng thư viện hỗ trợ từ Office