hỏi về cách tiếp cận, gán dữ liệu với các Control không tên ( UserForm ) (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Tôi tuân thủ nội quy khi đăng bài

giaoluu1231

Thành viên mới
Tham gia
13/2/25
Bài viết
6
Được thích
0
Chào diễn đàn,

Tình hình là mình có tạo các Control động, không có tên cố định ( 1 hàng gồm 1 Combobox - 1 TextBox )
Vậy sau khi mình sổ list và chọn dữ liệu tại Combobox chứa dữ liệu tại cột A Sheet1 thì làm sao nó gán dữ liệu tương ứng dòng hàng tại cột B Sheet1 vào TextBox nhỉ
Vì các Control động này không có tên mình cũng chưa biết tiếp cận thế nào
Mình gửi link chứa file có code ở đây. Bạn nào từng xử lý rồi giúp mình nhé
Xin chân thành cám ơn
 

File đính kèm

Vì các Control động này không có tên mình cũng chưa biết tiếp cận thế nào
Chưa có tên thì đặt tên cho nó.
Mà theo ý kiến riêng của tôi thì cứ vẽ sẵn, tự khắc nó có tên.
Lưu ý: Việc đặt tên cũng nên theo quy luật
 
Lần chỉnh sửa cuối:
Upvote 0
Chưa có tên thì đặt tên cho nó.
Mà theo ý kiến riêng của tôi thì cứ vẽ sẵn, tự khác nó có tên.
Lưu ý: Việc đặt tên cũng nên theo quy luật
Vẽ sẵn thì lâu lắm bác ơi. Làm như đoạn code của em bây giờ covert như nào cho nó tự đặt tên các Controls động và sưi kiện nào để nó gán tiếp nhỉ. Nhờ bác giúp. Cám ơn
 
Upvote 0
Vẽ sẵn thì lâu lắm bác ơi. Làm như đoạn code của em bây giờ covert như nào cho nó tự đặt tên các Controls động và sưi kiện nào để nó gán tiếp nhỉ. Nhờ bác giúp. Cám ơn
Cái này nên viết cái class để tạo tự động, hình như diễn đàn này đã có mấy bài.
Bạn nên mô tả mục đích cuối cùng của bài toán dữ liệu này là bạn muốn xử lý cái gì thay vì tự đưa ra cái giải pháp của bạn là tạo comboBox, textbox tự động. Có thể sẽ có nhưng cách, nhưng qui trình thao tác... hợp lý hơn.
 
Lần chỉnh sửa cuối:
Upvote 0
Chào diễn đàn,

Tình hình là mình có tạo các Control động, không có tên cố định ( 1 hàng gồm 1 Combobox - 1 TextBox )
Vậy sau khi mình sổ list và chọn dữ liệu tại Combobox chứa dữ liệu tại cột A Sheet1 thì làm sao nó gán dữ liệu tương ứng dòng hàng tại cột B Sheet1 vào TextBox nhỉ
Vì các Control động này không có tên mình cũng chưa biết tiếp cận thế nào
Mình gửi link chứa file có code ở đây. Bạn nào từng xử lý rồi giúp mình nhé
Xin chân thành cám ơn
Sr cả nhà rất nhiều, mình xin phép up lại link file Xlsm
Bài đã được tự động gộp:

Chào diễn đàn,

Tình hình là mình có tạo các Control động, không có tên cố định ( 1 hàng gồm 1 Combobox - 1 TextBox )
Vậy sau khi mình sổ list và chọn dữ liệu tại Combobox chứa dữ liệu tại cột A Sheet1 thì làm sao nó gán dữ liệu tương ứng dòng hàng tại cột B Sheet1 vào TextBox nhỉ
Vì các Control động này không có tên mình cũng chưa biết tiếp cận thế nào
Mình gửi link chứa file có code ở đây. Bạn nào từng xử lý rồi giúp mình nhé
Xin chân thành cám ơn
Bài đã được tự động gộp:

Bạn bỏ cái đuôi file .xls đi, chỉ giữ lại .xlsm là được rồi.
sr bạn nhiều, mình xin phép up lại link file xlsm https://www.mediafire.com/file/l2ab3lrhqxifloa/Test.xlsm/file

File hỏng có mở được đâu

View attachment 307066. Mình
 
Upvote 0
Vẽ sẵn thì lâu lắm bác ơi. Làm như đoạn code của em bây giờ covert như nào cho nó tự đặt tên các Controls động và sưi kiện nào để nó gán tiếp nhỉ. Nhờ bác giúp. Cám ơn
Câu lệnh đặt tên đâu có gì khó đâu nhỉ?
Ngay trong câu lệnh Controls.Add của bạn có chỗ để đặt tên mà bạn bỏ qua

1739459092291.png
Vấn đề khi bạn có tên rồi, bạn có bắt được sự kiện cho các control(s) có tên đó hay không? Theo như bài 5 thì phải tạo class và sự kiện dùng chung viết trong class. "Vẽ sẵn lâu lắm", thế thì giả sử bạn chưa biết class là gì thì không chỉ có "lâu lắm" thôi đâu.
Cũng theo bài 5 gợi ý, mà tôi cũng thích như vậy thì:
Dùng 1 combobox duy nhất (vẽ sẵn) và 1 listbox 2 cột. Cứ 1 lần chọn trong combobox, sẽ tạo 1 dòng mới của listbox.
 
Upvote 0
Câu lệnh đặt tên đâu có gì khó đâu nhỉ?
Ngay trong câu lệnh Controls.Add của bạn có chỗ để đặt tên mà bạn bỏ qua

View attachment 307067
Vấn đề khi bạn có tên rồi, bạn có bắt được sự kiện cho các control(s) có tên đó hay không? Theo như bài 5 thì phải tạo class và sự kiện dùng chung viết trong class. "Vẽ sẵn lâu lắm", thế thì giả sử bạn chưa biết class là gì thì không chỉ có "lâu lắm" thôi đâu.
Cũng theo bài 5 gợi ý, mà tôi cũng thích như vậy thì:
Dùng 1 combobox duy nhất (vẽ sẵn) và 1 listbox 2 cột. Cứ 1 lần chọn trong combobox, sẽ tạo 1 dòng mới của listbox.
Ồ! Có lẽ vậy vẫn đẹp hơn í bạn, nhưng mình đang ngâm cứu quả này. Cũng chưa hình dung ra quả Textbox đó phải bắt sự kiện thế nào. Nhờ bạn vẽ hẳn lá bùa lên file hộ mình. Mình gửi coffee lại bn. Cúm ơn nhiều, Hiiiii
 
Upvote 0
Ồ! Có lẽ vậy vẫn đẹp hơn í bạn, nhưng mình đang ngâm cứu quả này. Cũng chưa hình dung ra quả Textbox đó phải bắt sự kiện thế nào. Nhờ bạn vẽ hẳn lá bùa lên file hộ mình. Mình gửi coffee lại bn. Cúm ơn nhiều, Hiiiii
Bạn chuyển cái "lâu lắm" của bạn sang cho người khác làm à? Tôi sẽ không làm. Có tiền triệu cũng không làm chứ đừng nói cafe. Bạn tìm tài liệu tôi đã viết và học từ đầu đi.
 
Upvote 0
Hừhmm!! Vì cũng k có nhiều thời gian để kiểm tra lại tác vụ nhỏ này, nên là định nhờ mọi người thôi. Dù sao cũng rất cám ơn bác nhé, Hiii
 
Upvote 0
Tôi cũng cám ơn bạn với cái "Hừm"
 
Upvote 0
Hừhmm!! Vì cũng k có nhiều thời gian để kiểm tra lại tác vụ nhỏ này, nên là định nhờ mọi người thôi. Dù sao cũng rất cám ơn bác nhé, Hiii
Cái nhỏ đơn giản chỉ tạo UserForm mà làm còn không được thì nói chi đến làm việc lớn. Tính mà mắt thiên hạ để dọn ổ sẳn cho đẻ à ? Tìm các bài viết có sẳn UserForm để tham khảo, nếu bạn không có thời gian thì ai rảnh để làm giùm cho bạn ?
 
Upvote 0
Bạn chuyển cái "lâu lắm" của bạn sang cho người khác làm à? Tôi sẽ không làm. Có tiền triệu cũng không làm chứ đừng nói cafe. Bạn tìm tài liệu tôi đã viết và học từ đầu đi.
Cái nhỏ đơn giản chỉ tạo UserForm mà làm còn không được thì nói chi đến làm việc lớn. Tính mà mắt thiên hạ để dọn ổ sẳn cho đẻ à ? Tìm các bài viết có sẳn UserForm để tham khảo, nếu bạn không có thời gian thì ai rảnh để làm giùm cho bạn ?
Thớt có tư tưởng độc đáo, ngỡ là có thể nhờ GPE "làm giùm cái roẹt".
Chỉ cái tội lười biếng, không chịu đọc cho kỹ bài #8 để thấy cái "tư tưởng độc đáo" nó chỉ làm tới tên của controls thôi, còn các cơ phận khác của controls thì nó xụi lơ.
Bài này khá dài và cần phải có một trình độ khá, không phải chỉ ngồi đó chờ code sẵn.

Về trình độ hiểu biết kỹ thuật:

1. UserForm Controls là đối tượng chỉ hoàn hảo khi được thiết kế theo kết nối sớm (thiết kế trên VBE).
2. Code UserForm sử dụng cho Accesss khá cũ. Vì vậy độ hổ trợ hướng đối tượng không cao. Các Controls không được viết theo kiểu class chân chính cho nên thiếu một số public subs để tạo tính chất bắt sự kiện. Tính chất này được VBE cho vào lúc kết nối sớm (thiết kế) chứ không thể vào lúc kết nối trễ (thêm Controls lúc chạy)
3. Để bổ khuyết cho khuyết điểm "không HĐT" của VBA, MS đặt ra class module. Với kỹ thuật này, người ta có thể viết một class chạy lồng bên dưới các controls bị khiếm khuyết do kết nối trễ. Class này chứa code sử lý bắt sự kiện. Như vậy các controls có thể tự nạp đối tượng class này và thừa hưởng tính chất bắt sự kiện.

Chú thích 1:
Thêm thắt tính chất cho đối tượng kết nối trễ chỉ là một ứng dụng của class module. Còn nhiều vông dụng khác mà code VBA thường không sử lý được.

Chú thích 2:
Hình như hôm qua có bạn đăng bài quảng cáo bài học C/C++ trên GPE.
Bạn nào học theo sẽ thấy kết nối trễ trong C++ bề ngoài hơi khác một chút nhưng lý thuyết căn bản thì cũng vậy.
Khi học ở trình độ nâng cao thì kiến thức này sẽ giúp bạn dễ hiểu hơn cái bảng kết nối ảo (virtual table) của C++
 
Upvote 0
Web KT

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

Back
Top Bottom