ongke0711 > 22-12-15, 08:44 PM
maidinhdan > 23-12-15, 11:51 PM
(22-12-15, 08:44 PM)ongke0711 Đã viết: Nhờ các anh em trong diễn đàn giải thích giùm về cách viết câu lệnh nạp record từ table cho Unbound form. Mình thấy có 2 cách nhưng không biết nó khác nhau như thế nào? điểm tốt/ xấu của mỗi cách viết? (Do tự học lung tung nên có những cái cơ bản mình chưa thông ).
Lấy record: rs.Fields("Tên Field").Value VS rs!Tên Field (cách này hay sử dụng)
Ví dụ:
Public Sub NapBanGhi()
Dim sSQL As String
If IsNull(Me.OpenArgs) = False Then
sSQL = "SELECT * FROM tblBangCap WHERE [Ma] = " & Me.OpenArgs
Set db = CurrentDb
Set rs = db.OpenRecordset(sSQL, dbOpenDynaset)
......................................................................
Cách 1:
Me.txtMa = rs.Fields("Ma").Value
Me.txtTen = rs.Fields("Ten").Value
Me.txtGhiChu = rs.Fields("GhiChu").Value
......................................................................
Cách 2:
Me.txtMa = rs!Ma
Me.txtTen = rs!Ten
Me.txtGhiChu = rs!GhiChu
.....................................................................
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
End If
End Sub
hieuvn > 24-12-15, 11:57 AM
ongke0711 > 24-12-15, 01:02 PM
(24-12-15, 11:57 AM)hieuvn Đã viết: nếu form cố định,ít thay đổi thì bạn có thể dùng rs(0),rs(1)...
sử dụng cách này chạy nhanh nhất!
Public Sub GetRecord(db As DAO.Database, rs As DAO.Recordset, frm As Form)
Dim fld As Field
Dim ctl As Control
For Each fld In rs.Fields
For Each ctl In frm.Controls
If ctl.Name = "txt" & fld.Name Then
ctl.Value = rs.Fields("" & fld.Name & "").Value
End If
Next
Next
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
End Sub
tt1212 > 30-12-15, 12:03 AM
ongke0711 > 30-12-15, 01:06 PM