Xin ý kiến về giải pháp tổ chức dữ liệu (1 người xem)

  • Thread starter Thread starter USB1394
  • Ngày gửi Ngày gửi
Liên hệ QC

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

USB1394

Thành viên hoạt động
Tham gia
20/12/08
Bài viết
173
Được thích
12
Nghề nghiệp
Lính triều đình
Mình có một kiểu CSDL gồm nhiều SP con và nhiều SP ghép (từ nhiều SP con) . Khi nâng cấp giá của một SP con bất kì thì các SP ghép có chứa SP con này cũng sẽ tự động nâng cấp theo . Nhưng mình không biết phải xây dựng loại CSDL này như thế nào , mong các bạn góp ý và cho mình hướng giải quyết . Xin cám ơn +-+-+-++-+-+-++-+-+-+
 

File đính kèm

Mình có một kiểu CSDL gồm nhiều SP con và nhiều SP ghép (từ nhiều SP con) . Khi nâng cấp giá của một SP con bất kì thì các SP ghép có chứa SP con này cũng sẽ tự động nâng cấp theo . Nhưng mình không biết phải xây dựng loại CSDL này như thế nào , mong các bạn góp ý và cho mình hướng giải quyết . Xin cám ơn +-+-+-++-+-+-++-+-+-+
Bạn tạo các bảng giá của các SP con ở một chỗ nào đó, rồi dùng Vlookup() như thế này xem có sử dụng được không nhé "đồng hương"?
Chon SP con ở các ô màu xanh.
Biểu mẫu khác thì tùy theo ý thich của Bạn
 

File đính kèm

Chào USB,

Bạn có thể lập bảng dữ liệu theo 1 một cột duy nhất là mã hàng, tên hàng từ trên xuống. Khi đó làm công thức chỉ 1 mà thôi.

Dĩ nhiên, khi cập nhật bảng dữ liệu thì có cách của nó, cứ nhập vào sort lại hay pivot tùy mục đích sử dụng ;)

Chúc bạn vui với ẽxcell
 
Với cách của Thầy Ba Tê thì trong bảng lại dùng công thức : Sum và Data Validation . Nhưng vấn đề ở chỗ : "Đây là bảng CSDL nên chỉ chứa duy nhất là dữ liệu , không có các thành phần khách"

hoangexcell
Chào USB,

Bạn có thể lập bảng dữ liệu theo 1 một cột duy nhất là mã hàng, tên hàng từ trên xuống. Khi đó làm công thức chỉ 1 mà thôi.

Dĩ nhiên, khi cập nhật bảng dữ liệu thì có cách của nó, cứ nhập vào sort lại hay pivot tùy mục đích sử dụng ;)

Chúc bạn vui với ẽxcell​
Xin bạn hoangexcel có thể nói cụ thể hơn không , nếu được mong bạn cho mình ví dụ minh họa

Ở đây mình cũng có ý trưởng thế này : Ta có thể tạo thêm cột phụ cho CSDL liệu . Cột phụ này sẽ chứa thông tin các Mã SP con , vậy thì khi giá SP con thay đổi thì VBA sẽ căn cứ vào thông tin cột phụ này để tự động cập nhật tương ứng . Cũng xin nói thêm : Thực tế CSDL có thể đạt đến mức 65536 dòng . vì thế việc tìm kiếm 1 Mã SP con có trong SP ghép hay không sẽ tốn rất nhiều tài nguyên . Vì thế việc tổ chức là rất qua trọng : Không những nâng cao hiệu quả mà việc viết code cũng dễ dàng
Rất mong sẽ nhận được nhiều sự quan tâm và giúp đỡ của các bạn , xin cám ơn +-+-+-++-+-+-++-+-+-+
 
Nhưng vấn đề ở chỗ : "Đây là bảng CSDL nên chỉ chứa duy nhất là dữ liệu , không có các thành phần khách"

Như vậy khi cập nhựt 1 đơn giá mới của SF (sản fẩm) con, ta fải dùng macro sự kiệm để cập nhựt đơn giá cho SF bố/mẹ.
Mà đã vậy các SF này đều có mã duy nhứt, mà trong mã này cần chứa thành tố nêu được đó là SF mẹ hay SF con; Để khi cập nhụt SF con macro còn biết là ngoài chuyện cập nhựt đó, nó còn fải tiếp tục tìm SF cha/mẹ để cập nhựt.

Mình mạnh dạn đề xuất cách sau:

Nếu mã SF của bạn đang có độ dài là 5 ký tự, thì ta thêm 1 ký tự vô đâu đó (đầu, đuôi hay vị trí nào khác cố định) để chỉ đó là SF mẹ hay con; Ví dụ là SF con luôn là ký tự 'A'; Còn các chữ cái sau nó để biểu thị cho SF mẹ; nếu mẹ gồm từ 2 con thỉ 'B' & 3 con thì là 'C',. . . .

Vấn đề fát sinh từ đây sẽ là có bảng tra để macro tìm cho SF mẹ/cha đơn giá cập nhựt mới khi con thay đổi đơn giá.

Bạn tham khảo với tình hình của bạn sẽ fải đương đầu với những khó khăn gì khi áp dụng fương án ni.

Thân ái & chờ tin từ bạn.
 
Trước hết xin cám ơn bạn ChanhTQ@ đã cho mình một đề xuất . Căn cứ vào đề xuất của bạn và tình hình thực tế của CSDL mình nói thêm để Bạn cùng mọi người cùng nắm nhé .
Nếu mã SF của bạn đang có độ dài là 5 ký tự, thì ta thêm 1 ký tự vô đâu đó (đầu, đuôi hay vị trí nào khác cố định) để chỉ đó là SF mẹ hay con; Ví dụ là SF con luôn là ký tự 'A'; Còn các chữ cái sau nó để biểu thị cho SF mẹ; nếu mẹ gồm từ 2 con thỉ 'B' & 3 con thì là 'C',. . . .
Ở đây , Mã SP được lấy theo số dòng : Row() - Vì có 2 ưu điểm : Đơn giản và không trung lập , khi dùng marco cập nhật sẽ dễ dàng (VD: Cells(dòng , cột)) . Vì thế nếu thay đổi cấu trúc mã (thay số thành chữ , hay thêm chữ vào số) sẽ làm phát sinh thêm VĐ nan giải về sau

Theo cấu trúc Mã SP như trên ta dễ dàng thấy được : SP con và SP cha/mẹ đều có chung 1 cấu trúc . Vì thế nếu dùng Mã SP để phân biệt đâu là SP con , đâu là SP cha/mẹ là điều không thể !

Mong sẽ nhận được nhiều sự quan tâm giúp đỡ của các bạn , xin cám ơn +-+-+-++-+-+-++-+-+-+
 
Ở đây , Mã SP được lấy theo số dòng : Row() - Vì có 2 ưu điểm : Đơn giản và không trung lập , khi dùng marco cập nhật sẽ dễ dàng (VD: Cells(dòng , cột)) . Vì thế nếu thay đổi cấu trúc mã (thay số thành chữ , hay thêm chữ vào số) sẽ làm phát sinh thêm VĐ nan giải về sau
Đơn giản hay không là do bạn nghỉ thôi!
Không trùng lắp thì đồng í fần nào nhưng nếu tôi dùng các ký tự thì tôi có thể chỉ cần 3 ký tự trong bảng 26 chữ cái biểu diễn cho hàng vạn SF (sản fẩm); Hơn nữa các SF của bạn thế nào cũng có nhóm SF khác nhau (mà trong 1 nhóm chúng có nhiều đặc trưng chung; Ví dụ Điện trỡ có thể có hàng chục/trăm SF, nhưng cùng nhóm là D - điện trở; khác với nhóm T là các loại tụ điện, . . . )

Thường thì mình thấy mã SF hay mã con người (Giấy CMND, Số di động,. . . đều có độ dài như nhau. Có khi nào trong suy nghỉ của bạn câu hỏi là tại sao người ta lại làm vậy không?

Theo mình biết lên 1 danh mục mã vật tư là việc làm khoa học & không tuỳ tiện được!
Bạn có tin rằng nhìn vô mã SF được thiết kế 1 cách khoa học, người ta có thể đọc ra nguồn gốc/xuất xứ của nó hay không?

Ví dụ nữa như 1 cơ quan nào đó thường có dưới 700 lao động;Hàng năm số lượng ra vô khoảng 100; nhưng người ta vẫn xài mã với 1 ký tự & 3 ký số;
Ký tự đầu 1 mặt để đảm bảo mã là 1 chuổi (chứ không fải là số) Ngoài ra nó còn mang thêm thông tin nữa đó là nhân viên đó vô CQ (cơ quan) khi nào; nếu người ta quy ước rằng A là những người vô CQ năm 2000 , B - 2001,. . .

Vài lời cùng bạn!
 
Đây là bài tóan Tổng con có trên diễn đàn rồi, giải bằng công thức và code đều có, bạn kiếm thử xem
Theo mình, bài này đơn giản thôi, cứ tổ chức dữ liệu như bài gởi của bạn (nếu muốn), quan trọng nhất là hàng tính tổng, bạn phải tạo một dấu hiệu riêng nào đó để code hiểu & tính toán
Tạo phím nóng hoặc nút bấm, mỗi khi thay đổi đơn giá sản phẩm con thì cập nhật lại thôi
Thân
 
Không trùng lắp thì đồng í fần nào nhưng nếu tôi dùng các ký tự thì tôi có thể chỉ cần 3 ký tự trong bảng 26 chữ cái biểu diễn cho hàng vạn SF (sản fẩm); Hơn nữa các SF của bạn thế nào cũng có nhóm SF khác nhau (mà trong 1 nhóm chúng có nhiều đặc trưng chung; Ví dụ Điện trỡ có thể có hàng chục/trăm SF, nhưng cùng nhóm là D - điện trở; khác với nhóm T là các loại tụ điện, . . . )
Ở đây mình đồng ý với bạn HYen17 : "Có nhiều cách để tạo mã SP" nhưng trong CSDL này mình nghĩ là dùng ROW() làm mã SP là tương đối phù hợp - Một mã số 1 SP (hay nói cách khác ta chỉ cần truy cập vào dòng mã tương ứng là sẽ có thông tin chi tiết về SP)
Thường thì mình thấy mã SF hay mã con người (Giấy CMND, Số di động,. . . đều có độ dài như nhau. Có khi nào trong suy nghỉ của bạn câu hỏi là tại sao người ta lại làm vậy không?
Theo mình nghĩ , các mã này có 1 phạm vi sử dụng nhất định nên nó sẽ có chiều dài cố định , bạn thử lấy ví vụ Mã số vạch đi - Bạn sẽ thấy phạm vi sử dụng là vô hạn (vì nó chỉ là số !) . Đây cũng là điều mà CSDL mình áp dụng (SP là vô hạn)

Vì thế , khi ta xây dựng cấu trúc mã là việc làm khoa học và không tùy tiện . Nên mình mong sẽ nhận thêm nhiều ý kiến của các bạn

Đây là bài tóan Tổng con có trên diễn đàn rồi, giải bằng công thức và code đều có, bạn kiếm thử xem
Xin bạn concogia có thể cho mình link để tham khảo không ?

Theo mình, bài này đơn giản thôi, cứ tổ chức dữ liệu như bài gởi của bạn (nếu muốn), quan trọng nhất là hàng tính tổng, bạn phải tạo một dấu hiệu riêng nào đó để code hiểu & tính toán
Theo bạn concogia thì ta phải tạo dấu hiệu riêng để code hiểu mà tính toán - Vậy dấu hiệu đó ta tạo như thế nào , và vận dụng ra làm sao , mong bạn nói rõ hơn
 
Bạn tham khảo xem sao

Mình dùng macro sự kiện để cập nhựt cả cho máy cái & máy con.
 

File đính kèm

Trước hết xin cám ơn bạn ChanhTQ@ đã cho mình một đề xuất . Căn cứ vào đề xuất của bạn và tình hình thực tế của CSDL mình nói thêm để Bạn cùng mọi người cùng nắm nhé .

Ở đây , Mã SP được lấy theo số dòng : Row() - Vì có 2 ưu điểm : Đơn giản và không trung lập , khi dùng marco cập nhật sẽ dễ dàng (VD: Cells(dòng , cột)) . Vì thế nếu thay đổi cấu trúc mã (thay số thành chữ , hay thêm chữ vào số) sẽ làm phát sinh thêm VĐ nan giải về sau

Theo cấu trúc Mã SP như trên ta dễ dàng thấy được : SP con và SP cha/mẹ đều có chung 1 cấu trúc . Vì thế nếu dùng Mã SP để phân biệt đâu là SP con , đâu là SP cha/mẹ là điều không thể !

Mong sẽ nhận được nhiều sự quan tâm giúp đỡ của các bạn , xin cám ơn +-+-+-++-+-+-++-+-+-+

Chào bạn !
Mình có ý tưởng khuyên bạn nên tổ chức dữ liệu ở một bảng gốc. Dữ liệu gốc cập nhật đầy đủ các thông tin về mã SP con, Mã SP mẹ(tạm goi như vậy). Trong bảng dữ liệu gốc có thể kiểm tra trực tiếp thông qua dùng filter. Cách này đòi hỏi bạn nghiên cứu tạo bảng cho hợp lý. Việc còn lại phục vụ cho báo cáo thì dùng công cụ pivottable kết hợp với VBA và macro. Bạn xem trong file kèm theo. Thân ái !
 

File đính kèm

Với cách làm của bác SA_DQ thì mình phải quản lý cả 2 bảng DL , có cách khác không bác
 
Web KT

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

Back
Top Bottom