Đưa dữ liệu lên form để sửa và cập nhật xuống sheet lại. (1 người xem)

Liên hệ QC

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

mickeybh

Thành viên hoạt động
Tham gia
26/9/13
Bài viết
156
Được thích
33
Gửi Anh/Chị và các bạn!

Em có tạo 1 form có vài textbox và vài listbox để nhập dữ liệu, số dòng của mỗi listbox thường không giống nhau, số dòng trong mỗi listbox có bao nhiêu thì ghi bấy nhiêu xuống sheet, số dòng textbox thì lặp lại tối đa theo số dòng tối đa của listbox. Phần ghi xuống sheet thì em đã làm được rồi (nhìn code chả giống ai :D). Giờ em muốn đưa dữ liệu đã ghi xuống sheet lên form (dựa vào ID Key) để sửa lại, trong khi sửa thì số dòng của mỗi listbox có thể thêm hoặc bớt, tới phần này thì em chào thua không thể nào làm được.

Mong Anh/ Chị và các bạn giúp em bài này với.
 

File đính kèm

để tiết kiệm diện tích có thể nhập 3 vùng xét nghiệm , siêu âm , phẫu thuật làm 1 , cho tất cả danh mục vào chung trong item của duy nhất 1 combobox đc ko vậy bạn ?
 
Upvote 0
để tiết kiệm diện tích có thể nhập 3 vùng xét nghiệm , siêu âm , phẫu thuật làm 1 , cho tất cả danh mục vào chung trong item của duy nhất 1 combobox đc ko vậy bạn ?
Được nhưng cần phải làm thế nào để phân biệt khi ghi xuống sheet nó phải phân ra từng loại được không bạn?
 
Upvote 0
Được nhưng cần phải làm thế nào để phân biệt khi ghi xuống sheet nó phải phân ra từng loại được không bạn?

Nhập chung để thuận tiện dùng PivotTable tổng hợp báo cáo, muốn loại nào thì dùng Advanced Filter lọc ra nhé.
 
Upvote 0
Báo cáo thì lọc ra cũng được nhưng khổ ở chỗ là phải in các dịch vụ này ra theo từng mục cho người bệnh anh ah. Tách ra ngay từ đầu sau này báo cáo hay in ra phiếu thanh toán cho từng người nó đơn giản hơn.
 
Upvote 0
Báo cáo thì lọc ra cũng được nhưng khổ ở chỗ là phải in các dịch vụ này ra theo từng mục cho người bệnh anh ah. Tách ra ngay từ đầu sau này báo cáo hay in ra phiếu thanh toán cho từng người nó đơn giản hơn.

Để chung không cần tách, dùng 1 sheet làm phiếu thanh toán, muốn in từng người hoặc in hàng loạt cũng được.

Xem cách tạo phiếu để in hàng loạt tại bài viết ở Link sau:

http://www.giaiphapexcel.com/forum/showthread.php?104381-Giúp-code-in-ấn-trong-Excel
 
Lần chỉnh sửa cuối:
Upvote 0

File đính kèm

  • untitled.JPG
    untitled.JPG
    70.3 KB · Đọc: 162
Upvote 0
Kính nhờ Anh chị và các bạn giúp code giúp mình theo bài 1 với.
 
Upvote 0
xem thử mô hình này chơi
mấy cái hiệu ứng về ID , ngày lỡ tay xóa rồi ....
 

File đính kèm

Upvote 0
Cảm ơn bạn rất nhiều!
Tất cả các chi phí phát sinh dồn vào 1 cột, phân biệt nhau bởi danh mục?
Chế độ update mode chỉ chỉnh sửa nội dung, xóa bớt chứ không thêm được?
Điều quan trọng là nhìn vào gridview mình mù tịt luôn.
Nếu theo phương án này chắc làm phiền bạn dài dài.
 
Upvote 0
Cảm ơn bạn rất nhiều!
Tất cả các chi phí phát sinh dồn vào 1 cột, phân biệt nhau bởi danh mục?
Chế độ update mode chỉ chỉnh sửa nội dung, xóa bớt chứ không thêm được?
Điều quan trọng là nhìn vào gridview mình mù tịt luôn.
Nếu theo phương án này chắc làm phiền bạn dài dài.
Nếu cái file ở bài 1 do bạn tự thiết kế mà bạn hỏi mấy câu này thì t thấy cũng ... lạ
từng hàng trong sheet đã có thêm cột DANH MỤC rồi chẳng lẽ ko có cách gì tính tổng cộng cho từng danh mục từng ID key
Sửa và Thêm là 2 chế độ phân biệt sao có thể lẫn lộn với nhau ?
2 thao tác này thực hiện cùng lúc không phải ko code đc
nhưng người dùng sẽ điên vì rối
chỉ mất tập trung cái làm sao nhớ đc dòng nào là dữ liệu cũ đang sửa ?
dòng nào là dữ liệu hiện tại đang nhập thêm ?


muốn thêm thì sửa cho xong
rồi quay lại chế độ Insert mà thêm ai cấm ?
t tính làm cái nút tạo sheet IN mà nghĩ bạn thiết kế cái form ở trên chắc tự viết dc nên thôi
 
Upvote 0
Cho mình hỏi xen tý: Làm thế nào các bạn có thể add thêm các icon vào các command button đã có text như: cmd Thêm, Ghi dữ liệu..
 
Upvote 0
Listbox thì mình còn biết chút ít chứ sang gridview thì hỏi cho chắc :D
Trong khi sửa thêm bớt là chuyện bình thường mà bạn (ngày nào mình cũng phải thêm bớt), người sử dụng khi họ sửa thì họ biết họ đang làm gì, nếu sai lại sửa tiếp thôi.
Bạn giúp mình thêm phần sheet in với (mình toàn sưu tầm code của các Anh chị trên GPE thấy na ná với yêu cầu thì thêm bớt tí để dùng, cái nào chưa có thì nhờ Anh chị trợ giúp).
 
Upvote 0
Bạn chọn thêm thuộc tính PicturePosition cho phù hợp nữa. Mình chọn 2-...
 
Upvote 0
file này chưa được kiểm thử
Cảm ơn bạn rất nhiều!
Khi sửa:
- Xóa thì trực tiếp xuống sheet nên cũng ổn rồi.
- Thêm dịch vụ thì khi cập nhật nó không tập trung các bản ghi lại 1 chỗ. Ví dụ ban đầu có 3 bản ghi cho 1 bệnh nhân, thêm 1 dịch vụ nữa thì khi cập nhật có thêm 1 bản ghi là 4. 4 bản ghi này nằm tập trung và liên tục (giống như xóa 3 dòng cũ và chèn vào 4 dòng mới ngay tại vị trí ban đầu đã xóa: ở trong file IDKey 10042135 có 3 bản ghi nằm ở dòng 4, 5, 6. Nếu thêm 1 dòng nữa thì nó phải nằm ở dòng 7 nhưng kiểu insert vào chứ không phải đè lên dòng đã có).

Phần phát sinh ID Key cái này bạn mới thêm vào thì phải. Nếu phát sinh thì bạn giúp thêm 1 bước xem nó có tồn tại chưa để biết xử lý.
 
Upvote 0
Upvote 0
Nếu là mình thì file (bài đầu) mình sẽ tách ra làm 2 bảng (table)
Bảng đầu gồm các trường từ cột [A..E]
Bảng sau gồm các cột [F] trở đi & có thêm trường [Mã] để quan hệ đến trường[ID Key] của bạn đang ở cột theo kiểu 1=> Nhiều

Nhưng nói thêm là số ID của bạn quá dài; Ta chỉ nên dài 5 kí tự cho không quá 1.200 fiếu xét nghiệm trong ngày.
 
Upvote 0
Nếu là mình thì file (bài đầu) mình sẽ tách ra làm 2 bảng (table)
Bảng đầu gồm các trường từ cột [A..E]
Bảng sau gồm các cột [F] trở đi & có thêm trường [Mã] để quan hệ đến trường[ID Key] của bạn đang ở cột theo kiểu 1=> Nhiều

Nhưng nói thêm là số ID của bạn quá dài; Ta chỉ nên dài 5 kí tự cho không quá 1.200 fiếu xét nghiệm trong ngày.

xin bạn cho biết lợi ích khi tách dữ liệu trên thành 2 bảng và khi đặt IDkey gồm 5 kí tự làm sao để bảo đảm đc tính Unique của IDkey
 
Upvote 0
xin bạn cho biết lợi ích khi tách dữ liệu trên thành 2 bảng và khi đặt IDkey gồm 5 kí tự làm sao để bảo đảm đc tính Unique của IDkey

(1) Khi tách làm 2 bảng thì bảng A - tạm gọi là bảng 'chung' & bảng B - gọi là bảng chi tiết.

Ở fần 'chung' này của bảng dữ liệu chưa tách luôn trùng nhau rất nhiều dòng; Đó là thể hiện sinh động của 1 CSDL chưa tốt.

(2) Muốn đảm bảo tính Unique thì fải đưa ra nhóm các qui định tạo qui luật cho mã;
Mình có cách sau:
Mã gồm AXXXX
A luôn là kí tự chỉ năm Ví dụ A: 2011, B: 2012,. . . .
X: Chỉ ra tháng tiến hành làm fiếu, nó có thể là 1,2,3,. . . ,A,B
X: Chỉ ngày, nó có thể là 1,2,3,. . . ,A,B,C,. . .
Chữ XX cuối sẽ là 00 nếu đó là fiếu đầu tiên trong ngày cần lập
; Fiếu cuối cùng trong ngày có giới hạn cuối sẽ là ZZ (36*36=1296 f)

Rất vui được cùng bạn trau đổi!
 
Upvote 0
(1) Khi tách làm 2 bảng thì bảng A - tạm gọi là bảng 'chung' & bảng B - gọi là bảng chi tiết.

Ở fần 'chung' này của bảng dữ liệu chưa tách luôn trùng nhau rất nhiều dòng; Đó là thể hiện sinh động của 1 CSDL chưa tốt.

(2) Muốn đảm bảo tính Unique thì fải đưa ra nhóm các qui định tạo qui luật cho mã;
Mình có cách sau:
Mã gồm AXXXX
A luôn là kí tự chỉ năm Ví dụ A: 2011, B: 2012,. . . .
X: Chỉ ra tháng tiến hành làm fiếu, nó có thể là 1,2,3,. . . ,A,B
X: Chỉ ngày, nó có thể là 1,2,3,. . . ,A,B,C,. . .
Chữ XX cuối sẽ là 00 nếu đó là fiếu đầu tiên trong ngày cần lập
; Fiếu cuối cùng trong ngày có giới hạn cuối sẽ là ZZ (36*36=1296 f)

Rất vui được cùng bạn trau đổi!

cám ơn chỉ dẫn của anh
vì anh đã nói câu cuối nên e cũng nói vài câu
thông thường khi e đi tạo CSDL e cũng chia 1 hóa đơn thành 2 bảng , có khi nhiều hơn
bảng 1 : phần header của hóa đơn
bảng 2 : phần quy cách đặt hàng của hóa đơn
nhưng còn tùy vào ý kiến người xài , đâu phải người thiết kế thấy hợp lý thì người xài cũng hiểu
họ nói : cái bảng dữ liệu của tui có 10 cột và khi mở excel lên thì 10 cột đó vẫn nằm trọn trong khung nhìn
tự nhiên anh tách ra thành 2 bảng chi vậy ? e cũng ko biết trả lời sao
ở bài này việc CSDL chỉ có 1 bảng theo e không phải không hợp lý bởi vì
người này muốn truy vấn đến CSDL và kết quả phải hiển thị đủ 2 phần header và chi tiết để mà sửa và thêm
vậy nếu thiết kế 2 bảng thì cũng phải truy vấn đến 2 bảng . đc cái lợi là nếu bảng 1 tìm ko có thì bảng 2 ko cần tìm
đó là cái nhìn của e có chỗ nào sai cũng mong anh góp ý
 
Upvote 0
Thường khi e đi tạo CSDL e cũng chia 1 hóa đơn thành 2 bảng , có khi nhiều hơn
bảng 1 : phần header của hóa đơn
bảng 2 : phần quy cách đặt hàng của hóa đơn

(1) nhưng còn tùy vào ý kiến người xài , đâu phải người thiết kế thấy hợp lý thì người xài cũng hiểu
(1.1) họ nói : cái bảng dữ liệu của tui có 10 cột và khi mở excel lên thì 10 cột đó vẫn nằm trọn trong khung nhìn
tự nhiên anh tách ra thành 2 bảng chi vậy ? e cũng ko biết trả lời sao
(2) ở bài này việc CSDL chỉ có 1 bảng theo e không phải không hợp lý bởi vì
người này muốn truy vấn đến CSDL và kết quả phải hiển thị đủ 2 phần header và chi tiết để mà sửa và thêm
vậy nếu thiết kế 2 bảng thì cũng phải truy vấn đến 2 bảng . đc cái lợi là nếu bảng 1 tìm ko có thì bảng 2 ko cần tìm
đó là cái nhìn của e có chỗ nào sai cũng mong anh góp ý
(1) Bản thân bạn là người nắm được qui tắc tạo nên 1 CSDL tối ưu mà bạn không đi thuyết fục 'Khách hàng', mà để khách hàng iêu cầu những thứ làm cho CSDL khó vận hành vậy à; Cái khó vận hành đầu tiên là sự nặng nề chậm chạp sẽ đến, 1 khi xây dựng 1 CSDL chưa thật chuẩn.

(1.1) Thứ nhất, việc mở 1 CSDL là điều nên hạn chế tối đa, nếu không muốn CSDL của mình nhanh chóng trở thành đống rác vụn!
Thứ đến, tách ra làm hai bảng trong những trường hợp này là fù hợp với qui định về biểu mẫu hóa đơn/fiếu nhập xuất hàng,. . . do Bộ TC ban hành.

(2) Thông thường có mấy khi sửa fần 'Chung' (mà bạn gọi là fần 'header') trì fi đối tác hứng tình lên đổi tên, đổi số điện thoại, MST, . . .
Mà có đổi những tiêu chí này cũng không đổi ngay trong CSDL; Ta nên đổi trong các bảng 'Danh mục' lệt kê.
Thường thì trong thực tế chì là chỉnh sửa ở fần chi tiết.
Nên nói là trưng lên để dễ sửa là không thuyết fục được mình.

Vấn đề cuối mình muốn nói là: không ai sai ở đây cả;
Thói quen của từng người & tùy thuộc vô độ lớn, độ an toàn của CSDL mà xử thôi.

Chúc vui!
 
Upvote 0
Cho em tham gia đôi lời cùng các anh chị!
Em dùng excel cũng khá lâu rồi nhưng trình độ vẫn dừng lại ở mức độ "đọc nhiều nhưng chẳng hiểu bao nhiêu".
Thấy các anh bàn đến việc chia csdl ra nhiều hơn 1 bảng nên em thấy cũng hơi lạ, em cứ nghĩ csdl của em excel là dạng csdl phẳng nên khi thiết kế cơ sở dữ liệu em thường đưa nó vào 1 nơi để tiện truy xuất dữ liệu và cũng dễ quản lý hơn. Giờ nghe các anh bàn luận em lại thấy mơ hồ. Mong các anh có file nào na ná như các anh bàn luận chia sẽ cho em tham khảo với.
Phần IDKey nó kết hợp giữa ID và ngày phát sinh nên cũng không quan trọng dài hay ngắn, cái chính trong việc nhập liệu vẫn là ID vì nó xuyên suốt trong quá trình làm việc, IDKey chỉ mang tính duy nhất trong ngày phục vụ cho việc sửa dữ liệu.
 
Upvote 0
Cho em tham gia đôi lời cùng các anh chị!
Em dùng excel cũng khá lâu rồi nhưng trình độ vẫn dừng lại ở mức độ "đọc nhiều nhưng chẳng hiểu bao nhiêu".
Thấy các anh bàn đến việc chia csdl ra nhiều hơn 1 bảng nên em thấy cũng hơi lạ, em cứ nghĩ csdl của em excel là dạng csdl phẳng nên khi thiết kế cơ sở dữ liệu em thường đưa nó vào 1 nơi để tiện truy xuất dữ liệu và cũng dễ quản lý hơn. Giờ nghe các anh bàn luận em lại thấy mơ hồ. Mong các anh có file nào na ná như các anh bàn luận chia sẽ cho em tham khảo với.
Phần IDKey nó kết hợp giữa ID và ngày phát sinh nên cũng không quan trọng dài hay ngắn, cái chính trong việc nhập liệu vẫn là ID vì nó xuyên suốt trong quá trình làm việc, IDKey chỉ mang tính duy nhất trong ngày phục vụ cho việc sửa dữ liệu.

Qua cách lập luận của bạn thì đúng là bạn nên tham khảo kỹ ý kiến của Bác ChanhTQ. Một CSDL tốt phải được tổ chức lưu trữ khoa học, khai thác thuận tiện trên cơ sở các công cụ có thể. Chúng ta đang học và sử dụng Excel (Một phần mềm bảng tính) nhưng cũng nên tham khảo thêm các phần mềm quản trị dữ liệu gần gũi như Access hay VS Foxpro để xem người ta tổ chức dữ liệu ra sao để ta có thể vận dụng cái hay cái khoa học cho file Excel của mình.
Việc tổ chức dữ liệu tốt sẽ cho phép lưu trữ dữ liệu lớn với dung lượng nhỏ nhất và khai thác vẫn dễ dàng thuận tiện. Chưa kể đến sử dụng các kỹ thuật nâng cao như VBA chẳng hạn để giải phóng bộ nhớ sử lý tăng tốc độ trong từng công việc cụ thể.
Cụ thể hơn, với File của bạn thì theo tôi nên lưu trữ dưới 3 bảng dữ liệu:

1/ DMNHOM: Các nhóm dịch vụ như Xét nghiệm, Chuẩn đoán, Thủ thuật.
2/DMDICHVU: Bảng danh mục các dịch vụ của Bệnh viện bạn cung cấp được phân theo nhóm và giá.
3/PHATSINH: Chi tiết phát sinh cung ứng dịch vụ.

Nếu theo dõi lâu dài thì phải có bảng MAGIA để xác định từng mã giá cụ thể. Như vậy mới có thể tương thích với việc bệnh viện thay đổi giá dịch vụ nhiều lần trong kỳ.

Tóm lại, mục đích phải đạt là ghi chép lưu trữ ít nhất nhưng cung cấp thông tin nhiều nhất.
 
Upvote 0
Cho em tham gia đôi lời cùng các anh chị!
Em dùng excel cũng khá lâu rồi nhưng trình độ vẫn dừng lại ở mức độ "đọc nhiều nhưng chẳng hiểu bao nhiêu".
Thấy các anh bàn đến việc chia csdl ra nhiều hơn 1 bảng nên em thấy cũng hơi lạ, em cứ nghĩ csdl của em excel là dạng csdl phẳng nên khi thiết kế cơ sở dữ liệu em thường đưa nó vào 1 nơi để tiện truy xuất dữ liệu và cũng dễ quản lý hơn. Giờ nghe các anh bàn luận em lại thấy mơ hồ. Mong các anh có file nào na ná như các anh bàn luận chia sẽ cho em tham khảo với.
Phần IDKey nó kết hợp giữa ID và ngày phát sinh nên cũng không quan trọng dài hay ngắn, cái chính trong việc nhập liệu vẫn là ID vì nó xuyên suốt trong quá trình làm việc, IDKey chỉ mang tính duy nhất trong ngày phục vụ cho việc sửa dữ liệu.

Từ "phẳng" trong ngữ cảnh CSDL được hiểu theo ý nghĩa kỹ thuật riêng của CSDL.

Một bảng được gọi là phẳng khi nó theo chuẩn bâc 1. Tức là mỗi dòng không có nhiều cột lặp lại.
Ví dụ bảng Hộ, có 10 cột, mỗi cột là tên 1 người trong Hộ (Hộ nào có dưới 10 người thì có cột bỏ trống). Như vậy là không phẳng. Người ta san phẳng nó bằng cách tách ra thành từng dòng, Hộ nào có bao nhiều người thì có bấy nhiêu dòng.

Một CSDL là phẳng khi nó theo chuẩn bậc 2. Tức là một cột nếu không liên hệ đến khoá thì nên tách riêng ra vào bảng khác. Đây là lý do tại sao người ta dùng nhiều bảng thay vì 1.

Thường thì người ta đem một csdl, thiết kế lại cho chuẩn theo bậc 1, sau đó thiết kế cho chuẩn bậc 2, sau đó tính tính bậc 3.
Theo lý thuyết, một CSDL hoạt động chuẩn nểu nó tối thiểu ở bậc 3. Trên thực tế, CSDL dựa trên Excel thường chỉ đạt đến bậc 2 là đủ rồi, cố gắng chuẩn hơn nữa sẽ làm nó chạy chậm.

Nếu muốn rõ hơn, bạn đem vấn đề qua bên hộp CSDL mà hỏi. Hỏi ở đây là loãng.
 
Upvote 0

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

Back
Top Bottom