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 = Nothingongke0711 > 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