MTNQ > 26-07-15, 07:43 PM
Public Function fSTT(frm As Form) As Variant
On Error GoTo Err_fSTT
With frm.RecordsetClone
.Bookmark = frm.Bookmark
fSTT = .AbsolutePosition + 1
End With
Exit_fSTT:
Exit Function
Err_fSTT:
If Err.Number <> 3021 And Err.Number <> 2196 Then
Debug.Print "fSTT() error " & Err.Number & " - " & Err.Description
End If
fSTT = Null
Resume Exit_fSTT
End Function
MTNQ > 26-07-15, 10:31 PM
Minh Tiên > 28-07-15, 11:36 AM
MTNQ > 29-07-15, 02:05 AM
(28-07-15, 11:36 AM)Minh Tiên Đã viết: Thanks tranthanhan1962 và Mattroinguquen nhiều !
Cách tạo stt bằng query và tạo trực tiếp dùng code như 2 bác giới thiệu Tiên đã làm rồi.
1. Cách tạo bằng code Fill trực tiếp stt trên Form (Hoặc Edit số trong table rồi Boundcontrol vào STT) chỉ dùng cho hiển thị ít số liệu, chứ vài chục ngàn record --> đợi xỉu (Tiên đã thử hiển thị 10.000 Record rồi).
...
ledangvan > 11-09-15, 10:04 PM
MTNQ > 12-09-15, 03:59 PM
Sub Test1()
'Application.Echo False
If Me.Recordset.RecordCount = 0 Then Exit Sub
DoCmd.GoToRecord , , acFirst
Do
Me.SoCT = Me.STT
DoCmd.GoToRecord , , acNext
Loop Until IsNull(Me.HDID)
'Application.Echo True
End Sub
Sub Test2()
With Me.Recordset.Clone
If Not .EOF Then .MoveFirst
Do While Not .EOF And Not .BOF
CurrentDb.Execute "UPDATE Hoadon SET SoCT = 'C " & .AbsolutePosition + 1 & "' " & _
"WHERE HDID = " & .HDID
.MoveNext
Loop
End With
Me.Requery
End Sub
Sub Test3()
With Me.Recordset.Clone
If Not .EOF Then .MoveFirst
Do While Not .EOF And Not .BOF
.Edit
.SoCT = "C " & .AbsolutePosition + 1
.Update
.MoveNext
Loop
End With
Me.Requery
End Sub
MTNQ > 12-09-15, 04:40 PM
Minh Tiên > 27-11-19, 09:52 AM
(29-07-15, 02:05 AM)MTNQ Đã viết:Bạn MTNQ ơi ! Hôm nay mình đánh thức bạn tí nhé !(28-07-15, 11:36 AM)Minh Tiên Đã viết: Thanks tranthanhan1962 và Mattroinguquen nhiều !
Cách tạo stt bằng query và tạo trực tiếp dùng code như 2 bác giới thiệu Tiên đã làm rồi.
1. Cách tạo bằng code Fill trực tiếp stt trên Form (Hoặc Edit số trong table rồi Boundcontrol vào STT) chỉ dùng cho hiển thị ít số liệu, chứ vài chục ngàn record --> đợi xỉu (Tiên đã thử hiển thị 10.000 Record rồi).
...
Bạn thử hàm fSTT chưa nhỉ, thấy cũng OK lém mà , đâu đến nỗi... xỉu
Mình lấy Data trong chủ đề về ADO, thêm vào 100 000 mẩu tin, dùng hàm fSTT như trên, load toàn bộ lên form chưa đầy 1 giây
Bạn xem thử nha (mình làm mdb để tiện cho các bạn dùng AC 2003)
Demo STT (ADO).rar
With mfrm.Recordset.Clone
.Bookmark = mfrm.Bookmark
fTaoStt = .AbsolutePosition + 1
End With
With mfrm.RecordsetClone
.Bookmark = mfrm.Bookmark
fTaoStt = .AbsolutePosition + 1
End With
ongke0711 > 27-11-19, 10:24 AM
tranthanhan1962 > 28-11-19, 10:35 AM
CurrentDb.TableDefs("DANHSACH").Fields.Delete "STT"
Function CreateAutoNumberField(ByVal strTableName As String, ByVal strFieldName As String) As Boolean
On Error GoTo Err_CreateAutoNumberField
Dim db As DAO.Database
Dim fld As DAO.field
Dim tdef As DAO.TableDef
Set db = Application.CurrentDb
Set tdef = db.TableDefs(strTableName)
Set fld = tdef.CreateField(strFieldName, dbLong)
With fld
.Attributes = .Attributes Or dbAutoIncrField
End With
With tdef.Fields
.Append fld
.Refresh
End With
CreateAutoNumberField = True
Exit_CreateAutoNumberField:
Set fld = Nothing
Set tdef = Nothing
Set db = Nothing
Exit Function
Err_CreateAutoNumberField:
CreateAutoNumberField = False
With Err
MsgBox "Error " & .Number & vbCrLf & .Description, vbOKOnly Or vbCritical, "CreateAutonumberField"
End With
Resume Exit_CreateAutoNumberField
End Function
Call CreateAutoNumberField("DANHSACH", "STT")