Xin giúp về cách sử dụng frame

Liên hệ QC

levanduyet

Hãy để gió cuốn đi.
Thành viên danh dự
Tham gia
30/5/06
Bài viết
1,798
Được thích
4,706
Giới tính
Nam
Tôi xin post bài giúp bạn Lã Thế Nam

Chào anh!
Tôi đang học sử dụng VB trong Excel, đang cần tạo một số form để sử dụng trong công việc, nhưng lại bị mắc về cách sử dụng frame.
Tôi có gửi anh file Thu.xls để anh xem giúp
Ý tưởng của tôi là:
Khi click vào CB1 trên màn hình Excel, hiện ra cửa sổ form (Chỉ gồm 2 nút Nhập liệu và Exit, không hiển thị farme "Cập nhật dữ liệu" - Tôi đặt tên là FNhap.
Khi click vào CB Nhập liệu thì FNhap mới hiển thị trên form - để thực hiện việc cập nhật dữ liệu.
Khi việc nhập liệu hoàn tất, nhấn vào CBThoat thì FNhap lại ẩn.
Hì hì, tôi dốt về VB lắm, mong sư phụ chỉ giáo, và có thể, sư phụ chuyển đề tài này lên GPE để anh em cùng tham khảo ha - User của tôi chưa được phép post bài trên diễn đàn.
Rất mong được hồi âm của anh.
Cảm ơn anh nhiều!
 

File đính kèm

Bạn chỉ cần để thuộc tính visible là False Hay True

.Visiable=False
.Visiable=True
 

File đính kèm

Upvote 0
Bổ sung xíu, cho ẩn. Ngọc Quân chỉ mới cho hiện thôi.
PHP:
Private Sub CBThoat_Click()
FormNhap.FNhap.Visible = False
End Sub
 
Upvote 0
Mình thấy nếu bạn làm form này sẽ rất phiền cho người sử dụng( phải tốn 2 lần thao tác thừa).
Nếu để học kinh nghiệm thì OK.
 
Upvote 0
Mình thấy nếu bạn làm form này sẽ rất phiền cho người sử dụng( phải tốn 2 lần thao tác thừa).
Nếu để học kinh nghiệm thì OK.

Đây mới là 1 frame (Giả sử tôi đặt tên lại FNhap là FNhapthu, CBNhap là CBNhapthu). Vẫn tại vị trí của FNhap (FNhapthu), tôi muốn tạo một Frame FNhapchi (và 1 Command Button có tên là CBNhapchi) nữa thì phải làm thế nào?
Khi Click vào CBNhapthu thì sẽ hiện ra FNhapthu, khi click vào CBNhapchi sẽ hiện ra FNhapchi (Có cấu trúc tương tự FNhapthu)
Mong các huynh chỉ giáo.
Thanks alot!
 
Upvote 0
Xin lỗi các huynh, tôi không đủ quyền gửi file đính kèm.
Đề nghị các bác chỉ cách tạo link đến file đính kèm của tôi để tiện cho việc đính kèm ví dụ ha.
Thanks!

File đính kèm của tôi đây.
http://www.zshare.net/download/50868264f409397a/
Nhờ các huynh chỉ giúp
Thanks
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Upvote 0
Thanks manhhung12
Bài của bạn là Form nằm trong form, của tôi là 2 frame chồng lên nhau trên 1 form cơ
Bài của bạn cũng rất hay, giúp tôi hiểu biết hơn những điều tôi đang thiếu.
Mong chỉ giúp

Ta có thể bố trí:
1/1 Form main(chính) gồm 2 command-button THU và CHI và 2 form PhieuThu và PhieuChi. Trên form PhieuThu/PhieuChi có 1 comboBox (THU/CHI).
2/chỉ cần 1 Form trên đó có 1 option (kiểu radio) để chọn THU/CHI, nếu chọn Thu thì hiển thị và lưu data vào sheet chứa phiếu thu và tương tự với phiếu chi.
Không nên để 2 Frame chồng nhau:
Do kg down được file bạn gửi nên tôi đoán và đề ra hướng giải quyết như vậy.
Tôi sẽ gửi bạn file ví dụ cho bạn sau.
 
Upvote 0

File đính kèm

Upvote 0
Huynh xem file Quan ly vang bac.rar của tôi chưa? Tôi định bố trí Options ở vị trí khác (Trên Multi Pages Báo cáo chẳng hạn), nhưng trên MP Cập nhật dữ liệu thì tôi định cho 2 frame chồng lên nhau - Quả thật giải quyết vấn đề này khó quá
Mong được sự chỉ bảo của manhhung12 và các đại ca khác
Tôi mới học VB, đọc các bài viết, tham khảo ý kiến các anh em và định làm 1 chương trình Quản lý Vàng bạc - Đá quý
Nhưng kiến thức hạn hẹp quá nên đang bị mắc :D
 
Upvote 0
Bạn tham khảo nguyên tắc của file của bạn ManhHung, áp dụng vào file của bạn. Nghĩa là form chỉ có 1 frame, gồm tất cả những control khác.

Khi nhấn nút Cập nhật PNhập, hoặc Cập nhật PXuất, sẽ làm hiện ra frame và làm thay đổi:

Các captain của các Label, của Frame
Các rowsource của các Combobox trong frame


Các lệnh thực thi của các nút trong hàng nút dưới cùng cũng phân ra 2 trường hợp căn cứ vào 1 cái nào đó đã thay đổi, chẳng hạn như Label của Frame. Thí dụ như nút thêm mới: sẽ gán giá trị các text box, combobox xuống sheet, sheet nhập hay sheet xuất, hay cột nào, ... thì dòm vào Frame.Label mà chọn.

Cách làm 2 frame giống hệt nhau chồng lên nhau sẽ làm nặng file 1 cách không cần thiết. Và không chuyên nghiệp.
 
Upvote 0
Bạn tham khảo nguyên tắc của file của bạn ManhHung, áp dụng vào file của bạn. Nghĩa là form chỉ có 1 frame, gồm tất cả những control khác.

Khi nhấn nút Cập nhật PNhập, hoặc Cập nhật PXuất, sẽ làm hiện ra frame và làm thay đổi:

Các captain của các Label, của Frame
Các rowsource của các Combobox trong frame


Các lệnh thực thi của các nút trong hàng nút dưới cùng cũng phân ra 2 trường hợp căn cứ vào 1 cái nào đó đã thay đổi, chẳng hạn như Label của Frame. Thí dụ như nút thêm mới: sẽ gán giá trị các text box, combobox xuống sheet, sheet nhập hay sheet xuất, hay cột nào, ... thì dòm vào Frame.Label mà chọn.

Cách làm 2 frame giống hệt nhau chồng lên nhau sẽ làm nặng file 1 cách không cần thiết. Và không chuyên nghiệp.
Làm theo cách dùng 1 frame chỉ nên dùng khi:
1. Có ít frame(có lẽ chỉ nên dừng lại ở 2).
2. Frame thiết kế đơn giản(Số lượng Control không nhiều, đặc biết là các Control phức tạp như ComboBox, ListBox, ...).
3. Cấu trúc của các frame tương đối giống nhau.
Nếu không thì tốt nhất vẫn nên dùng các frame riêng biệt, khi đó lúc thiết kế frame sẽ hơi mệt nhưng khi code thì sẽ đơn giản hơn rất nhiều.
Cá nhân tôi vẫn ủng hộ quan điểm dùng các frame riêng biệt trong mọi trường hợp và không cho rằng như vậy là không chuyên nghiệp. File có thể nặng hơn nhưng code sẽ trong sáng hơn, debug lỗi sẽ dễ ràng hơn và 1 điểm quan trọng không kém là chắc chắn nó chạy nhanh hơn.
 
Upvote 0
Làm theo cách dùng 1 frame chỉ nên dùng khi:
1. Có ít frame(có lẽ chỉ nên dừng lại ở 2).
2. Frame thiết kế đơn giản(Số lượng Control không nhiều, đặc biết là các Control phức tạp như ComboBox, ListBox, ...).
3. Cấu trúc của các frame tương đối giống nhau.
Nếu không thì tốt nhất vẫn nên dùng các frame riêng biệt, khi đó lúc thiết kế frame sẽ hơi mệt nhưng khi code thì sẽ đơn giản hơn rất nhiều.
Cá nhân tôi vẫn ủng hộ quan điểm dùng các frame riêng biệt trong mọi trường hợp và không cho rằng như vậy là không chuyên nghiệp. File có thể nặng hơn nhưng code sẽ trong sáng hơn, debug lỗi sẽ dễ ràng hơn và 1 điểm quan trọng không kém là chắc chắn nó chạy nhanh hơn.
Hình như Rollơver9 chưa hiểu hết ý của PTM rồi. Theo tôi Việc làm 2 frame giống nhau và chồng lên nhau nó rối hơn( rối ở chỗ chồng lên nhau đấy/ vì sẽ gặp rắc rối trong code để xử lý sự kiện và chuyển focus). Ví dụ của Thenam trên FR có rất nhiều control. Đúng là nếu trên FRame có ít control hay đơn giản thì ta nên dùng 1-2 Frame trên 1 Form. Còn khi trên 1 Frame có quá nhiều control người ta có thể chia ra nhiều Form để người dùng đễ sử dụng. Chung quy là tạo 1 giao diện thân thiện cho người dùng đẻ khi triển khai kg phải viết ra 1 quy trình hướng dẫn sử dụng hay có viết thì rất đơn giản.
Tôi hình dung Thenam(xin lượng thứ nếu có gì kg phải) đang cố gò vào 1 khuôn mẫu mà bạn đó đã thấy ở đâu đó rồi áp dụng vào bài toán của mình chứ chưa phân tích bài toán để lựa chọn phương án (thuật toán/thiết kế giao diện/coding,...).
Thân
 
Upvote 0
Làm theo cách dùng 1 frame chỉ nên dùng khi:
1. Có ít frame(có lẽ chỉ nên dừng lại ở 2).
2. Frame thiết kế đơn giản(Số lượng Control không nhiều, đặc biết là các Control phức tạp như ComboBox, ListBox, ...).
3. Cấu trúc của các frame tương đối giống nhau.
Nếu không thì tốt nhất vẫn nên dùng các frame riêng biệt, khi đó lúc thiết kế frame sẽ hơi mệt nhưng khi code thì sẽ đơn giản hơn rất nhiều.
Cá nhân tôi vẫn ủng hộ quan điểm dùng các frame riêng biệt trong mọi trường hợp và không cho rằng như vậy là không chuyên nghiệp. File có thể nặng hơn nhưng code sẽ trong sáng hơn, debug lỗi sẽ dễ ràng hơn và 1 điểm quan trọng không kém là chắc chắn nó chạy nhanh hơn.
To Rollover: Tôi ủng hộ quan điểm của bạn về cách sử dụng nhiềm frame trong 1 Form, nếu sử dụng cách này thiết kế frame sẽ khó hơn nhưng viết code sẽ dễ dàng hơn nhiều.
Và 1 điểm nữa, 2 frame của tôi cấu trúc chỉ tương đối giống nhau thôi chứ không hoàn toàn giống nhau.
To Manhhung12: Cảm ơn bạn đã chỉ bảo rất nhiều, tôi đã tìm được cách giải quyết việc tạo 2 frame chồng khít lên nhau rồi.
Những ý kiến góp ý của bạn sẽ giúp tôi rất nhiều để hoàn thiện chương trình này
Ah, xin nói thêm: Chương trình này tôi làm không giống cái nào đó đã nhìn thấy (viết bằng VB - Excel).
Mong được sự chỉ bảo tiếp của các đại ca nhé %#^#$
 
Upvote 0
To Manhhung12: Cảm ơn bạn đã chỉ bảo rất nhiều,
....
Ồ không tôi kg mong là như vậy. Tất cả chỉ là trao đổi và hoc tập lẫn nhau.
To Manhhung12:
...
Chương trình này tôi làm không giống cái nào đó đã nhìn thấy (viết bằng VB - Excel).
Mong được sự chỉ bảo tiếp của các đại ca nhé %#^#$
Thực ra ý của tôi là giao diện chứ không phải là code.
Lạy chúa!!!
... Cây đời mãi mãi xanh tươi. Và mong mãi mãi xanh tươi
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom