• Xin giúp tạo 1 trường trong table đánh số tự động thay cho autonumber
  • 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

    007  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:
    (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 dùng đoạn Code này áp dụng thử xem. Hiện tại tôi dùng thấy Ok đó:
         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!