thanhquyt > 13-09-15, 04:16 PM
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim st As String
Dim i As Integer
i = 1
Set db = CurrentDb
Set rs = db.OpenRecordset("Table1", dbOpenDynaset)
rs.MoveFirst
Do While Not rs.EOF
st = ""
st = st & Day(Now) & Month(Now) & Year(Now) & i
rs.Edit
rs!maso = CLng(st)
rs.Update
i = i + 1
rs.MoveNext
Loop
Set rs = Nothing
ongke0711 > 13-09-15, 05:19 PM
tranthanhan1962 > 13-09-15, 07:17 PM
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim st As String
Dim i As Integer
i = 1
Set db = CurrentDb
Set rs = db.OpenRecordset("Table1", dbOpenDynaset)
rs.MoveFirst
Do While Not rs.EOF
st = ""
st = st & Day(Now) & Month(Now) & Year(Now) & i
If IsNull(rs!maso) Or rs!maso = "" Then
rs.Edit
rs!maso = CLng(st)
rs.Update
rs.MoveNext
Else
rs.MoveNext
End If
i = i + 1
Loop
Set rs = Nothing
thanhquyt > 13-09-15, 07:27 PM
(13-09-15, 05:19 PM)ongke0711 Đã viết: Cái code của bạn là đi về dòng đầu tiên (rs.movefirst) của table 1 rồi update maso thì nó update lại hết toàn bộ các record cũ rồi còn gì.
Bạn chỉ cần update nhưng dòng nào mà cột maso là Null thôi.
strSQL="SELECT * FORM Table1 WHERE maso is null;"
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
Nhưng tôi có thắc mắc về cách Lưu record của bạn. Bạn nhập tất cả các dòng rồi tạo mã số 1 lần hay sao? Tại sao không tạo dòng nào rồi update maso cho đúng dòng đó thôi?
Sau khi cột ngày, cột stt được cập nhật thì tạo maso cho cột maso luôn.
Private sub Ngay_AfterUpdate
Me.maso=Format (Me.Ngay,"ddmmyyy") & Me.stt
End sub