QuytFootball
Thành viên mới

- Tham gia
- 21/8/21
- Bài viết
- 18
- Được thích
- 7
Bạn muốn thế nào. Không có file à? biết nói thế nào giờ nhỉEm có dùng 2 option button trong bảng nhập liêu. Code bắt buộc 1 trong 2 phải được tick mới cho nhập liệu. Em cảm ơn a
Xong rồi đây bạnEm có dùng 2 option button trong bảng nhập liêu. Code bắt buộc 1 trong 2 phải được tick mới cho nhập liệu. Em cảm ơn ah
View attachment 265162
Em có dùng 2 option button trong bảng nhập liêu. Code bắt buộc 1 trong 2 phải được tick mới cho nhập liệu. Em cảm ơn ah
View attachment 265162
Private Sub CommandButton1_Click()
If Not OptionButton1.Value And Not OptionButton2.Value Then
MsgBox "Ban phai chon mot trong hai Option!"
Exit Sub
End If
''Code cua ban.
End Sub
cảm ơn bạn nhé ^^!!!Đoán là code sẽ như vậy
if op1.value=false and op2.value=false then
msgbox "chua chon tuy chon"
exit sub
endif
Cảm ơn bro nhiều nhé !Ban thu với thủ tục dưới đây:
PHP:Private Sub CommandButton1_Click() If Not OptionButton1.Value And Not OptionButton2.Value Then MsgBox "Ban phai chon mot trong hai Option!" Exit Sub End If ''Code cua ban. End Sub
bạn tham khảo thêm code của bạn @Hoàng Trọng Nghĩa này, tổng quát hơn ấy ^^Đoán là code sẽ như vậy
if op1.value=false and op2.value=false then
msgbox "chua chon tuy chon"
exit sub
endif
Cái chỗ tô đỏ nghe nó kinh thiên động địa thế! Tùy theo lựa chọn nhiều lĩnh vực hay một lĩnh vực mà người ta dùng Frame hay không dùng thôi. Chứ chỉ 2 hoặc nhiều Option cho 1 lĩnh vực thì cần gì phải dùng Frame cho nặng file cơ chứ thằng em!Tổng quát chỗ nào?
Hỏi bài thì ném mỗi cái hình lên. May là có anh đẹp trai kia rảnh làm sẵn cho thôi.
Còn hàng tổng quát thì phải gom các OptionButtons vào 1 frame (bí mật khủng khiếp, hay ho ở chỗ này) rồi khi UserForm bắt đầu mở lên để chọn mặc định 1 cái OptionButton mà mình ưa thích.
Vậy là xong.
Mình mới tiếp xúc code vài ngày gần đây thôi, chưa thực hiểu bản chất nên thấy code nào hay hơn thì nêu quan điểm cá nhân.tổng quát thì phải gom các OptionButtons vào 1 frame (bí mật khủng khiếp, hay ho ở chỗ này)
Em bắt chước kiểu dùng từ ngữ mạnh mẽ, đúng chuẩn SEO từ khóa để câu kéo ấy mà. Anh không thấy có mấy cái thớt có từ kiểu đó lên trang nhất GPE là gì.Cái chỗ tô đỏ nghe nó kinh thiên động địa thế!
Em trả lời theo đúng dạng tổng quát rồi còn gì anh. Nếu chỉ có vậy thì đó (Form đó) là 1 frame rồi.chỉ 2 hoặc nhiều Option cho 1 lĩnh vực thì cần gì phải dùng Frame cho nặng file
Nếu họ nắm bắt được thì tốt quá rồi anh.Chẳng qua là khó khăn trong việc gọi tên của nó ra thôi, nếu vậy như anh chỉ đặt tên theo kiểu mặc định của nó là OK rồi, phải không?
Private Sub UserForm_Initialize()
OptionButton2.Value = True
End Sub
Đúng như anh nói, đối với option button thì chẳng cần cốt kiết gì để phải ràng buộc chọn, tự cái thiết lập property cùng với bản chất của nó (chỉ cho phép chọn 1 trong n cái cùng nhóm) là đủ rồi. Ai phải viết code là thừa.Ngoài việc thiết lập trong UserForm_Initialize (run-time) bạn có thể thiết lập trong cửa sổ Properties (design-time): chọn 1 OptionButton nào đó làm mặc định, vd. OptionButton2 -> trong Properties thiết lập Value là True.
Và một cái nữa. Không có chuyện click, đúp chuột vào OptionButton đang được chọn để bỏ chọn nó. Cũng không thể click OptionButton đang được chọn rồi nói câu thần chú để bỏ chọn nó. Khi 1 OptionButton được chọn thì chỉ có thể bỏ chọn nó bằng cách chọn OptionButton khác. Tức nếu ở thời điểm "chào buổi sáng" có 1 OptionButton được chọn thì muôn đời luôn có 1 OptionButton được chọn. Không thể có thời điểm nào đó mà tất cả OptionButton đều không được chọn.Đúng như anh nói, đối với option button thì chẳng cần cốt kiết gì để phải ràng buộc chọn, tự cái thiết lập property cùng với bản chất của nó (chỉ cho phép chọn 1 trong n cái cùng nhóm) là đủ rồi. Ai phải viết code là thừa.
Em chắc chắn với anh nếu là OptionButton thì mặc định chọn rồi.Giông như Install một cái app nó cũng không mặc định là Đồng ý và Không đồng ý (điều khoản), bạn phải chọn một trong hai nó mới cho Next.
Ừ thì cho dù có những trường hợp ngoại lệ (bởi vì mình cài đặt thường là nó để trống, buộc mình phải check vào), nhưng nếu chương trình do mình viết thì không bao giờ mình cho mặc định trước cái nào, để khỏi mắc công người nhập liệu lại quên và sau đó quay lại nói do app mặc định nên không chú ý, vậy thì mình bắt họ làm thêm một thao tác chọn để xác định việc nhập liệu này, sau khi nhập liệu xong thì mình lại cho cả 2 chưa chọn gì cả để tiếp tục nhập nghiệp vụ mới! Có như thế trách nhiệm của người nhập nó mới nâng cao lên được.Em chắc chắn với anh nếu là OptionButton thì mặc định chọn rồi.
Nếu là checkbox mới không mặc định chọn.
Trắc nghiệm và bình chọn là trường hợp khác: Cả 2 trường hợp trên đều có quyền để trống nhé! Không phải như chủ đề này bắt buộc phải chọn 1.chẳng hạn trắc nghiệm
xài một cái CheckBox cho nó lành
If OptBt1 Then "1 diem" Else "0 diem"
If OptBt1 Then a = a +1
If OptBt2 Then b = b +1
...
If OptBtn then n = n +1
Tác gải yêu cầu:Trắc nghiệm là trường hợp khác: Cả 2 trường hợp trên đều có quyền để trống nhé! Không phải như chủ đề này bắt buộc phải chọn 1.
Em có dùng 2 option button trong bảng nhập liêu. Code bắt buộc 1 trong 2 phải được tick mới cho nhập liệu. Em cảm ơn ah
View attachment 265162
Tôi nói rất rõ là 2 trường hợp trắc nghiệm và bình chọn là có quyền để trống, và tôi gợi ý code cho 2 trường hợp đó. Còn trường hợp bắt buộc chọn 1 thì phải cẩn thận thôi. Viết cho người khác xài phải kèm hướng dẫn sử dụng, không làm theo ráng chịu. Chỉ khi có quyền để trống mới không để mặc định.Tác gải yêu cầu:
xài một cái CheckBox cho nó lành
Ở đây cũng nói rất rõ là nếu ai đó nói phải để mặc định thì tôi cũng sẽ nói cũng có các trường hợp được để trống và do đây là việc mở rộng vấn đề mà chủ topic yêu cầu nên không ràng buộc việc có bắt buộc là phải chọn hay không chọn một trong nhiều cái OptionButton. OK?Tôi nói rất rõ là 2 trường hợp trắc nghiệm và bình chọn là có quyền để trống, và tôi gợi ý code cho 2 trường hợp đó. Còn trường hợp bắt buộc chọn 1 thì phải cẩn thận thôi. Viết cho người khác xài phải kèm hướng dẫn sử dụng, không làm theo ráng chịu. Chỉ khi có quyền để trống mới không để mặc định.
Còn Checkbox chỉ dùng cho trường hợp yes/No (đối lập) chứ không dùng cho 2 tuỳ chọn với 2 nội dung không đối lập nhau.
Tôi không muốn tranh luận hoặc cãi nhau: Nghĩa gợi ý 2 trường hợp "không bắt buộc chọn" và tôi gợi ý code khi "không bắt buộc chọn" nha! Đừng nghĩ xa quá rồi kiếm chuyện.Ở đây cũng nói rất rõ ...
Vấn đề CheckBox, thử đưa ra trường hợp nào mà 2 OptionButton (và chọn 1 là True) để tôi xử lý với 1 CheckBox đi, chứ nói không thì không được.
Đơn giản thế mà ta????Tôi không muốn tranh luận hoặc cãi nhau: Nghĩa gợi ý 2 trường hợp "không bắt buộc chọn" và tôi gợi ý code khi "không bắt buộc chọn" nha! Đừng nghĩ xa quá rồi kiếm chuyện.
Còn trường hợp 2 tuỳ chọn không đối lập thì thiếu gì:
- Chọn hình tròn hay hình vuông (form tính diện tích) (nếu checkbox thì label là gì? nếu label là "hình tròn" thì khi không check không biết là hình thế nào)
- Chọn nhận quà hay nhận voucher (form đổi điểm) (nếu label của checkbox là "nhận quà" thì khi không check làm sao biết là sẽ nhận gì?)
- Chọn tách sheet hay tắt excel. Chọn label là gì?
Đó là cố tình làm phức tạp hoá lên, nếu dùng 2 OptionButton thì đâu cần cái label khủng.Đơn giản thế mà ta????
.............
Nếu bỏ 2 option vào trong 1 frame, thì dùng ngay caption của frame để diễn giải "Chọn hình", lại còn gọn gàng và thẩm mỹ nữa.Có thể dùng Label ngắn gọn vd. "Hãy lựa chọn".
phải để người nhập xác định rõ ràng, không vì một thao tác mà quên chú ý đến sự lựa chọn nhằm xác định chủ ý của mình. #16
sau khi nhập liệu xong thì mình lại cho cả 2 chưa chọn gì cả để tiếp tục nhập nghiệp vụ mới #18
.............
Nhầm. Chủ thớt chỉ có 2 lựa chọn chứ không nhiều hơn.
Có thể dùng Label ngắn gọn vd. "Hãy lựa chọn". Dùng CheckBox thì phải giải thích, không đánh dấu thì nghĩa là gì (hoặc đánh dấu thì nghĩa là gì).
Với OptionButton thì người ta nhìn thấy ngay 2 lựa chọn là "vuông" và "tròn". Với CheckBox nếu Caption = "Hình vuông" thì người dùng hơi lúng túng khi không nhớ lựa chọn "kia" là gì.
Giải thích thì đượng nhiên dài dòng văn tự hơn.
Tất nhiên khi số lựa chọn > 2 (chọn 1 từ n, với n > 2) thì không thể dùng CheckBox. Còn OptionBiutton luôn dùng được.
Tôi thì thích cụm từ "bị bất ngờ". Tức đang quen "thế này", tự dưng bị gáo nước lạnh, phải mất một lúc định thần lại.- Nếu cần cả hai tính chất này thì các controls khác sẽ bắt buộc phải dùng code để bù lắp. Code bù lắp sẽ rất khó bảo trì. Và đối với người quen UI thì sẽ khó hiểu. Điển hình, người ta quen theo luật dấu tròn là option button (một lựa chọn), dấu vuông là checkbox (0-n lựa chọn); bi giờ mình dùng checkbox thay option button thì người dùng sẽ chưng hửng.
Tôi góp thêm 1 ý khi "muôn vàn" = 2:Tôi thì thích cụm từ "bị bất ngờ". Tức đang quen "thế này", tự dưng bị gáo nước lạnh, phải mất một lúc định thần lại.
Trường họp này thì dùng bao nhiêu CheckBox(es), 1 hay 2? và label chúng thế nào?Tôi góp thêm 1 ý khi "muôn vàn" = 2:
Nếu 2 tuỳ chọn mang tính đối lập như Yes/No, đúng/ sai, có/ không, chịu/ ứ chịu, ... thì nên dùng checkbox, nếu 2 tuỳ chọn không mang tính trái ngược nhau (không đối lập nhau), thì nên dùng OptionButton.
Theo tôi nếu chỉ có 2 trạng thái bật/tắt thì dùng CheckBox là đúng rồi. Dùng OptionButton sẽ gặp rắc rối.Trường họp này thì dùng bao nhiêu CheckBox(es), 1 hay 2? và label chúng thế nào?
Cho một ví dụ có hình ảnh minh hoạ. Đặt CheckBox(es) và Option Buttons bên cạnh nhau xem cái nào dễ hiểu (đối với người dùng), dễ xài (dối với người phát triển) hơn?
Đối với 2 tuỳ chọn đối nghịch như tôi đã thí dụ, thì chỉ cần 1 checkbox. Caption của nó là cái nào cũng được (1 trong 2 tuỳ chọn), vì người dùng hiểu ngay trái ngược đúng là sai, trái ngược sai là đúng; trái với có là không và ngược lại. Thí dụ trong việc tính diện tích:Trường họp này thì dùng bao nhiêu CheckBox(es), 1 hay 2? và label chúng thế nào?
Cho một ví dụ có hình ảnh minh hoạ. Đặt CheckBox(es) và Option Buttons bên cạnh nhau xem cái nào dễ hiểu (đối với người dùng), dễ xài (dối với người phát triển) hơn?
Chú: năm 2000, lúc tôi được tiếp xúc những bài học đầu tiên với WebForm thì ví dụ điển hình tôi học cho Y/N là ... Radio buttons (tên cũ của Option Buttons)
2 trạng thái (flip-flop/bistate) không phải là Options. Và vì vậy cái CheckBox gần với chuyện này hơn.Theo tôi nếu chỉ có 2 trạng thái bật/tắt thì dùng CheckBox là đúng rồi. Dùng OptionButton sẽ gặp rắc rối.
...
Yes/No là chọn lựa.Đối với 2 tuỳ chọn đối nghịch như tôi đã thí dụ, thì chỉ cần 1 checkbox. Caption của nó là cái nào cũng được (1 trong 2 tuỳ chọn), vì người dùng hiểu ngay trái ngược đúng là sai, trái ngược sai là đúng; trái với có là không và ngược lại.
Nam/ Nữ về lý thuyết là sự đối nghịch giới tính. Sau này có thêm giới tính thứ 3, thứ 4, ... nhưng mọi văn bản in ra, mọi form được tạo ra để đánh dấu đều là checkbox với label là Nam, Check là Nam và không check là nữ. Trong phần mềm mà tôi thiết kế thì dùng combobx chọn, List là 1 list động ai muốn thêm gì thì thêm.Yes/No là chọn lựa.
Cũng như Nam/Nữ.
Bỏ qua chuyện kỹ xảo. Tôi cốt ý nói: dùng CheckBox cho trường hợp 0/1 là buộc người dùng phải hiểu rằng "bạn không trả lời câu này đồng nghĩa với bạn chọn ..."Cũng là lý thuyết, tôi cũng có quyền để caption của checkbox là "Nữ", check là nữ và không check là nam. Chẳng qua nó ngược với thói quen người dùng. Cũng như "có khoét lỗ" và "không khoét lỗ", thói quen check là có, không check là không.
Còn vụ kỹ xảo bóp méo thì tôi không bàn, vì do tính chất ngành nghề nó vậy. Không chỉ trong survey
Trả lời/ không trả lời câu hỏi lại là đặc thù của 1 form dành riêng cho loại hình đặc thù nào đó. Form dùng tính toán hoặc dùng để nhập liệu thì người dùng phải cẩn thận. Để phòng xa thì như tôi đã nói: dùng combobox mặc định rỗng và ràng buộc not null."bạn không trả lời câu này đồng nghĩa với bạn chọn ..."
Phòng vậy hơi xa quá. Theo kinh nghiệm thiết kế form của tôi thì combobox hơi mất thì giờ chọn. Gặp cái form dùng làm data entry thì người dùng gõ quen rồi sẽ nhớ hết các thứ tự từng control. Các controls đơn giản họ gõ lẹ lắm..... Để phòng xa thì như tôi đã nói: dùng combobox mặc định rỗng và ràng buộc not null.
Khi tôi nhận bàn giao lúc mới nhận việc, tôi đã thấy 1 sự cẩu thả trong thiết kế dữ liệu: Cùng là thu chi mà tách ra 2 bảng Cash và bank cho 2 loại hình thanh toán tiền mặt và thanh toán bằng chuyển khoản qua ngân hàng. Việc đó chưa nghiêm trọng, vấn đề là tên fields 2 bảng khác nhau, đã vậy 1 bảng nó đặt 1 checkbox IsReceive và 1 bảng đặt 1 checkbox là IsPayment để phân biệt chứng từ thu/ chi. Người dùng cũng loạn mà người phải code để lập báo cáo dòng tiền (gộp 2 bảng lại) cũng bị loạn. Một số người đang viết code ầm ầm ở GPE đây không phân tích để thiết kế dữ liệu đến mức đó.Phòng vậy hơi xa quá. Theo kinh nghiệm thiết kế form của tôi thì combobox hơi mất thì giờ chọn. Gặp cái form dùng làm data entry thì người dùng gõ quen rồi sẽ nhớ hết các thứ tự từng control. Các controls đơn giản họ gõ lẹ lắm.
Việc thiếu tính hệ thống và nhất quán khi thiết kế csdl hay lập trình là 1 tất yếu không loại trừ ai cả. Người ta chỉ nhận ra sai lầm khi đã quá muộn kể cả Microsoft. Thế mới có chuyện cứ mãi vá lỗi nhưng cứ sửa 1 lỗi thì lại ra 10 lỗi khác.Khi tôi nhận bàn giao lúc mới nhận việc, tôi đã thấy 1 sự cẩu thả trong thiết kế dữ liệu: Cùng là thu chi mà tách ra 2 bảng Cash và bank cho 2 loại hình thanh toán tiền mặt và thanh toán bằng chuyển khoản qua ngân hàng. Việc đó chưa nghiêm trọng, vấn đề là tên fields 2 bảng khác nhau, đã vậy 1 bảng nó đặt 1 checkbox IsReceive và 1 bảng đặt 1 checkbox là IsPayment để phân biệt chứng từ thu/ chi. Người dùng cũng loạn mà người phải code để lập báo cáo dòng tiền (gộp 2 bảng lại) cũng bị loạn. Một số người đang viết code ầm ầm ở GPE đây không phân tích để thiết kế dữ liệu đến mức đó.
Biết nhiều 1 chút thì lỗi sẽ bớt đi 1 chút. Chỉ sợ không chịu học để biết thôi.Việc thiếu tính hệ thống và nhất quán khi thiết kế csdl hay lập trình là 1 tất yếu không loại trừ ai cả. Người ta chỉ nhận ra sai lầm khi đã quá muộn kể cả Microsoft. Thế mới có chuyện cứ mãi vá lỗi nhưng cứ sửa 1 lỗi thì lại ra 10 lỗi khác.
Tìm ra lỗi người khác thì rất dễ nhưng buộc mình không mắc lỗi như họ thì không dễ chút nào, nếu không muốn nói là không thể.
Thì tôi viết rõ mà2 trạng thái (flip-flop/bistate) không phải là Options. Và vì vậy cái CheckBox gần với chuyện này hơn.
Theo tôi nếu chỉ có 2 trạng thái bật/tắt thì dùng CheckBox là đúng rồi. Dùng OptionButton sẽ gặp rắc rối.
- dùng OptionButton. Dĩ nhiên là nếu muốn chọn thì click, còn không muốn thì không click. Nhưng nếu click rồi sau đó muốn nghĩ lại hoặc sơ ý click thì sao? Không thể nào bỏ chọn được nữa. Với OptionButton thì nếu đã click thì muôn đời nó được chọn và không thể bỏ chọn như CheckBox được. Để khắc phục vấn đề này thì phải dùng 2 OptionButton
Nhưng như thế thì hơi không tự nhiên.
Cái này quá dễ hiểu. Vì Microsoft cũng chỉ là người chứ không là thánh. Con người có giỏi đến đâu thì cũng không biết mọi thứ trên đời được. Nếu Microsoft là THÁNH thì đã không phạm bất cứ lỗi nào, và làm gì có lỗi đầu tiên để mà Vá.Người ta chỉ nhận ra sai lầm khi đã quá muộn kể cả Microsoft. Thế mới có chuyện cứ mãi vá lỗi nhưng cứ sửa 1 lỗi thì lại ra 10 lỗi khác.
Thêm nữa: Cái hay của con người là dễ nhìn thấy cái dỡ của người khác, nhóm khác hay hội khác; Nhưng không thể thấy nhiều cái dỡ của chính mình, của nhóm mình & nói rọng ra là của hội của mình.. . . . . . . .Không ai có thể lường hết mọi trường hợp sẽ có thể sảy ra, nhìn ra mọi chỗ yếu tiềm năng. Trừ phi là thánh.
Nhìn thấy cọng cỏ trong mắt người khác nhưng không thấy được dầm trong mắt mình.Thêm nữa: Cái hay của con người là dễ nhìn thấy cái dỡ của người khác, nhóm khác hay hội khác; Nhưng không thể thấy nhiều cái dỡ của chính mình, của nhóm mình & nói rọng ra là của hội của mình.
Cái bài #542 màb bác quote nó không nói rõ là lỗi ở controls hay lỗi của csdl.Cái này quá dễ hiểu. Vì Microsoft cũng chỉ là người chứ không là thánh. Con người có giỏi đến đâu thì cũng không biết mọi thứ trên đời được. Nếu Microsoft là THÁNH thì đã không phạm bất cứ lỗi nào, và làm gì có lỗi đầu tiên để mà Vá.
Không ai có thể lường hết mọi trường hợp sẽ có thể sảy ra, nhìn ra mọi chỗ yếu tiềm năng. Trừ phi là thánh.
À, tôi nói về lỗi chung chung thôi. Lỗi của phần mềm, lỗi của hệ điều hành, lỗi trong lập trình, lỗi trong công việc hàng ngày. Bất kể là lỗi gì, con người chứ không phải là thánh.Cái bài #542 màb bác quote nó không nói rõ là lỗi ở controls hay lỗi của csdl.