cawboy > 19-05-14, 05:54 PM
Minh Tiên > 19-05-14, 06:21 PM
Private Sub cboMaNCC_AfterUpdate()
Dim Sotang As Integer
Sotang = Right(Me.cboMaNCC.Value, Len(Me.cboMaNCC) - 2) 'Chỉ dùng nếu ký hiệu Mã NCC cố định 2 ký tự, các ký tự sau thay đổi. Nếu cố định 4 số sau thì bạn có thể dùng hàm Left(Me.cboMaNCC.Value, 4) nhé !
Me.txtMaHH.Value = "HH" & Sotang + 1
End Sub
cawboy > 20-05-14, 08:42 AM
(19-05-14, 06:21 PM)tmtien261 Đã viết: Nếu 1 Mã NCC có nhiều Mã HH mà bạn muốn Mã HH phải tăng theo Mã HH đã có của NCC này thì bạn phải thêm lệnh "Kiểm tra" xem đã có Mã HH cho Mã NCC này chưa, nếu chưa thì làm như trên, còn đã có rồi thì thay Sotang theo MaHH nhé !
Chúc bạn thành công !
Minh Tiên > 20-05-14, 09:27 AM
Private Sub cboMaNCC_AfterUpdate()
Dim Sotang As Integer
Dim strMaHHMax As String
If IsNull(DLookup("[MaHH]", "Hanghoa", "[MaNCC]='" & Me.cboMaNCC & "'")) = True Then
Sotang = Right(Me.cboMaNCC.Value, Len(Me.cboMaNCC) - 2)
Else
strMaHHMax = DLookup("[MaHH]", "Hanghoa", "[MaNCC]='" & Me.cboMaNCC & "' And [Stt]=" & DMax("[Stt]", "Hanghoa") & "")
Sotang = Right(strMaHHMax, Len(strMaHHMax) - 2)
End If
Me.txtMaHH.Value = "HH" & Sotang + 1
End Sub
cawboy > 20-05-14, 02:16 PM
(20-05-14, 09:27 AM)tmtien261 Đã viết: Mình nói sơ bộ thế này nhé !
1. Bạn tạo 1 table tblDanhsachHanghoa gồm: Stt (Autonumber), MaNCC (Text), MaHH (Text) ...
2. Tạo 1 form frmDanhsachHanghoa gồm: cboMaNCC, txtTenHH ... (các đối tượng trên form bạn nên dùng UnBound Control).
3. Row Source của cboMaNCC bạn lấy dữ liệu từ "tblDanhsachNCC" (tblDanhsachNCC làm table(MaNCC, TenNCC, ....)
4. Tại thủ tục After_Update của cboMaNCC bạn gõ đoạn code:
5. File demo: File đính kèmMã:Private Sub cboMaNCC_AfterUpdate()
Dim Sotang As Integer
Dim strMaHHMax As String
If IsNull(DLookup("[MaHH]", "Hanghoa", "[MaNCC]='" & Me.cboMaNCC & "'")) = True Then
Sotang = Right(Me.cboMaNCC.Value, Len(Me.cboMaNCC) - 2)
Else
strMaHHMax = DLookup("[MaHH]", "Hanghoa", "[MaNCC]='" & Me.cboMaNCC & "' And [Stt]=" & DMax("[Stt]", "Hanghoa") & "")
Sotang = Right(strMaHHMax, Len(strMaHHMax) - 2)
End If
Me.txtMaHH.Value = "HH" & Sotang + 1
End Sub
Lưu ý: File đính kèm mình chỉ làm nội dung tạo mã tự động thôi nhé, còn lại bạn phải tự làm mới hiểu sâu được.
Chúc bạn thành công !
cawboy > 20-05-14, 02:58 PM
Minh Tiên > 20-05-14, 04:22 PM
strMaHHMax = DLookup("[MaHH]", "Hanghoa", "[MaNCC]='" & Me.cboMaNCC & "' And [Stt]=" & DMax("[Stt]", "Hanghoa") & "")
strMaHHMax = DLookup("[MaHang]", "t_Hanghoa", "[MaNCC]='" & Me.cbMancc & "'")
cawboy > 20-05-14, 05:06 PM
(20-05-14, 04:22 PM)tmtien261 Đã viết: Theo CSDL của bạn đúng là chỉ làm đến Record thứ 2, từ thứ 3 trở đi là ko tìm được rồi. Bạn lưu ý code mình viết là:
Trong khi bạn sửa thành:Mã:strMaHHMax = DLookup("[MaHH]", "Hanghoa", "[MaNCC]='" & Me.cboMaNCC & "' And [Stt]=" & DMax("[Stt]", "Hanghoa") & "")
Làm sao giống được chứ !Mã:strMaHHMax = DLookup("[MaHang]", "t_Hanghoa", "[MaNCC]='" & Me.cbMancc & "'")
- Code của mình là tìm Mã HH trong table Hanghoa với điều kiện là: Mã NCC = cboMaNcc và Stt=SttMax (Stt lớn nhất). (Cho nên trong table Hanghoa mình có khai báo thêm Field Stt:Autonumber)
- Code của bạn là chỉ tìm Mã HH trong table Hanghoa với điều kiện là MaNCC=cboMaNCC, như vậy nếu trong table Hanghoa chỉ mới có 1 MaNCC thì OK, chứ đến >=2 MaNCC giống nhau thì code của bạn ko biết lấy cái MaNCC nào ?
Bạn xem lại Filedemo nhé !
Chúc bạn thành công !