Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Cố định combobox trên form khi thêm mới 1 dữ liệu
#1
Chào diễn đàn.
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.
Chữ ký của donghailk Xin chào, mình là donghailk, Tham gia http://thuthuataccess.com/forum từ ngày 29-03 -14.
Reply
Những người đã cảm ơn
#2
(31-07-14, 03:14 PM)donghailk Đã viết: Chào diễn đàn.
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.
Gửi bạn: https://drive.google.com/file/d/0B7pDGmS...sp=sharing
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ị...
Chữ ký của hanyoungmine Bí ẩn!
Reply
Những người đã cảm ơn donghailk
#3
(19-08-14, 09:58 PM)hanyoungmine Đã viết:
(31-07-14, 03:14 PM)donghailk Đã viết: Chào diễn đàn.
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.
Gửi bạn: https://drive.google.com/file/d/0B7pDGmS...sp=sharing
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]
Chữ ký của donghailk Xin chào, mình là donghailk, Tham gia http://thuthuataccess.com/forum từ ngày 29-03 -14.
Reply
Những người đã cảm ơn
#4
(21-08-14, 10:38 AM)donghailk Đã viết:
(19-08-14, 09:58 PM)hanyoungmine Đã viết:
(31-07-14, 03:14 PM)donghailk Đã viết: Chào diễn đàn.
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.
Gửi bạn: https://drive.google.com/file/d/0B7pDGmS...sp=sharing
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]
Chào bạn!
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 đó
Chữ ký của hanyoungmine Bí ẩn!
Reply
Những người đã cảm ơn
#5
(21-08-14, 05:14 PM)hanyoungmine Đã viết:
(21-08-14, 10:38 AM)donghailk Đã viết:
(19-08-14, 09:58 PM)hanyoungmine Đã viết:
(31-07-14, 03:14 PM)donghailk Đã viết: Chào diễn đàn.
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.
Gửi bạn: https://drive.google.com/file/d/0B7pDGmS...sp=sharing
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]
Chào bạn!
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 đó

Minh test thử rồi mà ko chạy bạn ơi. ko pít báo lỗi gì luôn. Minh up file bạn xem và hộ trợ giùm mình nha.hjx
File đây: https://www.mediafire.com/?s3xuyjbbhrb06c1
Chữ ký của donghailk Xin chào, mình là donghailk, Tham gia http://thuthuataccess.com/forum từ ngày 29-03 -14.
Reply
Những người đã cảm ơn
#6
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
Chữ ký của hanyoungmine Bí ẩn!
Reply
Những người đã cảm ơn donghailk
#7
(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.
Chữ ký của donghailk Xin chào, mình là donghailk, Tham gia http://thuthuataccess.com/forum từ ngày 29-03 -14.
Reply
Những người đã cảm ơn
#8
(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.
Chữ ký của hanyoungmine Bí ẩn!
Reply
Những người đã cảm ơn donghailk
#9
(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.
Chữ ký của donghailk Xin chào, mình là donghailk, Tham gia http://thuthuataccess.com/forum từ ngày 29-03 -14.
Reply
Những người đã cảm ơn
#10
(26-08-14, 12:28 PM)donghailk Đã viết:
(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.
Mình Update xong xóa luôn, không có lưu lại!
Chữ ký của hanyoungmine Bí ẩn!
Reply
Những người đã cảm ơn donghailk


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hỏi] Cách thêm dữ liệu vào form Main_Sub NganNguyen 1 24 6 Giờ trước
Bài mới nhất: maidinhdan
  Tự động hiện Form khi loading hết thời gian ChiMai 1 43 02-12-16, 08:59 PM
Bài mới nhất: ongke0711
  [Help] Cập nhật combobox 2 từ combobox 1 (dữ liệu ở nhiều bảng) votinh.tq 6 200 22-11-16, 11:34 PM
Bài mới nhất: votinh.tq
Photo [Hỏi] Mở Form trên access 2007 báo lỗi jason 5 193 22-11-16, 09:23 AM
Bài mới nhất: jason
  [Hỏi] Làm sao để ấn định Null cho trường Date khi sử dụng Class Module Minh Tiên 8 613 18-11-16, 09:29 AM
Bài mới nhất: MinhnHang

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ