• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Tạo Mã hàng hóa theo nhóm với số thứ tự tăng dần

Nơi trao đổi về VBA (Visual Basic for Application), lập trình cho ứng dụng Microsoft Office, AutoCAD...

Điều hành viên: tungblt

Pherotao
Thành viên chính thức
Thành viên chính thức
Bài viết: 14
Ngày tham gia: T.Ba 29/12/2009 1:57 pm
Liên hệ:

Tạo Mã hàng hóa theo nhóm với số thứ tự tăng dần

Gửi bàigửi bởi Pherotao » T.Tư 02/11/2016 1:05 am

Các bạn cho mình hỏi: mình có một file access về quản lí hàng hóa. Vì trong kho có nhiều nhóm hàng, mà mỗi nhóm lại có nhiều mặt hàng.

- VD: Mình có tất cả 4 nhóm hàng: T-NhómHàng (MaNhom, TenNhom)
   + Thuốc lá (TL),
   + Kem Đánh răng (KR),
   + Bánh Kẹo (BK),
   + Nước Giải khát (NN),
- Sau đó mình có 1 table hàng hóa: T-HàngHóa (MaHH, TenHH, DVT, QuiCach).
- Mình muốn là khi mình nhập liệu trên form, khi mình chọn "Mã nhóm" thì chỉ hiển thị 1 trong 4 nhóm hàng trên, sau đó mình nhập "tên hàng", "DVT", "QuiCach", còn "mã hàng hóa" sẽ tự cập nhật sau khi bấm nút "Ghi" sẽ là "Mã Nhóm_số thứ tự tăng dần".
- VD: mình chọn Mã nhóm là Thuốc lá: TL0001 cho tên hàng là: Basto, TL0002 cho tên hàng là: Rocco,...; Bánh Kẹo: BK0001, BK0002,...
 Xin cảm ơn!



NetBaoNgoc
Thành viên chính thức
Thành viên chính thức
Bài viết: 20
Ngày tham gia: T.Ba 06/12/2016 12:02 pm
Been thanked: 1 time
Liên hệ:

Re: Tạo Mã hàng hóa theo nhóm với số thứ tự tăng dần

Gửi bàigửi bởi NetBaoNgoc » T.Năm 08/12/2016 9:52 am

Vấn đề của bạn nêu ra không khó nhưng về lâu dài khi bảng dữ liệu T-HàngHóa của bạn có nhiều mẫu tin sẽ xảy ra vấn đề trùng dữ liệu . Chỉ có thể khả thi nếu như bảng dữ liệu không bị xóa . Thực tế là chúng ta luôn có nhu cầu Thêm + Xóa + Sửa đối với bảng dữ liệu nên khi thiết kế như vậy thì có vẻ không hợp lý . Còn đây là đoạn code mình viết theo như cách của bạn .
Hàm này trả về chuỗi ký tự Tạo ra một mã số theo như ý muốn của bạn .
Truyền tham số [Mã_Nhóm] và số thứ tự bắt đầu ( =0 nếu như hiện chưa mẫu tin nào trong bảng )
Mỗi lần nhập xong một mẫu tin thì bạn chèn thêm một dòng lệnh để tăng số thứ tự , rồi truyền số thứ tự này vào trong hàm để tạo mẫu tin tiếp theo . Phần code này bạn tự làm nha .
  1. Function AutoCode(ByVal Nhom As String, ByVal SoTT As Integer) As String
  2.         'Trường hợp bạn nêu là Mã nhóm kêt hợp với 3 số 0 và số thứ tự
  3.         Dim S As String = ""
  4.         Select Case SoTT
  5.             Case 1 To 9
  6.                 S = Nhom & "000" & SoTT
  7.             Case 10 To 99
  8.                 S = Nhom & "00" & SoTT
  9.             Case 100 To 999
  10.                 S = Nhom & "0" & SoTT
  11.             Case 1000 To 9999
  12.                 S = Nhom & SoTT
  13.         End Select
  14.         Return S
  15.     End Function
  16.  


Quay về “Visual Basic for Application (VBA)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách