Làm thế nào để thêm bản ghi cho DBF bằng VBA?

Liên hệ QC

loi.havan

Thành viên mới
Tham gia
1/9/07
Bài viết
8
Được thích
0
File dữ liệu DBF của mình có thể thêm bản ghi bằng cách mở bằng Visual Fox nhưng rất bất tiện vì đang làm Excel lại phải thoát ra mở VF rồi quay lại.
Mình muốn hỏi có thể dùng VBA để ghi tiếp một bản ghi vào cuối cùng của một file DBF hay không? nếu được thỉ giúp mình CODE nhé (DBF của mình có 4 trường: Mã tra/Tên/Đơn vị/Ghi chú).
 
Tôi thấy tài liệu này trên mạng hay hay, bạn tham khảo xem có ích gì cho mình ko??


Đọc tập tin DBF trong Access

Đó hỏi: Trong Access XP, tôi làm một form trên đó có nút lệnh để chọn tập tin DBF (free table của Visual Foxpro), lấy dữ liệu vào bảng có sẵn trong Access. Tôi dùng lệnh TransferDatabase nhưng không được. Xin e-CHÍP hướng dẫn. <duynvcntt@>

Đây trả lời: Đúng là lệnh TransferDatabase không hỗ trợ định dạng tập tin DBF của Visual Foxpro. Vì thế, để nhập một tập tin DBF vào một table có sẵn trong Access, bạn phải sử dụng cách khác: mở tập tin DBF và table có sẵn trong Access bằng VBA, sau đó chép từng record sang.
Ví dụ sau đây nhập tập tin KH_Code.DBF (là một free table) ở cùng thư mục với tập tin MDB có sẵn một table có tên tbKHCode (có cùng cấu trúc như tập tin KH_Code.DBF). Cấu trúc đơn giản có 3 field: Ma_KH, Ten_KH, Dia_Chi.
Bạn thiết kế một form mới, vẽ một nút lệnh có tên cmdImport, rồi gõ vào đoạn mã 1. Trước khi chạy thử ứng dụng, trong cửa sổ soạn thảo VBA, bạn phải chọn mục References trên trình đơn Tools. Trong hộp thoại References, chọn các mục Microsoft DAO 3.6 Object Library (hoặc phiên bản cao nhất của DAO Object Library) và Microsoft Remote Data Object 2.0 (hoặc phiên bản cao nhất của Remote Data Object).

Đoạn mã 1
PHP:
Option Compare Database
Private Sub cmdImport_Click()
      ' Mở table tbKHCode
      Dim db As Database, rs As Recordset
      Set db = CurrentDb()
      Set rs = db.OpenRecordset("tbKHCode")
      ' Múã file KH_Code.DBF laâ free table
      Dim cn As New rdoConnection   ' Sử dụng Microsoft Remote Data Object
      Dim rsFoxpro As rdoResultset
      Dim SQL As String
      cn.Connect = "SourceType=DBF;" _
            & "SourceDB=" & Me.Application.CurrentProject.Path & ";" _
            & "Driver={Microsoft Visual FoxPro Driver}"
      cn.CursorDriver = rdUseOdbc
      cn.EstablishConnection "rdDriverNoPrompt"
      SQL = "SELECT * FROM KH_Code"
      Set rsFoxpro = cn.OpenResultset(SQL, rdOpenKeyset, rdConcurRowVer)
      rsFoxpro.MoveFirst
      Do Until rsFoxpro.EOF
          rs.AddNew
          rs!Ma_KH = rsFoxpro!Ma_KH
          rs!Ten_KH = rsFoxpro!Ten_KH
          rs!Dia_Chi = rsFoxpro!Dia_Chi
          rs.Update
          rsFoxpro.MoveNext
      Loop
      rsFoxpro.Close
      Set rsFoxpro = Nothing
      cn.Close
      Set cn = Nothing
      rs.Close
      Set rs = Nothing
      db.Close
      Set db = Nothing
End Sub
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom