VicoTas
Câu hỏi
avatar hocon
25/05/2013 16:54

Đánh số thứ tự tự động trong Access?

Tôi có 3 bảng dữ liệu Access sau:
- HSDT bao gồm các trường: Mã HSDT, ten KH, dia chi ...
- CVDT bao gồm các trường: Mã HSDT, Mã CV , ngày lập,...
- SLDT bao gồm các trường: Mã CV, ten sp, so luong, don gia ...
Tôi muốn đánh số tự động cho Mã CV ví dụ như :
Mã HSDT là 001.07/HSDT thì Mã CV sẽ là 001.07-01, 001.07-02, ...
Mã HSDT là 002.07/HSDT thì Mã CV sẽ là 002.07-01, 002.07-02, ...
Mong các bạn tư vấn giúp tôi.

Danh sách câu trả lời (1)
avatar 01668686303 25/05/2013 16:54
Yêu cầu đánh số tự động cho mã CV đã rõ ràng, vậy bạn hãy phân tích yêu cầu và viết code thực hiện yêu cầu đó. Thí dụ bạn có thể dùng 1 array chứa N record, mỗi record lưu cặp dữ liệu (chuỗi nhận dạng mã HSDT, chỉ số mã CV đã dùng lần cuối tương ứng). Mỗi lần cần tạo mã CV mới cho 1 record CVDT, bạn duyệt tìm trong array record quản lý mã HSDT tương ứng, rồi lấy chỉ số mã CV đã dùng lần cuối tương ứng, tăng 1 đơn vị rồi dùng giá trị này cho record CVDT mới của bạn.

Cụ thể đoạn code VBA sau cho phép tạo mã CV tự động theo mã HSDT:

Option Compare Database
‘định nghĩa kiểu cần dùng
Private Type HSDTRec
HSDT As String
CV As Integer
End Type

‘định nghĩa biến cần dùng
Dim idx As Integer
Dim lstHSDT(0 To 200) As HSDTRec

‘khởi động trị ban đầu cho các biến
Private Sub Form_Load()
idx = -1
End Sub

‘hàm tạo tự động mã CV
Private Function TaoMaCV(HSDT As String)
Dim maHSDT As String
‘lấy chuỗi bên trái dấu /
maHSDT = Left(HSDT, InStr(1, HSDT, "/", vbBinaryCompare) - 1)
‘tìm xem có trong danh sách quản lý chưa
For i = 0 To idx
If maHSDT = lstHSDT(i).HSDT Then
‘nếu có rồi thì lấy chỉ số đang quản lý+1
lstHSDT(i).CV = lstHSDT(i).CV + 1
TaoMaCV = maHSDT & "-" & lstHSDT(i).CV
Exit Function
End If
Next i
‘nếu chưa có, tạo mới 1 record quản lý với chỉ số bắt đầu = 1
idx = idx + 1
lstHSDT(idx).HSDT = maHSDT
lstHSDT(idx).CV = 1
TaoMaCV = maHSDT & "-" & lstHSDT(idx).CV
End Function.
Trả lời câu hỏi
Tải lại mã
Câu hỏi lĩnh vực Máy vi tính
Xuân Trọng LCD laptop IBM T40 bị sọc đứng xin giúp?

Đăng lúc: 16:54 - 25/05/2013 trong Máy vi tính

nophoto Có thể nào 2 hệ điều hành cùng chạy sata?

Đăng lúc: 16:54 - 25/05/2013 trong Máy vi tính

nophoto Tui muốn mua bộ máy tính kèm máy in mà hok bít mua ở đâu được gia tốt và dịch vụ tốt

Đăng lúc: 16:54 - 25/05/2013 trong Máy vi tính

nophoto Làm thế nào để tắt được màn hình laptop mà vẫn chạy nhạc?

Đăng lúc: 16:54 - 25/05/2013 trong Máy vi tính

nophoto HP Compaq V2633TU & Acer Aspire 3628 ???

Đăng lúc: 16:54 - 25/05/2013 trong Máy vi tính

nophoto Cài lại Win mà ko có Card mạng, Card âm thanh và Card màn hình giúp em với?

Đăng lúc: 17:46 - 23/06/2013 trong Máy vi tính

nophoto Cách xoá File Video sau khi convert hỏng?

Đăng lúc: 16:54 - 25/05/2013 trong Máy vi tính

Đức Vân Cứu em với màn hình Sony Vaio?

Đăng lúc: 16:54 - 25/05/2013 trong Máy vi tính

nophoto Xin cứu giúp HP DV2000?

Đăng lúc: 16:53 - 25/05/2013 trong Máy vi tính

nophoto Lỗi nhảy font chữ trong Word?

Đăng lúc: 16:53 - 25/05/2013 trong Máy vi tính

nophoto Máyt tính không nhận ổ DVD?

Đăng lúc: 16:53 - 25/05/2013 trong Máy vi tính

nophoto Máy tính xách tay lỗi phần đọc thẻ xin giúp đỡ?

Đăng lúc: 11:59 - 24/06/2013 trong Máy vi tính

nophoto Nhờ giúp đỡ - lỗi Vitual Memory?

Đăng lúc: 16:53 - 25/05/2013 trong Máy vi tính

Uk Vấn đề RAM và Máy ảo?

Đăng lúc: 16:53 - 25/05/2013 trong Máy vi tính

Nguyễn Văn Siêu Giúp đỡ laptop không vô điện?

Đăng lúc: 16:53 - 25/05/2013 trong Máy vi tính

nophoto Sony vaio bị khóa keyboard xin giúp?

Đăng lúc: 16:53 - 25/05/2013 trong Máy vi tính

nophoto Hãy cẩn thận Vaio Z hay SR của bạn có thể bị "rò pin"

Đăng lúc: 16:53 - 25/05/2013 trong Máy vi tính

nophoto Laptop toshiba R100 không khởi động được xin giúp đỡ?

Đăng lúc: 16:53 - 25/05/2013 trong Máy vi tính

Hoài Nam (Nam Tước) Ý nghĩa của S/N và P/N trên các sản phẩm CNTT

Đăng lúc: 16:53 - 25/05/2013 trong Máy vi tính

lighting Giải pháp khắc phục sự cố lỗi VGA Nvidia trên laptop.

Đăng lúc: 16:53 - 25/05/2013 trong Máy vi tính

Rao vặt Siêu Vip