Hỏi về bài toán xây dựng ứng dụng quản lý dữ liệu khách hàng

Liên hệ QC
Cám ơn anhtuan1066 nhiều.
Tôi thấy file LocSN_7 có dùng VBA mà, theo tôi nên đơn giản một chút thà có cột phụ mà có ng hiểu tuy có chậm còn hơn. Bài này nếu dùng VBA thì 30s. Rất nhiều cách.
 
Trong file này có dùng VBA chủ yếu đễ sort ngày sinh thôi..
Tôi biết dùng VBA đễ trích thì ngon rồi.. nhưng bạn tôi lại ko biết, đành phải dùng công thức
Còn về cột phụ, tôi có thử qua... Nhưng dung lượng file vì thế mà tăng lên khũng khiếp.. đành phải chọn giãi pháp tối ưu nhất là tạo name đễ bỏ cột phụ (làm xong dung lương còn 1/2)
Mến
ANH TUẤN
 
Công thức thì mãi là công thức!!!

May mà mới chỉ có 50 khách hàng cần bổ sung thông tin. Chứ có khoảng 1000 khách hàng thì chắc . . . chết!!

Thân!
 
Mình muốn có í kiến!

Mình xin í kiến, nhưng là í kiến về cấu trúc CSDL của bạn, chứ không phải là phương thức giải;

Tại sao các bạn không lập riêng DS bưu cục ( gồm trường [MaBC] , [TenBC]
& như thế trong CSDL của bạn sẽ giảm rất nhiều, do thay vì bưu cục Tiền giang bạn nạp cho nó VD 2 kí tự TG mà thôi;
Trong trường Địa chỉ cũng vậy; chúng ta hoàn toàn có thể tách chữ Việt nam (đứng cuối) trong trường này ra (thường minh gán nó là cái tên); và 1 trường nữa cần nên tách ra là mã tỉnh;
Làm như vậy số byte của CSDL của bạn sẽ giảm đáng nễ ấy chứ!
Nên chăng cần tăng chất lượng truyền tải thông tin!

Bạn hãy thử đi, rồi sẽ sướng ngay í mà!

Trưa nay đi Biên hòa, ĐT 095 8532 448
 
Lần chỉnh sửa cuối:
Nho cac bac giup em them lan nua nhe.

Mấy file Anh Tuấn gửi, em loay hoay mãi vẫn ko ra như cách anh Tuấn chỉ cho em, em copy các tỉnh vảo. Đúng là do mới học, trình độ có hạn nên cũng khó để có thể làm được ngay, các thông tin lần trước em dửi là đầy đủ tất các các thông tin theo như của khách hàng, để họ dễ quản lý.

Lần này em gửi lại đầy đủ dữ liệu của các tỉnh em đang có, và em cũng chỉ cần xử lý trên những thông tin đó thôi, là đáp ứng được bài toán họ đặt ra cho em, mong các bác giúp em nhé.

Anh Tuân giup em thêm lần này nữa nhé, sau này khi có thêm thông tin, em sẽ copy vào dưới thôi. Phần thông tin của khách hàng mình tính sai hỏng cũng không nhiều đâu ạ (tức là trống dữ liệu ý).

Mong các bác giúp đỡ em thêm.
 
Em quen gui lai file dinh kem

Em mới học nên cũng chưa biết, nên cứ gửi đủ các trường. Thực tế chỉ cần các trường dữ liệu như vậy là đủ, chắc lần này sẽ giảm được kha khá, mong các bác chỉ giúp em nhé.

Vẫn chưa có cao thủ nào giúp đỡ em à????huhuhu...
Anh Tuấn đang ở đâu thế?
 

File đính kèm

  • Dulieu.rar
    476.4 KB · Đọc: 54
Lần chỉnh sửa cuối:
Vẫn đợi anh Tuấn trả lời em đấy ạ........
 
Ngodinhquan đã viết:
Em mới học nên cũng chưa biết, nên cứ gửi đủ các trường. Thực tế chỉ cần các trường dữ liệu như vậy là đủ, chắc lần này sẽ giảm được kha khá, mong các bác chỉ giúp em nhé.

Vẫn chưa có cao thủ nào giúp đỡ em à????huhuhu...
Anh Tuấn đang ở đâu thế?
1/ Bài này nên đưa sang phần công thức hay code
2/ Bạn muốn giải bài này = VBA hay CT
- Ct thì sẽ có cột phụ và chậm
- VBA sẽ nhanh hơn nhưng bạn phải nghiên cứu
 
Bác ThuNghi có thể giúp em làm bằng VBA cũng được, quan trọng nhất là ra được kết quả đúng thôi. Em cũng biết làm bằng VBA là hay nhất, vì em còn phải in cả nhãn nữa (em cũng đang có một chương trình khác bằng VBA nhưng ngày xưa là thuê chỗ khác họ viết cho mình, bài toán phức tạp hơn một chút). Nhưng chưa được học về nó nên nghĩ nếu ai đó làm giúp em bằng excel thì em sẽ dễ học và kiểm soát được chương trình hơn nên mới post bài lên GPE.

Nếu được phiền Bác ThuNghi hướng dẫn em cách làm với nhé, cám ơn bác nhiều.

Anh Tuấn chắc cũng sắp nghiên cứu xong rồi...hihi
 
Lần chỉnh sửa cuối:
Ngodinhquan đã viết:
Bác ThuNghi có thể giúp em làm bằng VBA cũng được, quan trọng nhất là ra được kết quả đúng thôi. Em cũng biết làm bằng VBA là hay nhất, vì em còn phải in cả nhãn nữa (em cũng đang có một chương trình khác bằng VBA nhưng ngày xưa là thuê chỗ khác họ viết cho mình, bài toán phức tạp hơn một chút). Nhưng chưa được học về nó nên nghĩ nếu ai đó làm giúp em bằng excel thì em sẽ dễ học và kiểm soát được chương trình hơn nên mới post bài lên GPE.

Nếu được phiền Bác ThuNghi hướng dẫn em cách làm với nhé, cám ơn bác nhiều.

Anh Tuấn chắc cũng sắp nghiên cứu xong rồi...hihi
Tôi làm thử =VBA nhưng chưa test hết, oải quá, tóm lại dùng = ct hay VBA mà dữ liệu kiểu này cũng mệt. Có làm = ct (Ct chỉ có 1 ô) thích thì triển khai.
Có hàm tentinh() bạn nên kiểm tra tên tỉnh có theo dmTinh ? trước khi chạy ct.
Bạn xem qua đi rồi hoàn thiện sau.
Với dl # 20.000 row chạy = VBA cũng thấy mệt lắm.
 

File đính kèm

  • Dulieu1.zip
    470.8 KB · Đọc: 69
ThuNghi chú ý là ko cần lồng hàm tách tỉnh vào file đâu... Vì thực chất là thế này đây: Do dử liệu có sẳn ko có tên tỉnh nên ta phải tách ra... Còn như từ giờ trở về sau nếu có nhập liệu, chỉ cần chú ý tự gõ vào tên tỉnh là dc rồi...
Nếu có thể dc thì nên cho hàm tách tỉnh ra 1 file riêng, khi tách xong ta copy paste Value vào file... Bõ chung có thể làm nặng file thêm mà thôi
 
Cái UDF tìm TenTinh() nếu không chạy thì có gì mà nặng.
Trước khi bạn xử lý nên kiếm cột nào trống và chạy UDF tentinh, sau đó dùng countif(DMtinh,...) xem tên tỉnh trích xuất ra có phù hợp không.
Tính viết luôn hàm ấy mà thấy NoNeed.
Bạn chép thêm code sau vào Module để kiểm tra xem trường địa chỉ có tên tỉnh phù hợp với DMTinh, và địa chỉ có cấu trúc khác, ie không có ","
Sub KiemTra()
Dim SoDong As Long
T1 = timeGetTime
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
On Error GoTo thoat
Sheets("Data").Select
Selection.AutoFilter
SoDong = Range("A3", Range("a65000").End(xlUp)).Rows.Count
Range("G3:G" & SoDong + 2).FormulaR1C1 = "=IF(TYPE(FIND("","",RC5))=16,0,COUNTIF(DMTinh,tentinh(RC5)))"
'Range("G3:G" & SoDong + 2).Value = Range("G3:G" & SoDong + 2).Value
With Range("G2")
.Value = "kt"
'.AutoFilter
.AutoFilter Field:=7, Criteria1:="0"
End With
T2 = timeGetTime
MsgBox "Thuc hien het " & T2 - T1 & " millisecond(s)"
thoat:
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
End With
End Sub
Sub XoaAutoFill()
Sheets("Data").Select
Selection.AutoFilter
Range("G2:G10000").ClearContents
MsgBox "OK"
End Sub
Sau khi chép vào, nhấn Alt F8, chọn KiemTra, Run. Kiểm những cell =0 đang filter.
Xong xuôi, bỏ AutoFilter và clear cột G (nhớ là xóa dữ liệu cột G) chớ o phải xóa cột G
 
Lần chỉnh sửa cuối:
To: Anh Tuấn
Bài toán của em còn phải in nhãn nữa anh ạ (tháng 12/2007 vừa rồi thì em Mail Merge trong Microsof word. Anh đang nghiên cứ giúp em thì để ý luôn ch oem vụ này anh nhé, em đang in trên đề can - khổ 23,8cm x 12,6 cm, chia ra 12 nhãn nhỏ trong đó (nhãn con có kích thước 7,5cm x 3,6 cm). Chương trình em đang có để in bài toán khác cũng viết trên VBA, và cũng in nhãn luôn ạ.

To: ThuNghi
Em down chương trình bác làm về nhưng nhiều cái không chạy bác ạ. Ví dụ: Bác nói nếu muốn tìm tất cả các tình thì ô đó để trống nhưng em để tróng lại không ra. Phiền bác có thể chỉ dẫn cho em chi tiết hơn được không. Cám ơn bác nhiều.

Mấy hôm nay bận quá không có thời gian vào GPE post bài.
Rất mong nhận được sự giúp đỡ của các anh chị trên GPE.
 
cám ơn bác ThuNghi

Vâng, em nói rõ hơn nhé:

- Ở sheet "TinhTheoThang", em bấm vào nút chọn ngày, rồi chạn tháng theo bác hướng dẫn thì ko thấy chạy. Chon từng tháng 1 cũng không thấy chạy bác ạ. Ở sheet này em thấy box "Thực hiện" cũng không có tác dụng gì cả.

- Ở sheet "List", "TheoTinh", "TheoNS" cũng thế bác ạ, hôm nay em thử lại không thấy chạy tí nào cả, mấy hôm trước hình như có chạy nhưng cái được cái không, hôm nay em thấy ko chạy tí nào cả.

Bác có thể hướng dẫn em thêm nhé. Càng cụ thể càng tốt ạ, vụ này em kém lắm....
 
Ngodinhquan đã viết:
Vâng, em nói rõ hơn nhé:

- Ở sheet "TinhTheoThang", em bấm vào nút chọn ngày, rồi chạn tháng theo bác hướng dẫn thì ko thấy chạy. Chon từng tháng 1 cũng không thấy chạy bác ạ. Ở sheet này em thấy box "Thực hiện" cũng không có tác dụng gì cả.

- Ở sheet "List", "TheoTinh", "TheoNS" cũng thế bác ạ, hôm nay em thử lại không thấy chạy tí nào cả, mấy hôm trước hình như có chạy nhưng cái được cái không, hôm nay em thấy ko chạy tí nào cả.

Bác có thể hướng dẫn em thêm nhé. Càng cụ thể càng tốt ạ, vụ này em kém lắm....
Để tôi xem lại, hôm trước chỉ làm sơ qua.
Với lại, bạn xem thế nào, file của bạn có bị xóa các code hay disable macro không. Chỉ có thể thực hiện mà báo lỗi sao lại không chạy gì cả.
Bạn gởi mail cho mình file ấy, ThuNghi0105@gmail.com
Để xem lại. Hôm nay có chạy lại file chỉ không đúng thôi vì tên tỉnh lung tung chớ nó vẫn chạy.
 
Khi mở file bạn phải chạy code kiểm tra tên tỉnh trong sh Data, nếu có tên tỉnh không thống nhất DM tỉnh thì filter để kiểm tra. Bạn sửa lại.
Sau đó nhớ bỏ Autofilter.
 

File đính kèm

  • Dulieu2.rar
    382.1 KB · Đọc: 63
ThuNghi đã viết:
Khi mở file bạn phải chạy code kiểm tra tên tỉnh trong sh Data, nếu có tên tỉnh không thống nhất DM tỉnh thì filter để kiểm tra. Bạn sửa lại.
Sau đó nhớ bỏ Autofilter.

Bac ThuNghi ơi, em mở cái Dulieu2 lên thì nó báo disable macro, phải làm như thế nào để nó ko bị disable macro nữa ạ, bác chỉ cho em với.
 
Ngodinhquan đã viết:
Vâng, em nói rõ hơn nhé:

- Ở sheet "TinhTheoThang", em bấm vào nút chọn ngày, rồi chạn tháng theo bác hướng dẫn thì ko thấy chạy. Chon từng tháng 1 cũng không thấy chạy bác ạ. Ở sheet này em thấy box "Thực hiện" cũng không có tác dụng gì cả.

- Ở sheet "List", "TheoTinh", "TheoNS" cũng thế bác ạ, hôm nay em thử lại không thấy chạy tí nào cả, mấy hôm trước hình như có chạy nhưng cái được cái không, hôm nay em thấy ko chạy tí nào cả.

Bác có thể hướng dẫn em thêm nhé. Càng cụ thể càng tốt ạ, vụ này em kém lắm....
Thì ra là vậy.
Bạn vào menu Tool, Macro, Sercurity, chọn Sercurity Level là Low.
 
Bác ThuNghi xem lại giúp em nhé!

Em đã làm giống như bác bảo, "Dulieu2" chạy ngon lành rồi bác ạ. Nhưng chạy sai rồi bác ạ.

Tháng trước em đã in nhãn và gửi thiếp chúc mừng sinh nhật đi rồi, em phải tự làm bằng tay, tách ngày tháng riêng và sort theo tháng (thì kết quả tháng 12 có 971 khách hàng - có 1 khách hàng địa chỉ lỗi nên chính xác tháng 12 có 970 khách).

Em gửi file đính kèm bác xem lại giúp em nhé, xem giúp em tại sao chương trình của bác lại ra kết quả tháng 12 là 901 khách hàng thôi.

Em cũng muốn bác chỉ rõ hơn để em có thể rap công thức vào file mới em tự làm mà vẫn ra được kết quả đúng (chắc chắn trước mắt em khổng hiểu ngay được công thức đâu ạ), nhưng cũng muốn từ những công thức đó rap vào file mà vẫn chạy ngon - vì dữ liệu của em ngày càng nhiều lên (có cập nhật thêm hàng tháng) nên nếu em tự rap được công thức có thể file của em chỉ để dữ liệu khách hàng sinh theo tháng thôi để chương trình chạy nhanh hơn - ví dụ tháng 1/2008 tới em có file chỉ gồm những người sinh tháng 01 thôi, nhưng bắc check lại cho em xem sao lại có sự khác biệt giữa 2 kết quả như vậy trước, đần dần em hỏi thêm sau.
 

File đính kèm

  • Thang12.rar
    69 KB · Đọc: 59
File của tôi có sửa đổi ngày (để chạy thử) nên có sự khác nhau.
Bạn chỉ cần xóa dữ liệu trong file Dulieu2, sh Data, cột A->F
Và copy dữ liệu mới vào, chạy code kiểm tra.
Hay là bạn đưa dữ liệu mà bạn đã trích ra file thang12 tôi test thử.
 
Web KT
Back
Top Bottom