Đoạn code "Insert từ Excel sang Access" trong Access bị sai chỗ nào?

Liên hệ QC

anhphuong

Thân Thương
Tham gia
12/3/07
Bài viết
514
Được thích
2,601
Xin các cao thủ chỉ giùm đoạn code sau đây được viết trong Access bị sai ở đâu mà không hoạt động :
PHP:
Sub ChepDuLieu()
    Dim i As Integer
    Dim Conn As ADODB.Connection
    Set Conn = CurrentProject.Connection
    Dim WbC As Object
    Set WbC = GetObject("D:\TaiLieu.xls")
    Conn.Execute "Delete * from tblTaiLieu"
    With WbC
        With .Worksheets("Sheet1")
            For i = 1 To 30
                SqlR = "Insert Into tblTaiLieu Values("
                SqlR = SqlR & .Cells(i, 1) & ", "
                SqlR = SqlR & .Cells(i, 2) & ", "
                SqlR = SqlR & .Cells(i, 3) & ", "
                SqlR = SqlR & "'" & 0 & "', "
                SqlR = SqlR & .Cells(i, 5) & ", "
                SqlR = SqlR & .Cells(i, 6) & ", "
                SqlR = SqlR & .Cells(i, 7) & ", "
                SqlR = SqlR & .Cells(i, 8) & ", "
                SqlR = SqlR & .Cells(i, 9) & " )"
                Conn.Execute SqlR
            Next i
        End With
    End With
    WbC.Close
    Set WbC = Nothing
    MsgBox "Done"
End Sub

Tôi đã tham chiếu đủ các thư viện động : DAO 3.6, ActiveX Data Object 2.8 Library, Visuabasic Application 5.3.....
Cám ơn
 
Lẽ ra bạn nên ghi là lỗi gì, hoặc up file lên thì dễ đoán hơn.
Căn cứ vào code mình tạo table có trường thứ 4 là text còn là là number hết
và số hàng mình chỉ cho đúng với số hàng có dữ liệu của excel thì thấy code chạy ngon mà.
lưu ý là - hãy kiểm tra kiểu dữ liệu nếu là text mà chứa dấu ' là cũng gây lỗi
- xem có hàng tiêu đề trong excel không vì mình thấy i bắt đầu =1, và có kết thúc ở hàng 30 không.
 

File đính kèm

  • TaiLieu.rar
    11.4 KB · Đọc: 180
Anh Phương,
Đoạn code trên báo lỗi chổ nào?
Thông thường sử dụng luôn đối tượng connection để cập nhật, ít dùng lắm.

Lê Văn Duyệt
 
Loi.jpg


Đây là lỗi
Dữ liệu được Insert bao gồm cả kiểu Text, Number, Date
 
Lần chỉnh sửa cuối:
Loi.jpg


Đây là lỗi
Dữ liệu được Insert bao gồm cả kiểu Text, Number, Date

Nên nhớ là khi insert thì trường text đc bao bởi dấu 'text', ngày tháng #date#, số thì không cần gì cả
Xem lại câu sql vì text mà bạn không có dấu '', chú ý nếu trong text chứa dấu ' như EDSON INT'L thì nhớ mà replace thành dấu khác không là lỗi tiếp.
ví dụ kiểu text
PHP:
SQL= " INSERT INTO Employees " _
        & "(FirstName,LastName, Title) VALUES " _
        & "('Harry', 'Washington', 'Trainee')"
kiểu date
PHP:
SQL="INSERT INTO tblDate (dDate) VALUES (#" & AccessDate(NOW()) & "#)"
 
Web KT
Back
Top Bottom