Trước tên để "chỉ" cho bạn, tôi đang thắc mắc là table bangchung của bạn có Primary key là hai field so và mavb, trong khi file Excel của bạn có so mà không có mavb, vậy thì khi insert vào nó chửi sao? Hay là loai trong Excel tương đương với mavb trong Access?
Thôi tôi tạm coi như vậy đi:
Đầu tiên bạn làm một cái "ăn gian" sau:
Từ Access, bạn cho import data từ file Excel cái range mà bạn chứa thông tin bạn cần đưa vào (số, ngày,loại, trích yếu. Đúng không?)
Rồi bạn làm cái procedure sau: (Private nếu bạn để chung với code của một form nào đó, Public nếu bạn để trong trang module dùng chung)
[Private/Public] Sub InsertFromExcel()
CurrentDB.Excecute "DELETE * FROM table_chứa_dữ_liệu_import_từ_Excel"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "bangchung",tên_đầy_đủ_của_file_Excel, True
CurrentDB.Excecute "INSERT INTO bangchung (so, mavb, ngay, trichyeu) SELECT so, loai, ngay, trichyeu FROM table_chứa_dữ_liệu_import_từ_Excel"
End Sub
Rồi từ một cái form nào đó, bạn cho một nút lệnh, bạn cho cái thủ tục sự kiện Click một câu duy nhất:
InsertFromExcel
Thế thôi !!!