Tạo Form tìm kiếm và nhập liệu

Liên hệ QC
Tôi xem qua cái Form tìm kiếm của bạn ductdh94, có một cái nghịch lý mà lúc đầu tôi có đề cập về tổ chức bảng dữ liệu đó là nên lưu cột ngày theo hàng dọc (theo dòng) mà bạn Cuto cứ đi theo hướng hàng ngang (theo cột). Khi người ta thiết kế form tìm kiếm cho bạn lại phải tốn code để chuyển dữ liệu vô Listbox thành hàng dọc, nếu thiết kế bảng chuẩn thì cần gì phải làm công việc lãng nhách này!!!
Một góp ý khác là tìm kiếm theo Ngày thì nên có 1 cặp textbox: [Từ ngày], [Đến ngày].

Screenshot at Jun 05 22-45-41.png
 
Tôi xem qua cái Form tìm kiếm của bạn ductdh94, có một cái nghịch lý mà lúc đầu tôi có đề cập về tổ chức bảng dữ liệu đó là nên lưu cột ngày theo hàng dọc (theo dòng) mà bạn Cuto cứ đi theo hướng hàng ngang (theo cột). Khi người ta thiết kế form tìm kiếm cho bạn lại phải tốn code để chuyển dữ liệu vô Listbox thành hàng dọc, nếu thiết kế bảng chuẩn thì cần gì phải làm công việc lãng nhách này!!!
Một góp ý khác là tìm kiếm theo Ngày thì nên có 1 cặp textbox: [Từ ngày], [Đến ngày].

View attachment 238808
cảm ơn phần góp ý của bác ạ! một phần em cũng muốn học hỏi thêm nữa
 
cắt đi thì được bác ạ.nhưng tạo ra một nguồn mới như thế thì em chịu thua là không biết làm hihi
Thì cắt vứt cái Name cũ đi thôi; Tạo (hay chính xác hơn là định nghĩa lại) cái mới mà xài

. . . . có một cái nghịch lý mà lúc đầu tôi có đề cập về tổ chức bảng dữ liệu đó là nên lưu cột ngày theo hàng dọc (theo dòng) mà bạn Cuto cứ đi theo hướng hàng ngang (theo cột). Khi người ta thiết kế form tìm kiếm cho bạn lại phải tốn code để chuyển dữ liệu vô Listbox thành hàng dọc, nếu thiết kế bảng chuẩn thì cần gì phải làm công việc lãng nhách này!!!
Có thể dữ liệu thực tế của chủ bài đăng là khác & file này chỉ là giả lập thôi(?)
Mà kể ra 1 ngày phát sinh đến ~ 3K dòng & chỉ 1 cột thì chắc cấu trúc cũng đang là hợp lý ở chừng mực nào đó.
 
Lần chỉnh sửa cuối:
Thì cắt vứt cái Name cũ đi thôi; Tạo (hay chính xác hơn là định nghĩa lại) cái mới mà xài
vậng, ý em không phải là muốn bỏ phần đấy đi mà chỉ là muốn học cách làm để học hỏi thêm thôi ah
Bài đã được tự động gộp:

Thì cắt vứt cái Name cũ đi thôi; Tạo (hay chính xác hơn là định nghĩa lại) cái mới mà xài
bác có tài liệu về phần này không cho em xin được không ạ?
 
Lần chỉnh sửa cuối:
Tài liệu đang trên màn hình trước mặt bạn đó còn gì; Cố gắng tìm hiểu đi, lúc có thời gian.
 
Tôi xem qua cái Form tìm kiếm của bạn ductdh94, có một cái nghịch lý mà lúc đầu tôi có đề cập về tổ chức bảng dữ liệu đó là nên lưu cột ngày theo hàng dọc (theo dòng) mà bạn Cuto cứ đi theo hướng hàng ngang (theo cột). Khi người ta thiết kế form tìm kiếm cho bạn lại phải tốn code để chuyển dữ liệu vô Listbox thành hàng dọc, nếu thiết kế bảng chuẩn thì cần gì phải làm công việc lãng nhách này!!!
Một góp ý khác là tìm kiếm theo Ngày thì nên có 1 cặp textbox: [Từ ngày], [Đến ngày].

View attachment 238808
đúng như bác nói, cái này do ông chủ thớt yêu cầu nên em mới viết thêm như thế, chứ bình thường file data của em cấu trúc theo cột, load vào mảng thì arr= sheet.range là xong :p
 
cảm ơn phần góp ý của bác ạ! một phần em cũng muốn học hỏi thêm nữa

Nếu bạn muốn học hỏi thì tôi gợi ý thêm cho bạn là khi bạn thiết kế cái bảng lưu dữ liệu hiện tại, bạn chỉ mới nghĩ đến là làm sao tìm kiếm trên nguồn dữ liệu, còn mấy phần quan trọng nữa là làm sao nhập liệu, cập nhật dữ liệu, xoá dữ liệu đối với bảng tính được thiết kế như hiện tại?
Khi Thêm, Xoá, Sửa thì code cho nó có tối giản không hay phải qua các thêm các bước xử lý trung gian phát sinh do cách thiết kế bảng?
Bảng dữ liệu thì chỉ thuần tuý lưu dữ liệu để làm sao thao tác dữ liệu dễ, gọn, nhanh nhất có thể. Muốn xem cho đẹp thì trích xuất dữ liệu qua một sheet báo cáo mẫu nào đó.
Ví dụ: đơn giản muốn thêm 1 dòng dữ liệu:
Các bước phải làm đối với bảng hiện tại:
- Xác định xem ngày nhập liệu là ngày nào -> xác định cột nào đúng với ngày nhập liệu -> chèn dòng
Nếu bảng có ngày sắp theo hàng dọc: chỉ cần 1 bước chèn dòng là xong.
 
liên quan đến chủ đề tiềm kiếm trong VBA .
Mọi người cho em hỏi là sau khi tim kiếm và đưa dữ liệu từ ô kết quả sang ô nhập lliệu để chỉnh sửa nội dung thông tin của khách hàng A đó nhưng sau khi em cập nhập lại thì nó lại in ra 1 hàng mới tức là khách hàng A có hai hàng 1 hàng cũ và một hang mới sau khi e cập nhập lại thông tin của khách hàng A đó. và sau khi sửa lại thông tin thì ngày tháng sửa thông tin sẽ tự đọng cập nhập trên file excel
đây là file làm của mình file thong tin khách hàng bằng tiếng nhật nên hơi khó hiểu một tí mọi người đừng để í tới phần tên đó là được nhé.
Em trinh bày hơi khó hiểu nên mong mọi người thông cảm ah!
Chúc mọi người một buổi sáng học tập và làm việc biệu quả .
 

File đính kèm

  • 【ES-横浜】受注登録 (1).xlsm
    94.3 KB · Đọc: 18
Lần chỉnh sửa cuối:
Mình sẽ không xem file của bạn, vì có xem cũng chả hiểu được.
Theo mình mường tượng thì bạn chưa phân biệt nhập mới & chỉnh sửa lại thông tin khách hàng.
Trước tiên mỗi khách hàng cần có mã duy nhất & mã này không tùy tiện chỉnh sửa được.
Khi nhập mới thì ta cú nhập các thông tin ta đang có;
Quả trình sửa & bổ sung không thể sửa mã KH; Khi cần cập nhật tìm tìm đến dòng có mã KH đó & cập nhập các thông tin khác, trừ thông tin mã KH
 
Mình sẽ không xem file của bạn, vì có xem cũng chả hiểu được.
Theo mình mường tượng thì bạn chưa phân biệt nhập mới & chỉnh sửa lại thông tin khách hàng.
Trước tiên mỗi khách hàng cần có mã duy nhất & mã này không tùy tiện chỉnh sửa được.
Khi nhập mới thì ta cú nhập các thông tin ta đang có;
Quả trình sửa & bổ sung không thể sửa mã KH; Khi cần cập nhật tìm tìm đến dòng có mã KH đó & cập nhập các thông tin khác, trừ thông tin mã KH
[/QUOT
cảm ơn câu trả lời của bạn mình đã ngộ ra được
do lúc mình bổ sung thong tin cho khách hàng đó thì mình lại nhấn nút làm mới nên nó sẽ tạo ra 1 hàng mới bây giờ mình sẽ tạo thêm một nút cập nhập và sau khi sửa thông tin thì mình chọn nút cập nhập này thì nó xẽ tự động ghi lại đúng không ah
 
Bạn thao tác thử với file này xem sao:
 

File đính kèm

  • Tìm Kiếm.xlsm
    27.1 KB · Đọc: 64
Bạn thao tác thử với file này xem sao:
[/QU

Bác ơi cho em hỏi là trong truongwf hợp của em là một khách hàng có rất nhiều cột thông tin của khách hàng và sau khi tìm kiếm khách hàng đó để sửa thì chỉ cho sửa 1 cột duy nhất còn tất cả các cột còn lại khong đuợc phép suẳ(ví dụ như co 20 cột thông tin thì chỉ duơc suẳ cột thông tin so 15 thôi còn lại khong duoc.
em làm như thế này thì nó không ra mong bác chỉ giáo giúp em ah


Private Sub cmbsua_Click()
Dim Rws As Long
Dim Rng As Range, sRng As Range
Rws = [B65500].End(xlUp).Row + 1
Set Rng = [b2].Resize(Rws)
Set sRng = Rng.Find(Worksheets("data").tenkh.Text, , xlFormulas, xlWhole)
If sRng Is Nothing Then
MsgBox "Kh?ng T?m Th?y!", , XC: Exit Sub
Else
Rws = sRng.Row
.Celss(Rws, "B").Value = ComboBox5.Value: ComboBox5.Value = "" (comboxx5 là ô cần phải sửa)
MsgBox "Xong R?i!", , XC
End If
End Sub
 
. . . . của em là một khách hàng (KH) có rất nhiều cột thông tin của KH và sau khi tìm kiếm khách hàng đó để sửa thì chỉ cho sửa 1 cột (2) duy nhất còn tất cả các cột còn lại khong đuợc phép suẳ(ví dụ như co 20 cột thông tin (1) thì chỉ duơc suẳ cột thông tin so 15 thôi còn lại khong duoc.
(1) Làm sao cho máy nhận được rằng thì là mà bạn chỉ muốn sửa ở cột nào.
Nếu luôn là cột 15 cho mọi KH thì Khi ấn vô ListBox để chọn 1 mã KH, thì chỉ thông tin cột cố định này hiện lên TextBox để bạn sửa thôi;
Còn nếu ứng với từng KH có cột cần sửa (thông tin) khác nhau thì cần thêm hộp thoại hay 1 TextBox để máy nó biết cột cần sửa.

(2) Vậy thì sửa cột cần sửa thuộc dòng của KH đó mà thôi. Vậy thì thay vì 20 TextBox cho 20 cột, ta chỉ cần 1 TextBox để nhập (từ ListBox) & lưu lên trang tính thôi. Tất nhiên cần thêm công đoạn xác định cột cần sửa như đã nói ở trên.
}}}}}
 
Bác ơi cho em hỏi là trong truongwf hợp của em là một khách hàng có rất nhiều cột thông tin của khách hàng và sau khi tìm kiếm khách hàng đó để sửa thì chỉ cho sửa 1 cột duy nhất còn tất cả các cột còn lại khong đuợc phép suẳ(ví dụ như co 20 cột thông tin thì chỉ duơc suẳ cột thông tin so 15 thôi còn lại khong duoc.

Cách đơn giản nhất là trên Userform, khoá (Locked=True) Textbox của dữ liệu nào không cho Sửa.
 
(1) Làm sao cho máy nhận được rằng thì là mà bạn chỉ muốn sửa ở cột nào.
Nếu luôn là cột 15 cho mọi KH thì Khi ấn vô ListBox để chọn 1 mã KH, thì chỉ thông tin cột cố định này hiện lên TextBox để bạn sửa thôi;
Còn nếu ứng với từng KH có cột cần sửa (thông tin) khác nhau thì cần thêm hộp thoại hay 1 TextBox để máy nó biết cột cần sửa.

(2) Vậy thì sửa cột cần sửa thuộc dòng của KH đó mà thôi. Vậy thì thay vì 20 TextBox cho 20 cột, ta chỉ cần 1 TextBox để nhập (từ ListBox) & lưu lên trang tính thôi. Tất nhiên cần thêm công đoạn xác định cột cần sửa như đã nói ở trên.
}}}}}
em xin lỗi bác bác có thể giải thích rõ hơn cho em với được không ah em chưa hiểu rõ lắm bác thông cảm
Bài đã được tự động gộp:

Cách đơn giản nhất là trên Userform, khoá (Locked=True) Textbox của dữ liệu nào không cho Sửa.
là sao mình chưa hiểu rõ lắm ah
 
em xin lỗi bác bác có thể giải thích rõ hơn cho em với được không ah em chưa hiểu rõ lắm bác thông cảm
Không thể thông cảm nổi khi chỉ muốn hiểu người khác, còn chả cho ai hiểu mình muốn gì 1 cách rõ ràng.
Tạm biệt!
 
Web KT
Back
Top Bottom