donghailk > 31-07-14, 03:14 PM
hanyoungmine > 19-08-14, 09:58 PM
(31-07-14, 03:14 PM)donghailk Đã viết: Chào diễn đàn.Gửi bạn: https://drive.google.com/file/d/0B7pDGmS...sp=sharing
MÌnh có form HDBH.gồm các dòng:mã hd, mã kh, mã nv, mã xe Gh,...
Cho mình hỏi,mình muốn khi nhập xong hd 01 và tiếp tục "thêm" để nhập hd 02 thì tại các combobox mã nv và mã GH luôn hiện thị cố định, chỉ khi nào minh muốn thay đổi manv hoặc xe GH thì chọn nv và xe Gh khác còn mã hd tự động tăng dần thì phải làm sao vậy.
File của minh đây https://www.mediafire.com/?fap6r70xyg4zgw7
Mở F_HDBH nha mấy bạn.
Mong anh em trong diện đàn hộ trợ cho mình.
donghailk > 21-08-14, 10:38 AM
(19-08-14, 09:58 PM)hanyoungmine Đã viết:(31-07-14, 03:14 PM)donghailk Đã viết: Chào diễn đàn.Gửi bạn: https://drive.google.com/file/d/0B7pDGmS...sp=sharing
MÌnh có form HDBH.gồm các dòng:mã hd, mã kh, mã nv, mã xe Gh,...
Cho mình hỏi,mình muốn khi nhập xong hd 01 và tiếp tục "thêm" để nhập hd 02 thì tại các combobox mã nv và mã GH luôn hiện thị cố định, chỉ khi nào minh muốn thay đổi manv hoặc xe GH thì chọn nv và xe Gh khác còn mã hd tự động tăng dần thì phải làm sao vậy.
File của minh đây https://www.mediafire.com/?fap6r70xyg4zgw7
Mở F_HDBH nha mấy bạn.
Mong anh em trong diện đàn hộ trợ cho mình.
Mình sử dụng 2 biến để chứa mã nhân viên và mã gian hàng để lưu trữ giá trị...
hanyoungmine > 21-08-14, 05:14 PM
(21-08-14, 10:38 AM)donghailk Đã viết:Chào bạn!(19-08-14, 09:58 PM)hanyoungmine Đã viết:(31-07-14, 03:14 PM)donghailk Đã viết: Chào diễn đàn.Gửi bạn: https://drive.google.com/file/d/0B7pDGmS...sp=sharing
MÌnh có form HDBH.gồm các dòng:mã hd, mã kh, mã nv, mã xe Gh,...
Cho mình hỏi,mình muốn khi nhập xong hd 01 và tiếp tục "thêm" để nhập hd 02 thì tại các combobox mã nv và mã GH luôn hiện thị cố định, chỉ khi nào minh muốn thay đổi manv hoặc xe GH thì chọn nv và xe Gh khác còn mã hd tự động tăng dần thì phải làm sao vậy.
File của minh đây https://www.mediafire.com/?fap6r70xyg4zgw7
Mở F_HDBH nha mấy bạn.
Mong anh em trong diện đàn hộ trợ cho mình.
Mình sử dụng 2 biến để chứa mã nhân viên và mã gian hàng để lưu trữ giá trị...
Thanks ban nhé. Mình đã làm được. Kiến thức về code của mình còn yếu quá, hjhj. Một diễn đàn rất hữu ích.
Sẵn cho mình hỏi thêm 1 vấn đề nữa mong bạn giúp giùm.
Mình muốn khi mình click "thêm" thì cái mahd của mình tự động tăng theo và muốn nó hiện thị theo điều kiện X2/0814 ( 0814 là tháng 08 và năm 2014). Mahd tự động tăng mình đã làm được nhưng khi chèn điều kiện để hiện thị theo X2/0814 thì lại ko dc. Báo lỗi liên tục mình ko pit cách xử lý.
code để mahd tự động tăng ( cái này minh học của noname nè)
Dim CTmax
Dim rsCT As Recordset
manv = Me.manv.Value
magh = Me.magh.Value
Set rsCT = CurrentDb.OpenRecordset("T_HD")
If rsCT.RecordCount > 0 Then
CTmax = DMax ("[maHD]", "T_HD")
Else
CTmax = 0
End If
rsCT.Close
Set rsCT = Nothing
DoCmd.GoToRecord , , acNewRec
Me.manv = manv
Me.magh = magh
Me.mahd.Value = Format(CTmax + 1)
và code lấy mahd theo dk: ( cái này thì Anh Xuân Thanh hướng dẫn hjhj)
mahd = "X" & [mahd] & "/" & Right("00" & Month([ngayhd]),2) & Right(Year([ngayhd]),2)
Mong diễn đán chỉ mình cách ghép 2 code nầy lại để khi minh click "thêm" thì mahd của mình hiên thị là X2/0814 .Mình đang cần gắp lắm, sắp tới khì thi rồi.[/color]
donghailk > 22-08-14, 12:39 PM
(21-08-14, 05:14 PM)hanyoungmine Đã viết:(21-08-14, 10:38 AM)donghailk Đã viết:Chào bạn!(19-08-14, 09:58 PM)hanyoungmine Đã viết:(31-07-14, 03:14 PM)donghailk Đã viết: Chào diễn đàn.Gửi bạn: https://drive.google.com/file/d/0B7pDGmS...sp=sharing
MÌnh có form HDBH.gồm các dòng:mã hd, mã kh, mã nv, mã xe Gh,...
Cho mình hỏi,mình muốn khi nhập xong hd 01 và tiếp tục "thêm" để nhập hd 02 thì tại các combobox mã nv và mã GH luôn hiện thị cố định, chỉ khi nào minh muốn thay đổi manv hoặc xe GH thì chọn nv và xe Gh khác còn mã hd tự động tăng dần thì phải làm sao vậy.
File của minh đây https://www.mediafire.com/?fap6r70xyg4zgw7
Mở F_HDBH nha mấy bạn.
Mong anh em trong diện đàn hộ trợ cho mình.
Mình sử dụng 2 biến để chứa mã nhân viên và mã gian hàng để lưu trữ giá trị...
Thanks ban nhé. Mình đã làm được. Kiến thức về code của mình còn yếu quá, hjhj. Một diễn đàn rất hữu ích.
Sẵn cho mình hỏi thêm 1 vấn đề nữa mong bạn giúp giùm.
Mình muốn khi mình click "thêm" thì cái mahd của mình tự động tăng theo và muốn nó hiện thị theo điều kiện X2/0814 ( 0814 là tháng 08 và năm 2014). Mahd tự động tăng mình đã làm được nhưng khi chèn điều kiện để hiện thị theo X2/0814 thì lại ko dc. Báo lỗi liên tục mình ko pit cách xử lý.
code để mahd tự động tăng ( cái này minh học của noname nè)
Dim CTmax
Dim rsCT As Recordset
manv = Me.manv.Value
magh = Me.magh.Value
Set rsCT = CurrentDb.OpenRecordset("T_HD")
If rsCT.RecordCount > 0 Then
CTmax = DMax ("[maHD]", "T_HD")
Else
CTmax = 0
End If
rsCT.Close
Set rsCT = Nothing
DoCmd.GoToRecord , , acNewRec
Me.manv = manv
Me.magh = magh
Me.mahd.Value = Format(CTmax + 1)
và code lấy mahd theo dk: ( cái này thì Anh Xuân Thanh hướng dẫn hjhj)
mahd = "X" & [mahd] & "/" & Right("00" & Month([ngayhd]),2) & Right(Year([ngayhd]),2)
Mong diễn đán chỉ mình cách ghép 2 code nầy lại để khi minh click "thêm" thì mahd của mình hiên thị là X2/0814 .Mình đang cần gắp lắm, sắp tới khì thi rồi.[/color]
Cái này cơ bản và đơn giản.
Có phải Mã hóa đơn sẽ có cấu trúc kiểu này không:
X0/0814
Trong đó ký tự X là cố định cho tất cả các mã
Số 0 thay đổi tăng dần.
dấu "/" cố định
08 là tháng của ngày hiện tại
14 là năm của ngày hiện tại (Vì mình thấy bạn mặc định cho txtNgayhd như vậy)
Như vậy phần giá trị biến động nhất là Số 0.
Giải pháp của mình là khi người dùng click vào nút Thêm thì:
Bước 1: Kiểm tra bảng T_HD có giá trị không? Nếu có thì tìm tới Mã hóa đơn cuối cùng, dựa vào ngày lập HD. Nếu không có thì mặc định giá trị X0/0000
Bước 2: Lấy số thứ tự hóa đơn.
Số thứ tự này được lấy bằng hàm Mid. vì nó kẹp giữa ký tự "X" và "/0000", nên lấy ở giữa là OK
Bước 3: Tăng số thứ tự hóa đơn và tiến hành ghép mã hóa đơn mới.
Bước 4: Là phần đã giải đáp trong bình luận trước.
Code:
Dim manv As String
Dim magh As String
Dim mahd As String
Dim LastMaHD As String
Dim SttHD As Single
'Mo T_HD
If DLookup("[Mahd]", "T_HD") <> "" Then
LastMaHD = DLookup("Mahd", "T_HD", "Ngayhd= #" & Format(DMax("ngayhd", "T_HD"), "dd/mm/yyyy") & "#")
Else
LastMaHD = "X0/0000"
End If
'Lay so thu tu hoa don
SttHD = Val(Mid(LastMaHD, 2, Len(LastMaHD) - 6))
'Tang gia tri
SttHD = SttHD + 1
'Ghep ma hoa don moi
mahd = "X" & SttHD & "/" & Right("0" & Month(Date), 2) & Right(Year(Date), 2)
' Gan gia tri hien tai vào Bien
manv = Me.cboManv.Value
magh = Me.cboMagh.Value
'Them moi Record
DoCmd.GoToRecord , , acNewRec
'Ghi du lieu cu
Me.cboManv = manv
Me.cboMagh = magh
Me.txtmahd = mahd
.... Còn nữa tùy bạn!
Lưu ý quan trọng. Vì bạn format ngày lập hóa đơn trong bảng T_HD là dd/mm/yyyy, nên phải dùng lệnh Format(Dmax("Ngayhd","T_HD"),"dd/mm/yyyy") trong code phía trên, lưu ý chỗ này không là lỗi đó
hanyoungmine > 22-08-14, 02:44 PM
donghailk > 23-08-14, 03:19 PM
(22-08-14, 02:44 PM)hanyoungmine Đã viết: Mình biết lỗi của bạn rồi, do hiện tại, mã hóa đơn của bạn chỉ gồm số, không thỏa cú pháp. Mình dùng Query Update chỉnh lại mã hóa đơn hiện tại cho hợp cú pháp X0/0000 thì mới chạy code được.
https://drive.google.com/file/d/0B7pDGmS...sp=sharing
hanyoungmine > 23-08-14, 07:47 PM
(23-08-14, 03:19 PM)donghailk Đã viết:(22-08-14, 02:44 PM)hanyoungmine Đã viết: Mình biết lỗi của bạn rồi, do hiện tại, mã hóa đơn của bạn chỉ gồm số, không thỏa cú pháp. Mình dùng Query Update chỉnh lại mã hóa đơn hiện tại cho hợp cú pháp X0/0000 thì mới chạy code được.
https://drive.google.com/file/d/0B7pDGmS...sp=sharing
Thanks ban đã xử lý giúp mình, nhưng nảy giờ mình mở file tìm hiểu mà ko biết bạn sữa ở đâu. Minh muốn hiểu rõ hơn, bạn có thể nói rõ cách sữa giùm minh được ko ( sữa ở đâu, khúc nào) hjhj.
donghailk > 26-08-14, 12:28 PM
(23-08-14, 07:47 PM)hanyoungmine Đã viết:(23-08-14, 03:19 PM)donghailk Đã viết:(22-08-14, 02:44 PM)hanyoungmine Đã viết: Mình biết lỗi của bạn rồi, do hiện tại, mã hóa đơn của bạn chỉ gồm số, không thỏa cú pháp. Mình dùng Query Update chỉnh lại mã hóa đơn hiện tại cho hợp cú pháp X0/0000 thì mới chạy code được.
https://drive.google.com/file/d/0B7pDGmS...sp=sharing
Thanks ban đã xử lý giúp mình, nhưng nảy giờ mình mở file tìm hiểu mà ko biết bạn sữa ở đâu. Minh muốn hiểu rõ hơn, bạn có thể nói rõ cách sữa giùm minh được ko ( sữa ở đâu, khúc nào) hjhj.
Mình sửa lại mã hóa đơn hiện hành. Vì ban đầu, mã hóa đơn của bạn là 01.
Mình dùng Query Update, sửa mã này lại theo cấu trúc X0/0000 thì mới chạy code được.
Cụ thể, mình update file Mã hóa đơn theo hàm sau:
"X" & val([Mã hóa đơn]) & "/" & right("0" & month([Ngayhd]);2) & right(year([Ngayhd]);2)
Query này dùng có 1 lần thui, còn bình thường nhập mới từ đầu thì không cần dùng cái này.
hanyoungmine > 26-08-14, 01:59 PM
(26-08-14, 12:28 PM)donghailk Đã viết:Mình Update xong xóa luôn, không có lưu lại!(23-08-14, 07:47 PM)hanyoungmine Đã viết:(23-08-14, 03:19 PM)donghailk Đã viết:(22-08-14, 02:44 PM)hanyoungmine Đã viết: Mình biết lỗi của bạn rồi, do hiện tại, mã hóa đơn của bạn chỉ gồm số, không thỏa cú pháp. Mình dùng Query Update chỉnh lại mã hóa đơn hiện tại cho hợp cú pháp X0/0000 thì mới chạy code được.
https://drive.google.com/file/d/0B7pDGmS...sp=sharing
Thanks ban đã xử lý giúp mình, nhưng nảy giờ mình mở file tìm hiểu mà ko biết bạn sữa ở đâu. Minh muốn hiểu rõ hơn, bạn có thể nói rõ cách sữa giùm minh được ko ( sữa ở đâu, khúc nào) hjhj.
Mình sửa lại mã hóa đơn hiện hành. Vì ban đầu, mã hóa đơn của bạn là 01.
Mình dùng Query Update, sửa mã này lại theo cấu trúc X0/0000 thì mới chạy code được.
Cụ thể, mình update file Mã hóa đơn theo hàm sau:
"X" & val([Mã hóa đơn]) & "/" & right("0" & month([Ngayhd]);2) & right(year([Ngayhd]);2)
Query này dùng có 1 lần thui, còn bình thường nhập mới từ đầu thì không cần dùng cái này.
Bạn cho minh hỏi thêm cái nữa.
cái qurey update ma bạn nói nó nằm ở đâu trong file vậy sao minh tìm ko thấy.hjhj
Thanks bạn đã chỉ dẫn.