-
Xin giúp tạo 1 trường trong table đánh số tự động thay cho autonumber
trungminh > 14-09-16, 07:19 PM
Mình muốn một trường giống như trường được đánh số tự động như autonumber nhưng số thứ tự =số recode.
Autonumber khi xóa 1 reccode thì nó không xóa luôn được số autonumber nên không hợp -
RE: Xin giúp tạo 1 trường trong table đánh số tự động thay cho autonumber
maidinhdan > 14-09-16, 09:31 PM
(14-09-16, 07:19 PM)trungminh Đã viết: Mình muốn một trường giống như trường được đánh số tự động như autonumber nhưng số thứ tự =số recode.
Autonumber khi xóa 1 reccode thì nó không xóa luôn được số autonumber nên không hợp
Đọc 10 lần, suy nghĩ hết 10 phút mà chẳng hiểu bạn muốn làm cái gì?
Rất mong ấy, trình bày lại câu hỏi để tiện hướng dẫn.
Thân mến! -
RE: Xin giúp tạo 1 trường trong table đánh số tự động thay cho autonumber
ongke0711 > 14-09-16, 10:41 PM
tôi nghĩ bạn ấy muốn viết là : = số record (chứ không phải recode)
-
RE: Xin giúp tạo 1 trường trong table đánh số tự động thay cho autonumber
trungminh > 14-09-16, 11:39 PM
(14-09-16, 09:31 PM)maidinhdan Đã viết:
(14-09-16, 07:19 PM)trungminh Đã viết: Mình muốn một trường giống như trường được đánh số tự động như autonumber nhưng số thứ tự =số recode.
Autonumber khi xóa 1 reccode thì nó không xóa luôn được số autonumber nên không hợp
Đọc 10 lần, suy nghĩ hết 10 phút mà chẳng hiểu bạn muốn làm cái gì?
Rất mong ấy, trình bày lại câu hỏi để tiện hướng dẫn.
Thân mến!
Vì trong form nhập nếu xóa 1 record đi thì khi vào tiếp số STT mà để autonumber không trùng với số record nữa. Mình muối làm sao 1 trường trong form nhập liệu tự động đánh số theo số record (có nghĩa khi vào 1 recode thì STT này là 1 recode 2 STT là 2.)
Hoặc làm thế nào đó trường STT để autonumber đánh đúng số record kể cả xóa đi 1 record rồi tiếp tục vào. -
RE: Xin giúp tạo 1 trường trong table đánh số tự động thay cho autonumber
toancvp > 15-09-16, 01:01 AM
Bạn thử tham khảo đoạn code này của mình nhé.
---------
Private Sub Shipper_AfterUpdate()
If Len(Trim(Me.STT & "")) = 0 Then
Me.STT = IIf(DCount("*", "Tbl_Import") > 0, DMax("STT", "Tbl_Import") + 1, 1)
End If
End Sub
----------------
Mình đưa vào event khi "bắt đầu nhập record mới". STT sẽ tăng dần dựa vào "max hiện tại", để ở chế độ enable = false.
(cái đoạn iff dcount là dùng cho trường hợp khi "chưa có record nào")
(và cái này nếu người dùng xóa ở đoạn "giữa" thì cũng vẫn tiếp tục tiến, ko hoàn toàn theo ý bạn lắm) -
RE: Xin giúp tạo 1 trường trong table đánh số tự động thay cho autonumber
lamvankhanh > 15-09-16, 10:52 AM
(14-09-16, 11:39 PM)trungminh Đã viết:
- Bạn dùng đoạn Code này áp dụng thử xem. Hiện tại tôi dùng thấy Ok đó:(14-09-16, 09:31 PM)maidinhdan Đã viết:
(14-09-16, 07:19 PM)trungminh Đã viết: Mình muốn một trường giống như trường được đánh số tự động như autonumber nhưng số thứ tự =số recode.
Autonumber khi xóa 1 reccode thì nó không xóa luôn được số autonumber nên không hợp
Đọc 10 lần, suy nghĩ hết 10 phút mà chẳng hiểu bạn muốn làm cái gì?
Rất mong ấy, trình bày lại câu hỏi để tiện hướng dẫn.
Thân mến!
Vì trong form nhập nếu xóa 1 record đi thì khi vào tiếp số STT mà để autonumber không trùng với số record nữa. Mình muối làm sao 1 trường trong form nhập liệu tự động đánh số theo số record (có nghĩa khi vào 1 recode thì STT này là 1 recode 2 STT là 2.)
Hoặc làm thế nào đó trường STT để autonumber đánh đúng số record kể cả xóa đi 1 record rồi tiếp tục vào.
Public Function RowNum(frm As Form) As Variant
On Error GoTo Err_RowNum
With frm.RecordsetClone
.Bookmark = frm.Bookmark
RowNum = .AbsolutePosition + 1
End With
Exit_RowNum:
Exit Function
Err_RowNum:
If Err.Number <> 3021& Then 'Ignore "No bookmark" at new row.
Debug.Print "RowNum() error " & Err.Number & " - " & Err.Description
End If
RowNum = Null
Resume Exit_RowNum
End Function -
RE: Xin giúp tạo 1 trường trong table đánh số tự động thay cho autonumber
Tuấn Ngọc > 15-09-16, 03:23 PM
(14-09-16, 11:39 PM)trungminh Đã viết:
(14-09-16, 09:31 PM)maidinhdan Đã viết:
(14-09-16, 07:19 PM)trungminh Đã viết: Mình muốn một trường giống như trường được đánh số tự động như autonumber nhưng số thứ tự =số recode.
Autonumber khi xóa 1 reccode thì nó không xóa luôn được số autonumber nên không hợp
Đọc 10 lần, suy nghĩ hết 10 phút mà chẳng hiểu bạn muốn làm cái gì?
Rất mong ấy, trình bày lại câu hỏi để tiện hướng dẫn.
Thân mến!
Vì trong form nhập nếu xóa 1 record đi thì khi vào tiếp số STT mà để autonumber không trùng với số record nữa. Mình muối làm sao 1 trường trong form nhập liệu tự động đánh số theo số record (có nghĩa khi vào 1 recode thì STT này là 1 recode 2 STT là 2.)
Hoặc làm thế nào đó trường STT để autonumber đánh đúng số record kể cả xóa đi 1 record rồi tiếp tục vào.
- Ý bạn là form sẽ tự setup lại STT từ đầu đến cuối hay chỉ đơn giản là nối tiếp số cuối cùng ? -
RE: Xin giúp tạo 1 trường trong table đánh số tự động thay cho autonumber
maidinhdan > 16-09-16, 05:17 PM
(14-09-16, 11:39 PM)trungminh Đã viết: Vì trong form nhập nếu xóa 1 record đi thì khi vào tiếp số STT mà để autonumber không trùng với số record nữa. Mình muối làm sao 1 trường trong form nhập liệu tự động đánh số theo số record (có nghĩa khi vào 1 recode thì STT này là 1 recode 2 STT là 2.)
Hoặc làm thế nào đó trường STT để autonumber đánh đúng số record kể cả xóa đi 1 record rồi tiếp tục vào.
Ở bài đầu tiên mình đã nhắc bạn là trình bày rõ lại câu vướng mắc và đền giờ tôi vẫn không hiểu bạn muốn làm cái gì về STT.
Lý do: Tại sao tôi lại nói như vậy: Bởi vì nó sẽ phát sinh nhiều biến cố xảy ra, và bạn đã không dự đoán được hết các biến cố thì làm sao mọi người viết cho bạn 1 đoạn code ưng ý.
Mình xin liệt kê 1 số biến cố xảy ra như sau để bạn thấy hợp hay thiếu thì bổ sung vào thêm để bạn nhận được câu trả lời sớm nhất:
* Giả sử Database có 5 dòng dữ liệu, gồm 2 cột Stt ( tương ứng 1-5) và Ten ( tương ứng là A-F)
Stt____Ten
1_____A
2_____B
3_____C
4_____D
5_____F
Biến cố thứ 1: Chỉ tạo STT tăng dần, ở đây xảy ra 1 sự kiện, là bạn sẽ không bao giờ nhấn nút xóa. ( Nếu bạn nhấn nút xóa thì chuyển qua biến cố thứ 2)
Biến cố thứ 2: ( Chỉ xóa đi 1) khoản giữa 1-5 bị xóa mất, ở đây xảy ra 2 sự kiện lồng nhau
+ Thứ nhất, Bạn muốn cột họ tên dồn số thứ tự lên hay không?
+ Thứ hai, hay là giữ nguyên trạng, có record mới sẽ thay vào Stt bị xóa đó.
Biến cố thứ 3: ( Nếu xóa nhiều ở khoản giữa)
Biến cố thứ 4: .............
Góp ý riêng, Theo kinh nghiệm của mình bạn không nên đưa số TT vào trong table là điều tốt nhất, nếu có thì cũng đừng quan tâm đến chuyện nó có " tăng dần và không gián đoạn" hay không. Bởi chúng ta sẽ xử lý nó trên query, form hoặc report thì sẽ tốt hơn ( có rất nhiều hàm để bạn tham khảo về vấn đề này trên diễn đàn đã có).
Bổ sung thêm 1 ý: Nếu bạn chỉ có ý định là có 10 dòng thì số thứ tự cao nhất là 10 và phải " tăng dần không gián đoạn" thì gửi gửi bài bạn cho mình, mình viết code cho.
Thân mến!