Trợ giúp em mã VBA Tỉnh, Huyện, Xã

Liên hệ QC

luuphong98

Thành viên mới
Tham gia
27/10/18
Bài viết
11
Được thích
3
hiện là em đang làm bảng nhập liệu tên khách hàng, em dùng code dùng cho tỉnh:
"Private Sub cb_tinh_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim Cll1, Cll2
Dim ws As Worksheet
With Sheets("KHU_VUC")
Set Cll1 = .[A1:A1000].Find(Cb_Tinh.Value, [A1], , 1, , 1)
If Cll1 Is Nothing Then Exit Sub
Set Cll2 = .[A1:A1000].Find(Cb_Tinh.Value, [A1], , 1, , 2)
cb_huyen.RowSource = "KHU_VUC!" & Cll1.Offset(, 1).Address & ":" & Cll2.Offset(, 1).Address
End With
End Sub"

và code cho huyện:
Private Sub cb_huyen_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim Cll0, Cll3
With Sheets("KHU_VUC")
Set Cll0 = .[B1:B1000].Find(cb_huyen.Value, [B1], , 1, , 1)
If Cll0 Is Nothing Then Exit Sub
Set Cll3 = .[B1:B1000].Find(cb_huyen.Value, [B1], , 1, , 2)
cb_xa.RowSource = "KHU_VUC!" & Cll0.Offset(, 1).Address & ":" & Cll3.Offset(, 1).Address
End With
End Sub

nhưng nó hiện ra lỗi tên huyện trùng rất nhiều !
A/C có cách nào làm cho nó không trùng tên huyện không, mong chỉ giúp ạ!

Download file
 
Bạn thử tham khảo cách mình tìm dòng đầu & dòng cuối của 1 tỉnh (Ở cột B của trang tính):
PHP:
Sub TimDongDauVaDongCuoiCuaTinhBacKan()
Dim Rng As Range, sRng As Range
Dim MyAdd As String
Dim DongDau As Long, DongCuoi As Long
Set Rng = Range([B1], [B1].End(xlDown))
Set sRng = Rng.Find([G1].Value, , xlFormulas, xlWhole) 'Ô G1 Là Tên Tinh Cân Tìm'
If Not sRng Is Nothing Then
    MyAdd = sRng.Address:                   DongDau = sRng.Row
    Do
        DongCuoi = sRng.Row
        Set sRng = Rng.FindNext(sRng)
    Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
End If
MsgBox "Last Row:" & DongCuoi, , "First Row:" & DongDau
End Sub
 
Upvote 0
Bạn thử tham khảo cách mình tìm dòng đầu & dòng cuối của 1 tỉnh (Ở cột B của trang tính):
PHP:
Sub TimDongDauVaDongCuoiCuaTinhBacKan()
Dim Rng As Range, sRng As Range
Dim MyAdd As String
Dim DongDau As Long, DongCuoi As Long
Set Rng = Range([B1], [B1].End(xlDown))
Set sRng = Rng.Find([G1].Value, , xlFormulas, xlWhole) 'Ô G1 Là Tên Tinh Cân T́m   '
If Not sRng Is Nothing Then
    MyAdd = sRng.Address:                   DongDau = sRng.Row
    Do
        DongCuoi = sRng.Row
        Set sRng = Rng.FindNext(sRng)
    Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
End If
MsgBox "Last Row:" & DongCuoi, , "First Row:" & DongDau
End Sub
Hình như có gì đó sai sai ! em hỏi là code em sao lại bị "trùng tên huyện" còn tìm dòng đầu cuối em có tham khảo rồi.
Bài đã được tự động gộp:

combobox ở ô huyện bị trùng nhau là cho ra rất nhiều kết quả giống nhau!
 
Upvote 0
Sau khi tìm theo tên tỉnh, thì ở nam phần Việt nam có đến 9 huyện có tên 'Châu thành'
Nên bạn tối thiểu cần 1 danh sách như thế này, mới tìm đúng được:
(Dòng)Tên TỉnhTên HuyệnTên Phường/Xã/TTTỉnh Bắc Kạn
2256Tỉnh Cao BằngHuyện Thạch AnThị trấn Đông Khê
2257Tỉnh Cao BằngHuyện Thạch AnXã Đức Thông
2258Tỉnh Cao BằngHuyện Thạch AnXã Quang Trọng
2259Tỉnh Bắc KạnThành Phố Bắc KạnPhường Nguyễn Thị Minh Khai
2260Tỉnh Bắc KạnThành Phố Bắc KạnPhường Huyền Tụng
2261Tỉnh Bắc KạnThành Phố Bắc KạnPhường Xuất Hóa
2262Tỉnh Bắc KạnThành Phố Bắc KạnPhường Phùng Chí Kiên
2263Tỉnh Bắc KạnThành Phố Bắc KạnPhường Đức Xuân
2264Tỉnh Bắc KạnThành Phố Bắc KạnXã Dương Quang
2265Tỉnh Bắc KạnThành Phố Bắc KạnPhường Sông Cầu
2266Tỉnh Bắc KạnThành Phố Bắc KạnXã Nông Thượng
2267Tỉnh Bắc KạnHuyện Pác NặmXã Nhạn Môn
2268Tỉnh Bắc KạnHuyện Pác NặmXã Bộc Bố
2269Tỉnh Bắc KạnHuyện Pác NặmXã Công Bằng
2270Tỉnh Bắc KạnHuyện Pác NặmXã Giáo Hiệu
2271Tỉnh Bắc KạnHuyện Pác NặmXã Xuân La
2272Tỉnh Bắc KạnHuyện Pác NặmXã An Thắng
2273Tỉnh Bắc KạnHuyện Pác NặmXã Cổ Linh
2274Tỉnh Bắc KạnHuyện Pác NặmXã Nghiên Loan
2275Tỉnh Bắc KạnHuyện Pác NặmXã Cao Tân
2276Tỉnh Bắc KạnHuyện Pác NặmXã Bằng Thành
2277Tỉnh Bắc KạnHuyện Ba BểXã Bành Trạch
2278Tỉnh Bắc KạnHuyện Ba BểXã Đồng Phúc
2279Tỉnh Bắc KạnHuyện Ba BểXã Hoàng Trĩ
2280Tỉnh Bắc KạnHuyện Ba BểXã Mỹ Phương
2281Tỉnh Bắc KạnHuyện Ba BểXã Quảng Khê
2282Tỉnh Bắc KạnHuyện Ba BểXã Chu Hương
2283Tỉnh Bắc KạnHuyện Ba BểXã Yến Dương
2284Tỉnh Bắc KạnHuyện Ba BểXã Địa Linh
2285Tỉnh Bắc KạnHuyện Ba BểXã Thượng Giáo
2286Tỉnh Bắc KạnHuyện Ba BểXã Nam Mẫu
2287Tỉnh Bắc KạnHuyện Ba BểXã Khang Ninh
2288Tỉnh Bắc KạnHuyện Ba BểXã Cao Trĩ
2289Tỉnh Bắc KạnHuyện Ba BểXã Cao Thượng
2290Tỉnh Bắc KạnHuyện Ba BểXã Phúc Lộc
2291Tỉnh Bắc KạnHuyện Ba BểThị trấn Chợ Rã
2292Tỉnh Bắc KạnHuyện Ba BểXã Hà Hiệu
2293Tỉnh Bắc KạnHuyện Ngân SơnXã Bằng Vân
2294Tỉnh Bắc KạnHuyện Ngân SơnXã Hương Nê
2295Tỉnh Bắc KạnHuyện Ngân SơnXã Thượng Ân
2296Tỉnh Bắc KạnHuyện Ngân SơnXã Cốc Đán
2297Tỉnh Bắc KạnHuyện Ngân SơnXã Trung Hòa
2298Tỉnh Bắc KạnHuyện Ngân SơnXã Đức Vân
2299Tỉnh Bắc KạnHuyện Ngân SơnXã Vân Tùng
2300Tỉnh Bắc KạnHuyện Ngân SơnXã Thượng Quan
2301Tỉnh Bắc KạnHuyện Ngân SơnXã Lãng Ngâm
2302Tỉnh Bắc KạnHuyện Ngân SơnXã Thuần Mang
2303Tỉnh Bắc KạnHuyện Ngân SơnThị trấn Nà Phặc
2304Tỉnh Bắc KạnHuyện Bạch ThôngThị trấn Phủ Thông
2305Tỉnh Bắc KạnHuyện Bạch ThôngXã Tân Tiến
2306Tỉnh Bắc KạnHuyện Bạch ThôngXã Lục Bình
2307Tỉnh Bắc KạnHuyện Bạch ThôngXã Cao Sơn
2308Tỉnh Bắc KạnHuyện Bạch ThôngXã Tú Trĩ
2309Tỉnh Bắc KạnHuyện Bạch ThôngXã Đôn Phong
2310Tỉnh Bắc KạnHuyện Bạch ThôngXã Vũ Muộn
2311Tỉnh Bắc KạnHuyện Bạch ThôngXã Hà Vị
2312Tỉnh Bắc KạnHuyện Bạch ThôngXã Sĩ Bình
2313Tỉnh Bắc KạnHuyện Bạch ThôngXã Quân Bình
2314Tỉnh Bắc KạnHuyện Bạch ThôngXã Phương Linh
2315Tỉnh Bắc KạnHuyện Bạch ThôngXã Nguyên Phúc
2316Tỉnh Bắc KạnHuyện Bạch ThôngXã Vi Hương
2317Tỉnh Bắc KạnHuyện Bạch ThôngXã Mỹ Thanh
2318Tỉnh Bắc KạnHuyện Bạch ThôngXã Quang Thuận
2319Tỉnh Bắc KạnHuyện Bạch ThôngXã Dương Phong
2320Tỉnh Bắc KạnHuyện Bạch ThôngXã Cẩm Giàng
2321Tỉnh Bắc KạnHuyện Chợ ĐồnXã Bản Thi
2322Tỉnh Bắc KạnHuyện Chợ ĐồnXã Yên Nhuận
2323Tỉnh Bắc KạnHuyện Chợ ĐồnXã Bình Trung
2324Tỉnh Bắc KạnHuyện Chợ ĐồnXã Yên Mỹ
2325Tỉnh Bắc KạnHuyện Chợ ĐồnXã Phong Huân
2326Tỉnh Bắc KạnHuyện Chợ ĐồnXã Nghĩa Tá
2327Tỉnh Bắc KạnHuyện Chợ ĐồnXã Đại Sảo
2328Tỉnh Bắc KạnHuyện Chợ ĐồnXã Bằng Lãng
2329Tỉnh Bắc KạnHuyện Chợ ĐồnXã Lương Bằng
2330Tỉnh Bắc KạnHuyện Chợ ĐồnXã Đông Viên
2331Tỉnh Bắc KạnHuyện Chợ ĐồnXã Rã Bản
2332Tỉnh Bắc KạnHuyện Chợ ĐồnXã Ngọc Phái
2333Tỉnh Bắc KạnHuyện Chợ ĐồnXã Phương Viên
2334Tỉnh Bắc KạnHuyện Chợ ĐồnXã Yên Thượng
2335Tỉnh Bắc KạnHuyện Chợ ĐồnXã Yên Thịnh
2336Tỉnh Bắc KạnHuyện Chợ ĐồnXã Bằng Phúc
2337Tỉnh Bắc KạnHuyện Chợ ĐồnThị trấn Bằng Lũng
2338Tỉnh Bắc KạnHuyện Chợ ĐồnXã Xuân Lạc
2339Tỉnh Bắc KạnHuyện Chợ ĐồnXã Đồng Lạc
2340Tỉnh Bắc KạnHuyện Chợ ĐồnXã Nam Cường
2341Tỉnh Bắc KạnHuyện Chợ ĐồnXã Tân Lập
2342Tỉnh Bắc KạnHuyện Chợ ĐồnXã Quảng Bạch
2343Tỉnh Bắc KạnHuyện Chợ MớiXã Nông Thịnh
2344Tỉnh Bắc KạnHuyện Chợ MớiXã Thanh Vận
2345Tỉnh Bắc KạnHuyện Chợ MớiXã Mai Lạp
2346Tỉnh Bắc KạnHuyện Chợ MớiXã Hòa Mục
2347Tỉnh Bắc KạnHuyện Chợ MớiXã Thanh Mai
2348Tỉnh Bắc KạnHuyện Chợ MớiXã Cao Kỳ
2349Tỉnh Bắc KạnHuyện Chợ MớiXã Nông Hạ
2350Tỉnh Bắc KạnHuyện Chợ MớiThị trấn Chợ Mới
2351Tỉnh Bắc KạnHuyện Chợ MớiXã Yên Đĩnh
2352Tỉnh Bắc KạnHuyện Chợ MớiXã Yên Hân
2353Tỉnh Bắc KạnHuyện Chợ MớiXã Thanh Bình
2354Tỉnh Bắc KạnHuyện Chợ MớiXã Như Cố
2355Tỉnh Bắc KạnHuyện Chợ MớiXã Tân Sơn
2356Tỉnh Bắc KạnHuyện Chợ MớiXã Bình Văn
2357Tỉnh Bắc KạnHuyện Chợ MớiXã Quảng Chu
2358Tỉnh Bắc KạnHuyện Chợ MớiXã Yên Cư
2359Tỉnh Bắc KạnHuyện Na RìXã Kim Lư
2360Tỉnh Bắc KạnHuyện Na RìXã Dương Sơn
2361Tỉnh Bắc KạnHuyện Na RìXã Hảo Nghĩa
2362Tỉnh Bắc KạnHuyện Na RìXã Vũ Loan
2363Tỉnh Bắc KạnHuyện Na RìXã Cư Lễ
2364Tỉnh Bắc KạnHuyện Na RìXã Côn Minh
2365Tỉnh Bắc KạnHuyện Na RìXã Văn Minh
2366Tỉnh Bắc KạnHuyện Na RìXã Lam Sơn
2367Tỉnh Bắc KạnHuyện Na RìXã Xuân Dương
2368Tỉnh Bắc KạnHuyện Na RìXã Lương Thành
2369Tỉnh Bắc KạnHuyện Na RìXã Quang Phong
2370Tỉnh Bắc KạnHuyện Na RìXã Lương Hạ
2371Tỉnh Bắc KạnHuyện Na RìXã Cường Lợi
2372Tỉnh Bắc KạnHuyện Na RìXã Văn Học
2373Tỉnh Bắc KạnHuyện Na RìXã Kim Hỷ
2374Tỉnh Bắc KạnHuyện Na RìXã Lương Thượng
2375Tỉnh Bắc KạnHuyện Na RìXã Lạng San
2376Tỉnh Bắc KạnHuyện Na RìThị trấn Yến Lạc
2377Tỉnh Bắc KạnHuyện Na RìXã Ân Tình
2378Tỉnh Bắc KạnHuyện Na RìXã Liêm Thuỷ
2379Tỉnh Bắc KạnHuyện Na RìXã Hữu Thác
2380Tỉnh Bắc KạnHuyện Na RìXã Đổng Xá
2381Tỉnh Tuyên QuangThành phố Tuyên QuangPhường Ỷ La
2382Tỉnh Tuyên QuangThành phố Tuyên QuangXã Thái Long
2383Tỉnh Tuyên QuangThành phố Tuyên QuangXã Đội Cấn

Cách thứ 2 là gán mã địa danh cho từng phường theo kiểu:
Mã HuyệnTên Huyện
2901Quận Ba Đình
2902Quận Hoàn Kiếm
2903Quận Tây Hồ
2904Quận Long Biên
2905Quận Cầu Giấy
2906Quận Đống Đa
2907Quận Hai Bà Trưng
2908Quận Hoàng Mai
2909Quận Thanh Xuân
2910Huyện Sóc Sơn
2911Huyện Đông Anh
2912Huyện Gia Lâm
2913Quận Nam Từ Liêm
2914Huyện Thanh Trì
2915Quận Bắc Từ Liêm
2916Quận Hà Đông
2917Thị xã Sơn Tây
2918Huyện Ba Vì
2919Huyện Phúc Thọ
2920Huyện Đan Phượng
2921Huyện Hoài Đức
2922Huyện Quốc Oai
2923Huyện Thạch Thất
2924Huyện Chương Mỹ
2925Huyện Thanh Oai
 
Upvote 0
Sau khi tìm theo tên tỉnh, thì ở nam phần Việt nam có đến 9 huyện có tên 'Châu thành'
Nên bạn tối thiểu cần 1 danh sách như thế này, mới tìm đúng được:
(Dòng)Tên TỉnhTên HuyệnTên Phường/Xã/TTTỉnh Bắc Kạn
2256Tỉnh Cao BằngHuyện Thạch AnThị trấn Đông Khê
2257Tỉnh Cao BằngHuyện Thạch AnXã Đức Thông
2258Tỉnh Cao BằngHuyện Thạch AnXã Quang Trọng
2259Tỉnh Bắc KạnThành Phố Bắc KạnPhường Nguyễn Thị Minh Khai
2260Tỉnh Bắc KạnThành Phố Bắc KạnPhường Huyền Tụng
2261Tỉnh Bắc KạnThành Phố Bắc KạnPhường Xuất Hóa
2262Tỉnh Bắc KạnThành Phố Bắc KạnPhường Phùng Chí Kiên
2263Tỉnh Bắc KạnThành Phố Bắc KạnPhường Đức Xuân
2264Tỉnh Bắc KạnThành Phố Bắc KạnXã Dương Quang
2265Tỉnh Bắc KạnThành Phố Bắc KạnPhường Sông Cầu
2266Tỉnh Bắc KạnThành Phố Bắc KạnXã Nông Thượng
2267Tỉnh Bắc KạnHuyện Pác NặmXã Nhạn Môn
2268Tỉnh Bắc KạnHuyện Pác NặmXã Bộc Bố
2269Tỉnh Bắc KạnHuyện Pác NặmXã Công Bằng
2270Tỉnh Bắc KạnHuyện Pác NặmXã Giáo Hiệu
2271Tỉnh Bắc KạnHuyện Pác NặmXã Xuân La
2272Tỉnh Bắc KạnHuyện Pác NặmXã An Thắng
2273Tỉnh Bắc KạnHuyện Pác NặmXã Cổ Linh
2274Tỉnh Bắc KạnHuyện Pác NặmXã Nghiên Loan
2275Tỉnh Bắc KạnHuyện Pác NặmXã Cao Tân
2276Tỉnh Bắc KạnHuyện Pác NặmXã Bằng Thành
2277Tỉnh Bắc KạnHuyện Ba BểXã Bành Trạch
2278Tỉnh Bắc KạnHuyện Ba BểXã Đồng Phúc
2279Tỉnh Bắc KạnHuyện Ba BểXã Hoàng Trĩ
2280Tỉnh Bắc KạnHuyện Ba BểXã Mỹ Phương
2281Tỉnh Bắc KạnHuyện Ba BểXã Quảng Khê
2282Tỉnh Bắc KạnHuyện Ba BểXã Chu Hương
2283Tỉnh Bắc KạnHuyện Ba BểXã Yến Dương
2284Tỉnh Bắc KạnHuyện Ba BểXã Địa Linh
2285Tỉnh Bắc KạnHuyện Ba BểXã Thượng Giáo
2286Tỉnh Bắc KạnHuyện Ba BểXã Nam Mẫu
2287Tỉnh Bắc KạnHuyện Ba BểXã Khang Ninh
2288Tỉnh Bắc KạnHuyện Ba BểXã Cao Trĩ
2289Tỉnh Bắc KạnHuyện Ba BểXã Cao Thượng
2290Tỉnh Bắc KạnHuyện Ba BểXã Phúc Lộc
2291Tỉnh Bắc KạnHuyện Ba BểThị trấn Chợ Rã
2292Tỉnh Bắc KạnHuyện Ba BểXã Hà Hiệu
2293Tỉnh Bắc KạnHuyện Ngân SơnXã Bằng Vân
2294Tỉnh Bắc KạnHuyện Ngân SơnXã Hương Nê
2295Tỉnh Bắc KạnHuyện Ngân SơnXã Thượng Ân
2296Tỉnh Bắc KạnHuyện Ngân SơnXã Cốc Đán
2297Tỉnh Bắc KạnHuyện Ngân SơnXã Trung Hòa
2298Tỉnh Bắc KạnHuyện Ngân SơnXã Đức Vân
2299Tỉnh Bắc KạnHuyện Ngân SơnXã Vân Tùng
2300Tỉnh Bắc KạnHuyện Ngân SơnXã Thượng Quan
2301Tỉnh Bắc KạnHuyện Ngân SơnXã Lãng Ngâm
2302Tỉnh Bắc KạnHuyện Ngân SơnXã Thuần Mang
2303Tỉnh Bắc KạnHuyện Ngân SơnThị trấn Nà Phặc
2304Tỉnh Bắc KạnHuyện Bạch ThôngThị trấn Phủ Thông
2305Tỉnh Bắc KạnHuyện Bạch ThôngXã Tân Tiến
2306Tỉnh Bắc KạnHuyện Bạch ThôngXã Lục Bình
2307Tỉnh Bắc KạnHuyện Bạch ThôngXã Cao Sơn
2308Tỉnh Bắc KạnHuyện Bạch ThôngXã Tú Trĩ
2309Tỉnh Bắc KạnHuyện Bạch ThôngXã Đôn Phong
2310Tỉnh Bắc KạnHuyện Bạch ThôngXã Vũ Muộn
2311Tỉnh Bắc KạnHuyện Bạch ThôngXã Hà Vị
2312Tỉnh Bắc KạnHuyện Bạch ThôngXã Sĩ Bình
2313Tỉnh Bắc KạnHuyện Bạch ThôngXã Quân Bình
2314Tỉnh Bắc KạnHuyện Bạch ThôngXã Phương Linh
2315Tỉnh Bắc KạnHuyện Bạch ThôngXã Nguyên Phúc
2316Tỉnh Bắc KạnHuyện Bạch ThôngXã Vi Hương
2317Tỉnh Bắc KạnHuyện Bạch ThôngXã Mỹ Thanh
2318Tỉnh Bắc KạnHuyện Bạch ThôngXã Quang Thuận
2319Tỉnh Bắc KạnHuyện Bạch ThôngXã Dương Phong
2320Tỉnh Bắc KạnHuyện Bạch ThôngXã Cẩm Giàng
2321Tỉnh Bắc KạnHuyện Chợ ĐồnXã Bản Thi
2322Tỉnh Bắc KạnHuyện Chợ ĐồnXã Yên Nhuận
2323Tỉnh Bắc KạnHuyện Chợ ĐồnXã Bình Trung
2324Tỉnh Bắc KạnHuyện Chợ ĐồnXã Yên Mỹ
2325Tỉnh Bắc KạnHuyện Chợ ĐồnXã Phong Huân
2326Tỉnh Bắc KạnHuyện Chợ ĐồnXã Nghĩa Tá
2327Tỉnh Bắc KạnHuyện Chợ ĐồnXã Đại Sảo
2328Tỉnh Bắc KạnHuyện Chợ ĐồnXã Bằng Lãng
2329Tỉnh Bắc KạnHuyện Chợ ĐồnXã Lương Bằng
2330Tỉnh Bắc KạnHuyện Chợ ĐồnXã Đông Viên
2331Tỉnh Bắc KạnHuyện Chợ ĐồnXã Rã Bản
2332Tỉnh Bắc KạnHuyện Chợ ĐồnXã Ngọc Phái
2333Tỉnh Bắc KạnHuyện Chợ ĐồnXã Phương Viên
2334Tỉnh Bắc KạnHuyện Chợ ĐồnXã Yên Thượng
2335Tỉnh Bắc KạnHuyện Chợ ĐồnXã Yên Thịnh
2336Tỉnh Bắc KạnHuyện Chợ ĐồnXã Bằng Phúc
2337Tỉnh Bắc KạnHuyện Chợ ĐồnThị trấn Bằng Lũng
2338Tỉnh Bắc KạnHuyện Chợ ĐồnXã Xuân Lạc
2339Tỉnh Bắc KạnHuyện Chợ ĐồnXã Đồng Lạc
2340Tỉnh Bắc KạnHuyện Chợ ĐồnXã Nam Cường
2341Tỉnh Bắc KạnHuyện Chợ ĐồnXã Tân Lập
2342Tỉnh Bắc KạnHuyện Chợ ĐồnXã Quảng Bạch
2343Tỉnh Bắc KạnHuyện Chợ MớiXã Nông Thịnh
2344Tỉnh Bắc KạnHuyện Chợ MớiXã Thanh Vận
2345Tỉnh Bắc KạnHuyện Chợ MớiXã Mai Lạp
2346Tỉnh Bắc KạnHuyện Chợ MớiXã Hòa Mục
2347Tỉnh Bắc KạnHuyện Chợ MớiXã Thanh Mai
2348Tỉnh Bắc KạnHuyện Chợ MớiXã Cao Kỳ
2349Tỉnh Bắc KạnHuyện Chợ MớiXã Nông Hạ
2350Tỉnh Bắc KạnHuyện Chợ MớiThị trấn Chợ Mới
2351Tỉnh Bắc KạnHuyện Chợ MớiXã Yên Đĩnh
2352Tỉnh Bắc KạnHuyện Chợ MớiXã Yên Hân
2353Tỉnh Bắc KạnHuyện Chợ MớiXã Thanh Bình
2354Tỉnh Bắc KạnHuyện Chợ MớiXã Như Cố
2355Tỉnh Bắc KạnHuyện Chợ MớiXã Tân Sơn
2356Tỉnh Bắc KạnHuyện Chợ MớiXã Bình Văn
2357Tỉnh Bắc KạnHuyện Chợ MớiXã Quảng Chu
2358Tỉnh Bắc KạnHuyện Chợ MớiXã Yên Cư
2359Tỉnh Bắc KạnHuyện Na RìXã Kim Lư
2360Tỉnh Bắc KạnHuyện Na RìXã Dương Sơn
2361Tỉnh Bắc KạnHuyện Na RìXã Hảo Nghĩa
2362Tỉnh Bắc KạnHuyện Na RìXã Vũ Loan
2363Tỉnh Bắc KạnHuyện Na RìXã Cư Lễ
2364Tỉnh Bắc KạnHuyện Na RìXã Côn Minh
2365Tỉnh Bắc KạnHuyện Na RìXã Văn Minh
2366Tỉnh Bắc KạnHuyện Na RìXã Lam Sơn
2367Tỉnh Bắc KạnHuyện Na RìXã Xuân Dương
2368Tỉnh Bắc KạnHuyện Na RìXã Lương Thành
2369Tỉnh Bắc KạnHuyện Na RìXã Quang Phong
2370Tỉnh Bắc KạnHuyện Na RìXã Lương Hạ
2371Tỉnh Bắc KạnHuyện Na RìXã Cường Lợi
2372Tỉnh Bắc KạnHuyện Na RìXã Văn Học
2373Tỉnh Bắc KạnHuyện Na RìXã Kim Hỷ
2374Tỉnh Bắc KạnHuyện Na RìXã Lương Thượng
2375Tỉnh Bắc KạnHuyện Na RìXã Lạng San
2376Tỉnh Bắc KạnHuyện Na RìThị trấn Yến Lạc
2377Tỉnh Bắc KạnHuyện Na RìXã Ân Tình
2378Tỉnh Bắc KạnHuyện Na RìXã Liêm Thuỷ
2379Tỉnh Bắc KạnHuyện Na RìXã Hữu Thác
2380Tỉnh Bắc KạnHuyện Na RìXã Đổng Xá
2381Tỉnh Tuyên QuangThành phố Tuyên QuangPhường Ỷ La
2382Tỉnh Tuyên QuangThành phố Tuyên QuangXã Thái Long
2383Tỉnh Tuyên QuangThành phố Tuyên QuangXã Đội Cấn

Cách thứ 2 là gán mã địa danh cho từng phường theo kiểu:
Mã HuyệnTên Huyện
2901Quận Ba Đình
2902Quận Hoàn Kiếm
2903Quận Tây Hồ
2904Quận Long Biên
2905Quận Cầu Giấy
2906Quận Đống Đa
2907Quận Hai Bà Trưng
2908Quận Hoàng Mai
2909Quận Thanh Xuân
2910Huyện Sóc Sơn
2911Huyện Đông Anh
2912Huyện Gia Lâm
2913Quận Nam Từ Liêm
2914Huyện Thanh Trì
2915Quận Bắc Từ Liêm
2916Quận Hà Đông
2917Thị xã Sơn Tây
2918Huyện Ba Vì
2919Huyện Phúc Thọ
2920Huyện Đan Phượng
2921Huyện Hoài Đức
2922Huyện Quốc Oai
2923Huyện Thạch Thất
2924Huyện Chương Mỹ
2925Huyện Thanh Oai
em làm giống anh ở cách 1 nhưng nó sẽ trùng lại vì chỉ có 1 tỉnh thôi! còn cách 2 thì thì không biết viết làm sao vì code trên em làm giống trên youtube
Bài đã được tự động gộp:

cho em hỏi có cách nào gộp lại kết quả bị trùng không ?
vì nếu gộp được thì sẽ không có vụ lặp lại trong chuỗi tìm kiếm ở "ô huyện"
Bài đã được tự động gộp:

TINH_CODEHUYEN
Bến TreTP. Bến Tre
Bến TreBa Tri
Bến TreBình Đại
Bến TreChâu Thành
Bến TreChợ Lách
Bến TreGiồng Trôm
Bến TreMỏ Cày Bắc
Bến TreMỏ Cày Nam
Bến TreThạnh Phú

Em làm thêm 1 table là dòng TINH_CODE và cho add vô code cb_tinh thì kết quả rất ok, không biết đúng hay sai
 
Lần chỉnh sửa cuối:
Upvote 0
Cách I: Sau khi tìm tỉnh 'Bắc Kạn' ta có vùng [B2259:B2380]
Tiếp theo Ta cần tìm huyện 'Chợ Mới' chỉ trong vùng [C2259:C2380] này thôi
Nếu tìm khác thì ở tỉnh An Giang cũng có huyện 'Chợ Mới' nhẩy vô kèm theo liền.

Còn theo cách thứ 2 thì Hà Nội mình gán mã 29 (biển số xe HN) , Hải phòng là 16, Đồng Nai: 60 & TF HCM là 50,. . . .
Quận I TF HCM sẽ là 5001,. . . Bình Chánh sẽ là 5013,. . . .
Phường Phạm Ngũ Lão thuộc Q. I sẽ có thể là 500113,. . .
. . ..
Như vậy Châu Thành của Bà Rịa Vũng Tàu sẽ khác với Châu thành của Tây Ninh hay CT của Bến Tre. . .
 
Upvote 0
em làm giống anh ở cách 1 nhưng nó sẽ trùng lại vì chỉ có 1 tỉnh thôi! còn cách 2 thì thì không biết viết làm sao vì code trên em làm giống trên youtube
Bài đã được tự động gộp:

cho em hỏi có cách nào gộp lại kết quả bị trùng không ?
vì nếu gộp được thì sẽ không có vụ lặp lại trong chuỗi tìm kiếm ở "ô huyện"
Bài đã được tự động gộp:

TINH_CODEHUYEN
Bến TreTP. Bến Tre
Bến TreBa Tri
Bến TreBình Đại
Bến TreChâu Thành
Bến TreChợ Lách
Bến TreGiồng Trôm
Bến TreMỏ Cày Bắc
Bến TreMỏ Cày Nam
Bến TreThạnh Phú

Em làm thêm 1 table là dòng TINH_CODE và cho add vô code cb_tinh thì kết quả rất ok, không biết đúng hay sai
Chữa cháy
Mã:
Private Sub cb_tinh_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    cb_huyen.RowSource = "KHU_VUC!" & Range("Huyen").Address
End Sub
Chắc chắn sẽ cháy tiếp
 
Upvote 0
Với C1: Để tìm 1 tỉnh nào đó, ta phải tìm trong vùng có 11165 dòng dữ liệu
Khi tìm Huyện hay Quận ta chỉ phải tìm cỡ trung bình 200 dòng dữ liệu
Khi tìm đến Xã hay phường ta chỉ tìm cỡ 5 mươi dòng là cùng.

Với C2 thì ngược là đôi chút để tìm Nhưng có mã địa danh thì khi Ô, 2uốc hội ho, ta sẵn thuốc cảm cúm ngay rồi!
 
Upvote 0
hiện là em đang làm bảng nhập liệu tên khách hàng, em dùng code dùng cho tỉnh:
Bạn hãy đọc bài #1 ở link sau để hiểu yêu cầu của chủ thớt và lấy dữ liệu tỉnh, huyện, xã làm cơ sở dữ liệu. Vì hiện thời bạn cũng mới chỉ có tỉnh Bến Tre trong cột A, không có các tỉnh khác. Càng chưa có các huyện, xã cho các tỉnh còn thiếu.

Sau đó đọc bài #15 của tôi để biết tôi xử lý thế nào.

Khi chọn tỉnh trong combobox tỉnh thì trong combobox huyện sẽ chỉ có các huyện trong tỉnh đó. Khi chọn huyện trong combobox huyện thì trong combobox xã chỉ có các xã trong huyện đó.

 
Upvote 0
Bạn tham khảo thêm cách cùi bắp này xem thử:
 

File đính kèm

  • Mã.rar
    225.8 KB · Đọc: 29
Upvote 0
CHUYỆN GÌ SẼ DIỄN RA, 1 KHI
Thay vì ta nhập TP HCM, Q. 1, P. Cầu kho (là nơi sinh) ta chỉ nhập 1 con số có 6 kí số: 500110

Trong đó 2 ký số đầu là mã tỉnh/thành phố; 2 Kí số giữa là mã huyện, quận & 2 số cuối là mã của địa danh xã

STTMã NVHọ & TênNgày sinhGiới tínhMã Nơi sinh. . . .(Tương đương)
0GPEGPE.COM
7/1/2007​
1BXT00Bùi Xuân Thái
2/20/1954​
Nu640104T. Tỉnh Vĩnh Long, H. Thành phố Vĩnh Long, X. Xã Trường An
2LMD00Lê Mỹ Dung
3/13/1988​
Nu292420T. Thành phố Hà Nội, H. Huyện Thạch Thất, X. Xã Bình Phú
3LLT00Lê Thị Thơm
3/30/1980​
Nu160607T. Thành phố Hải Phòng, H. Quận Đồ Sơn, X. Phường Vạn Sơn
4DTF00Dương Trọng Đức
10/12/1985​
Nam500108T. Thành phố Hồ Chí Minh, H. Quận 1, X. Phường Tân Định
5THN00Trần Hoàng Ngãi
3/7/1966​
Nam670602T. Tỉnh An Giang, H. Huyện Châu Phú, X. Xã Mỹ Phú
 
Upvote 0
CHUYỆN GÌ SẼ DIỄN RA, 1 KHI
Thay vì ta nhập TP HCM, Q. 1, P. Cầu kho (là nơi sinh) ta chỉ nhập 1 con số có 6 kí số: 500110

Trong đó 2 ký số đầu là mã tỉnh/thành phố; 2 Kí số giữa là mã huyện, quận & 2 số cuối là mã của địa danh xã

STTMã NVHọ & TênNgày sinhGiới tínhMã Nơi sinh. . . .(Tương đương)
0GPEGPE.COM
7/1/2007​
1BXT00Bùi Xuân Thái
2/20/1954​
Nu640104T. Tỉnh Vĩnh Long, H. Thành phố Vĩnh Long, X. Xã Trường An
2LMD00Lê Mỹ Dung
3/13/1988​
Nu292420T. Thành phố Hà Nội, H. Huyện Thạch Thất, X. Xã Bình Phú
3LLT00Lê Thị Thơm
3/30/1980​
Nu160607T. Thành phố Hải Phòng, H. Quận Đồ Sơn, X. Phường Vạn Sơn
4DTF00Dương Trọng Đức
10/12/1985​
Nam500108T. Thành phố Hồ Chí Minh, H. Quận 1, X. Phường Tân Định
5THN00Trần Hoàng Ngãi
3/7/1966​
Nam670602T. Tỉnh An Giang, H. Huyện Châu Phú, X. Xã Mỹ Phú
Không thể nhập kiểu này đâu. Giả sử tôi muốn nhập TP HCM, Q. 1, P. Cầu kho thì theo bạn tôi phải nhập 500110, và rồi TP HCM, Q. 1, P. Cầu kho sẽ tự nhẩy ra? Làm sao tôi nhớ được tất cả các mã của hàng chục nghìn địa danh?

Tóm lại tôi không hiểu ý tưởng. Nhắc lại, bạn đang nói về nhập dữ liệu.
 
Upvote 0
Để thực hiện ý tường, mình đã tạo 3 ComboBox' ComboBox đầu dùng để chọn tên tỉnh
1 khi chọn 1 tỉnh thành nào đó, ta sẽ có luôn kết quả mã số xe (ô tô) của tỉnh đó, đồng thời có luôn danh sách huyện thị phụ thuộc của tỉnh đó.
Danh sách này sẽ là nguồn của ComboBox thứ 2 để ta chọn danh tính của 1 huyện cụ thể của tỉnh (đã chọn ở ComboBox1)

Khi chọn 1 dòng trong ComboBox thứ 2, thì cũng tương tự ta có mã định danh cho huyện đã chọn, mã này gồm 4 ký số, (Trong đó 2 kí số đầu là mã (biển số xe) của tỉnh, thành & danh sách các xã của huyện đã chọn được tìm ra & danh sách này làm nguồn cho ComboBox xã.

Cuối cùng, khi chọn 1 xã nào đó cụ thể, ta sẽ có luôn mã định danh của xã đó

Khi bấn nút lưu, dòng dữ liệu ta chỉ việc lưu 6 kí số này vào cột mã địa danh.

Lúc cần hiễn thị danh tính (tên) của tỉnh ta xài VLOOKUP() hay cách nào đó, ta phiên dịch ra, ví dụ
50 => TF. HCM;
29 => Hà Nội
16 => Hải phòng.

2901 => Là mã quận Ba Đình
5001 => Là mã quận nhất
. . . . .

Làm vậy mình cho là CSDL sẽ gọn nhẹn thêm phần nào chăng(?!)

Rất mong mọi người thêm ý kiến.

Tên TỉnhTên HuyệnTên Phường/Xã/TTMã HuyệnMã xã
Thành phố Cần ThơHuyện Cờ ĐỏXã Đông Hiệp6507650701
Thành phố Cần ThơHuyện Cờ ĐỏXã Thới Xuân6507650702
Thành phố Cần ThơHuyện Cờ ĐỏXã Thới Đông6507650703
Thành phố Cần ThơHuyện Cờ ĐỏXã Đông Thắng6507650704
Thành phố Cần ThơHuyện Cờ ĐỏXã Thới Hưng6507650705
Thành phố Cần ThơHuyện Cờ ĐỏXã Trung Hưng6507650706
Thành phố Cần ThơHuyện Cờ ĐỏXã Trung Thạnh6507650707
Thành phố Cần ThơHuyện Cờ ĐỏXã Trung An6507650708
Thành phố Cần ThơHuyện Cờ ĐỏXã Thạnh Phú6507650709
Thành phố Cần ThơHuyện Cờ ĐỏThị trấn Cờ Đỏ6507650710
Thành phố Cần ThơHuyện Phong ĐiềnXã Nhơn Nghĩa6508650801
Thành phố Cần ThơHuyện Phong ĐiềnXã Trường Long6508650802
Thành phố Cần ThơHuyện Phong ĐiềnThị trấn Phong Điền6508650803
Thành phố Cần ThơHuyện Phong ĐiềnXã Nhơn Ái6508650804
Thành phố Cần ThơHuyện Phong ĐiềnXã Tân Thới6508650805
Thành phố Cần ThơHuyện Phong ĐiềnXã Mỹ Khánh6508650806
Thành phố Cần ThơHuyện Phong ĐiềnXã Giai Xuân6508650807
Thành phố Cần ThơHuyện Thới LaiXã Thới Tân6509650901
Thành phố Cần ThơHuyện Thới LaiThị trấn Thới Lai6509650902
 
Lần chỉnh sửa cuối:
Upvote 0
Để thực hiện ý tường, mình đã tạo 3 ComboBox' ComboBox đầu dùng để chọn tên tỉnh
Làm vậy mình cho là CSDL sẽ gọn nhẹn thêm phần nào chăng(?!)

Theo tôi gọn nhẹ hơn thì chắc không. Nếu có 12345 xã trong cả nước thì vẫn phải có 12345 dòng dữ liệu.
 
Upvote 0
Theo tôi gọn nhẹ hơn thì chắc không. Nếu có 12345 xã trong cả nước thì vẫn phải có 12345 dòng dữ liệu.
Đúng là số dòng trong CSDL thì không đổi, nhưng trong cột [Nơi sinh] hay [Địa chỉ thường trú],. . . từ 60 kí tự ta chỉ còn là 6 kí số mà thôi.
Chuyện dịch ngược hay dịch xuôi từ mã ra địa danh hay từ địa danh ra mã đã có các macro lo giúp.
Cái bất lợi là hình thành 1 bảng tra đồ sộ hơn 11 ngàn dòng x 5 cột
 
Upvote 0
Đúng là số dòng trong CSDL thì không đổi, nhưng trong cột [Nơi sinh] hay [Địa chỉ thường trú],. . . từ 60 kí tự ta chỉ còn là 6 kí số mà thôi.
Chuyện dịch ngược hay dịch xuôi từ mã ra địa danh hay từ địa danh ra mã đã có các macro lo giúp.
Cái bất lợi là hình thành 1 bảng tra đồ sộ hơn 11 ngàn dòng x 5 cột
1. Bạn hỏi về csdl nên tôi chỉ nói về csdl.

2. Tôi nghĩ là ai cũng muốn nhìn thấy trong cột "Nơi sinh" hay "Địa chỉ thường chú" dòng "TP HCM, Q. 1, P. Cầu kho" chứ không phải con số 500110. Nhất là khi vùng dữ liệu cần phải in. Trên bản in phải là "TP HCM, Q. 1, P. Cầu kho" chứ không phải con số 500110. Nếu cột "Nơi sinh" là 500110 thì lại phải dùng thêm cột phụ "Tương đương". Như thế thì không phải là 6 ký tự mà là 60 + 6 = 66 ký tự. :D

Tất nhiên đôi khi ta phải dùng Mã, nhưng Mã luôn chỉ là "thêm vào" chứ không phải "thay cho". Thêm vào với những mục đích khác nhau. Vd. nhân viên trong công ty. Không phải ta không dùng Họ Tên nữa. Vẫn phải dùng họ tên. Nhưng do nhu cầu, và cả do bắt buộc, mà ta phải "thêm vào" MaNV. Bởi nhiều người có thể có cùng họ tên. Bởi thêm vào cho dễ tìm kiếm ... Bởi thêm MaNV để ...
 
Upvote 0
Rất vui khi được thảo luận tiếp cùng với bạn!

Trên đây là ý tưởng của mình & nó xuất hiện khi có bài của chủ bài đăng này mà thôi.
Tuy nhiên 1 CSDL của 1 CQ luôn phải có [nơi sinh], thậm chí còn có cả [Nguyên Quán], hay [Địa chỉ thường trú],. . . .
Nhưng hoạt động của 1 CSDL tại 1 CQ ít khi phải in ra những trường này.
Nghĩa là mình muốn nói, chủ yếu sẽ là những quá trình
(+) Thay đổi quá trình lương của CNV
(+) Theo dõi & tặng quà sinh nhật
(+) Thay đổi đơn vị hay bộ phận trong CQ, việc chuyển đi & chuyển đến, về hưu hay bỏ việc, buột thôi việc,. . .
(+) Theo dõi lương & thu nhập, thuế TNCN, . . . hàng tháng

Tóm gọn lại là việc cần in lý lịch trích ngang là rất ít so với những hoạt động khác của 1 CSDL trong CQ. Nhất là những đơn vị sản xuất kinh doanh thì điều này càng hãn hữu.
Vậy nẹn mình có ý tưởng này. Mơ ước cũng mình là cái bảng gồm hơn 1100 dòng & 5 cột kia sẽ được đưa ra khỏi CSDL; & chỉ cần nó khi nhập mới 1 NV nào đó vô CSDL hay phải in ra những 'báo cáo' nhất thiết phải có 1 trong các trường đ ịa danh như đã nêu trên.

Trân trọng & xin chào tất cả mọi người. :D
 
Upvote 0
Web KT

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

Back
Top Bottom