Phần mềm quản lý thu chi phí khám bằng ngôn ngữ Visual Basic
Trang 1Mục lục
Phần I GiớI thiệu về ngôn ngữ Visual Basic
Lập trình vớI ngôn ngữ Visual Basic
Cấu trúc của một chương trình viết bằng ngôn ngữ Visual
Trang 2Phần I : Giới thiệu ngôn ngữ Visual Basic
Ngôn ngữ Visual Basic ngày càng được sử dụng rộng rãi trong các đề án,chương trình thực hiện trong và ngoài nước Visual Basic được xem làmột công cụ phát triển phần mềm thông dụng hiện nay
Sau phiên bản Visual Basic 1.0 là Visual Basic 2.0, đã từng chạy nhanhhơn, dễ sử dụng hơn Đến Visual Basic 3.0 bổ sung thêm một số phươngthức đơn giản, dễ điều khiển cơ sở dữ liệu hơn Visual Basic 4.0 bổ sungthêm hơn hỗ trợ phát triển 32 bit và bắt đầu tiến trình chuyển Visual Basicthành ngôn ngữ lập trình hướng đốI tượng Visual Basic 5.0 bổ sung khảnăng tạo các điều khiển riêng Visual Basic 6.0 có thêm nhiều chức năngmạnh như các ứng dụng Internet/ Intranet .v.v…
Visual Basic gắn liền vớI khái niệm lập trình trực quan, nghĩa là khi thiết kếchương trình, bạn thấy ngay được kết quả qua từng thao tác Visual Basiccho phép chỉnh sửa một cách đơn giản, nhanh chóng giao diện của cácđốI tượng trong ứng dụng Đó là một thuận lợI cho ngườI lập trình
VớI Visual Basic, việc lập trình trong Windows đã trở nên hiệu quả hơn vàđơn giản hơn rất nhiều Một khả năng nữa của Visual Basic là khả năngkết hợp các thư viện liên kết động DLLl (Dynamic Link Library) DLL chính
là phần mở rộng cho Visual Basic, tức là khi xây dựng một chương trình
có một số yêu cầu mà Visual Basic không đáp ứng đầy đủ ta có thể viếtcác DLL để phụ thêm cho chương trình
1 Các công cụ để thiết kế giao diện:
Như chúng ta đã biết Visual Basic là ngôn ngữ lập trình có tính hướng đốItượng nên công việc thiết kế giao diện là rất đơn giản Chúng ta chỉ việctiến hành đưa các đốI tượng cần thiết trong thanh công cụ vào Form bằngcách kích – kéo sau đó thay đổI các thuộc tính của chúng trên cửa sổProperties cho phù hợp vớI mục đích lập trình
1.1 Form:
Form là một biểu mẫu của mỗI ứng dụng trong Visual Basic Ta dùngForm nhằm mục đích định vị và sắp xếp các bộ phận trên nó khi thiết kếgiao diện vớI ngườI sử dụng Ta có thể xem Form như một bộ phận mà nó
có thể chứa các bộ phận khác Các thành phần trong Form chính của ứngdụng tương tác vớI các Form khác và các bộ phận của chúng tạo nên giaotiếp cho ứng dụng Form chính là giao diện chính của ứng dụng, các Formkhác có thể chứa các công cụ để nhập dữ liệu, xem xét v.v…
Trong nhiều ứng dụng của Visual Basic, kích cỡ và vị trí của biểu mẫu lúcthiết kế là kích cỡ mà ngườI dùng sẽ gặp vào lúc sử dụng Điều này, có
Trang 3nghĩa là Visual Basic cho phép ta thay đổI kích cỡ và di chuyển vị trí Formđến bất cứ nơi nào trên màn hình khi chạy một đề án, bằng cách thay đổImột số thuộc tính của nó trên cửa sổ thuộc tính đốI tượng (PropertiesWindows ) Thực tế, một trong tính năng thiếu của Visual Basic là khảnăng tiến hành các thay đổI động để đáp ứng sự kiện ngườI dùng
1.2 Toolbox (hộp công cụ):
Toolbox là hộp công cụ chưa các biểu tượng, biểu thị cho các điều khiển
mà ta có thể biểu mẫu là bảng chứa các đối tượng đã được định nghĩasẵn của Visual Basic Các đối tượng này được sử dụng trong Form để tạothành giao diện cho các chương trình ứng dụng của Visual Basic Ta cóthể coi hộp công cụ là một hộp “đồ nghề” của người thiết kế chương trình
1.3 Scrollbar (thanh cuốn):
Scrollbar là đối tượng cho phép nhận từ người dùng một giá trị tuỳ theo vịtrí con chạy trên thanh cuốn thay cho các giá trị số
Thanh cuốn có một số thuộc tính quan trọng sau:
Thuộc tính Min: xác định cận dưới của thanh cuốn
Thuộc tính Max: xác định cận trên của thanh cuốn
Thuộc tính Value: xác định giá trị tạm thời của thanh cuốn
Trang 41.7 Picturebox, Image ( hộp ảnh, điều khiển ảnh )
Đối tượng Image và Picturebox dùng để hiển thị ảnh Nó cho phép ngườithiết kế đưa hình ảnh từ các file ảnh ( bmp , gif …) lên Form
1.8 Textbox ( hộp văn bản )
Đối tượng Textbox dùng làm hộp nhập dữ liệu cho phép đưa các chuỗi ký
tự vào Form Có thể dùng hộp văn bản để nhập dữ liệu hoặc hiển thị vănbản Tất cả các công cụ trong windows về chỉnh sửa văn bản như : cut ,copy , paste đều dùng trong hộp văn bản
1.9 Command Button ( nút lệnh )
Khi người dùng kích vào 1 nút lệnh trong biểu mẫu, một thao tác nào đó
sẽ được thực hiện tuỳ theo thủ tục sự kiện được viết để đáp ứng sự kiệnkích chuột đó
1.10 Listbox ( hộp danh sách )
Đối tượng Listbox cho phép kết xuất các thông tin về nhiều chuỗi kí tự vàotrong nó thông qua phương thức additem Thường được dùng để hiển thịthông tin dưới dạng danh sách có liên quan với nhau Listbox không chophép người dùng nhập dữ liệu vào
1.11 Combo box ( hộp kết hợp )
Công cụ này cho phép người dùng gõ vào thông tin và hiển thị thông tin
nó có tác dụng như hộp danh sách và hộp văn bản Hộp kết hợp có 3 loại:
- Hộp kết hợp thả xuống ( drop-down combo ) : là 1 hộp văn bản chophép người dùng gõ vào, kế bên có 1 mũi tên mà khi nhấn vào nó sẽ
xổ ra 1 danh sách cho phép người sử dụng chọn lựa
- Hộp kết hợp đơn giản ( simple combo ) : luôn hiển thị danh sách và chophép người dùng gõ vào hộp văn bản
- Hộp danh sách thả xuống ( drop- down list box) : tương tự như hộp kếthợp thả xuống Danh sách sẽ không hiển thị sẵn nếu người dùngkhông nhấn vào mũi tên bên cạnh người sử dụng chỉ có thể chọn từdanh sách, gõ vào hộp văn bản thì danh sách sẽ cuộn đúng đến phần
tử yêu cầu và đánh dấu nó
1.12 Ole ( đối tượng nhúng )
Ole là viết tắt của Object - Linking and Embedding Nó cho phép ta nhúngtoàn bộ ứng dụng và dữ liệu từ một ứng dụng khác vào chương trình Olekhông chỉ là 1 hệ thống cho phép nhúng hay kết nối dữ liệu từ 1 ứng dụng
Trang 5khác mà vào thời gian chạy của chương trình ta sẽ có 1 bản sao của ứngdụng đó trong chương trình của ta Nó có khả năng automation cho phépđóng gói các đối tượng chức năng của ứng dụng để có thể sử dụng trongứng dụng khác
1.13 Project explorer
Project explorer trong Visual Basic 6.0 giúp quản lý và định hướng các đề
án, biểu mẫu, các module,… Visual Basic cho phép tổ chức nhiều đề ántrong 1 nhóm gọi là project groups Ta có thể lưu tập hợp các đề án trongVisual Basic thành 1 tập tin nhóm đề án Các tập tin này có phần mở rộng
là Vbg
1.14 Propeties windows ( cửa sổ thuộc tính )
Là nơi chứa danh sách các thuộc tính của một đối tượng cụ thể Cácthuộc tính này có thể khác nhau với từng đối tượng cụ thể Ta có thể đặtcác thuộc tính cho phù hợp với các chương trình ứng dụng
2 Lập trình trong Visual Basic
Ở phần một, chúng ta mới chỉ biết tuỳ biến biểu mẫu bằng cách bổ xungcác điều khiển vào cho phù hợp với yêu cầu của chương trình Tuy nhiên,
đó chỉ có thể coi là bộ mặt của chương trình Muốn chương trình chạyđược thì chúng ta phải thêm vào các thành phần khác như lệnh, dữ liệu
và cách thức thể hiển chúng trong chương trình
Khi lập trình trong Visual Basic thì phần lớn các mã được xử lý để đáp ứng
sự kiện Ví dụ như sự kiện kích chuột, bấm phím, load form…Các dòng
mã thi hành trong một chương trình Visual Basic phải nằm trong các thủtục hoặc hàm, các dòng lệnh nằm ngoài sẽ không làm việc Toàn bộ mãlệnh được gõ vào trong cửa sổ code
2.1 Cửa sổ code
Cửa số code bao gồm các thành phần sau:
Thanh tách: cửa sổ code có một thanh tách (Split bar) nằm đầu thanh
cuộn dọc Mục đích của nó là: khi các dòng mã trở nên nhiều, ta có thểchia cửa sổ code thành 2 phần
Hộp liệt kê Object: nằm ở đầu cửa sổ code bên trái, nó liệt kê tất cả các
điều khiển có trên biểu mẫu và thêm vào một đối tượng có tên là: General.Khi thả hộp liệt kê và nhắp vào một đối tượng nào đó thì sẽ đưa ta đếnphần mã viết cho đối tượng đó
Trang 6Hộp Procedure: hộp này cung cấp mọi sự kiện mà đối tượng đã được lựa
chọn trong hộp liệt kê object
- List properties/Methods: tính năng này đưa ra một danh sách các tínhchất và phương pháp của đối tượng ngay khi ta gõ dấu chấm
- Available constant : tính năng này cung cấp một danh sách các hằngsẵn có
2.3 Biến
Trong Visual Basic, tên biến có thể dài tối đa 255 kí tự Kí tự đầu tiên phải
là một chữ cái và tên biến có thể là một tổ hợp chữ cái, chữ số và dấugạch dưới Không được dùng các từ khoá trong Visual Basic ( như end,print .) làm tên biến Visual Basic không phân biệt chữ hoa, chữ thường Cách khai báo biến: Dim <Tên biến> as <Kiểu biến>
Phạm vi sử dụng biến phụ thuộc vào cách khai báo biến và vị trí đặt dònglênh khai báo
- Single precision: các số có phần thập phân gồm: Single precision có độ
chính xác đến 7 chữ số và double precision có độ chính xác lên đến 16
vị trí
- Currency: Biến tiền tệ là một kiểu mới Kiểu này cho ta 15 chữ số trước
dấu thập phân và 4 chữ số sau dấu thập phân
- Date: kiểu dữ liệu ngày tháng
- Byte: kiểu byte có thể lưu giữ các số nguyên từ 0 đến 255.
Trang 7- Boolean: đây là kiểu logic với các giá trị True/False.
- Variant: kiểu này được thiết kế để lưu mọi dữ liệu khác nhau của Visual
/ Chia, trả về kiểu số thực Y=4/2
2.5.2 Các toán tử so sánh:
> So sánh xem số thứ nhất có lớn hơn số thứ 2 không
< So sánh xem số thứ nhất có nhỏ hơn số thứ 2 không
= So sánh số thứ nhất có bằng số thứ 2 không
<> So sánh số thứ nhất có khác số thứ 2 không
>= So sánh số thứ nhất có lớn hơn hay bằng số thứ 2 không
<= So sánh số thứ nhất có nhỏ hơn hay bằng số thứ 2 không
2.5.3 Các toán tử Boolean
And Chỉ nhận giá trị True nếu cả 2 số hạng đều là True
Or Chỉ nhận giá trị False nếu cả 2 số hạng đều là False
Not Phủ định giá trị của số hạng
Trang 82.6 Cấu trúc điều khiển
2.6.1 Các cấu trúc chọn:
2.6.1.1 Cấu trúc If….Then…
Dạng 1: If <Biểu thức logic> then < lệnh> End If
Khi gặp một điều lệnh If… then, Visual Basic sẽ kiểm tra <Biểu thứclogic>, nếu là True thì máy sẽ thực hiện <lệnh> nếu kêt quả là False thìmáy sẽ bỏ qua lệnh và thực hiện những lệnh sau End If
Dạng 2: If <Biểu thức logic> then <lệnh 1> else <lệnh 2>
Khi gặp lệnh này, nếu <Biểu thức logic> lấy giá trị True thì thực hiện < lệnh1> bỏ qua <lệnh 2>, còn nếu <Biểu thức logic> lấy giá trị False thì bỏ qua
<lệnh 1> và thực hiện <lệnh 2>
Nhiều khi bạn phải thực hiện nhiều lệnh ứng với điều kiện là True hayFalse Để làm được điều đó, ta sử dụng dạng khác của cấu trúc If
… then, có dạng tổng quát như sau:
If <Biểu thức điều kiện> then
Trang 9Do
<Các câu lệnh>
While <Biểu thức điều kiện>
<Các câu lệnh> được thực hiện lặp đi lặp lại nếu <Biểu thức điều kiện>vẫn nhận giá trị True Do đó, để thoát khỏi vòng lặp thì trong <Các câulệnh phải có lệnh thay đổi gia trị của <Biểu thức điều kiện> Trong cú pháp
1, thì <Biều thức điều kiện> được xét trước khi thực hiện các câu lệnh,còn trong cú pháp 2 thì các câu lệnh được thực hiện trước khi xét đến
<Biểu thức điều kiện>
2.7.2 Cấu trúc For …Next
2.7.3 Cấu trúc For Each….Next
Trang 10trị cho tham số của thủ tục đó Trong Visual Basic, có 2 cách để truyềnthám số : By Ref ( truyền tham chiếu) và By Val ( truyền tham trị ).
Private/Public Sub <Tên thủ tục> (<Tham số1> as <Kiểu>, <Tham số 2>,
v.v…)
<Các câu lệnh>
End Sub
2.9 Hiển thị và nhận thông tin
Ta sử dụng các hộp đối thoại để hiển thị thông tin cho người dùng hoặcnhận thông tin Trong Visual Basic có 4 hộp thoại, đó là:
2.9.1 Thông điệp: (MesageBox)
Là một hộp thoại đơn giản nhất, gồm 2 loại:
- Chỉ cung cấp thông tin
- Tương tác với người sử dụng
2.9.2 Hộp nhập (InputBox)
InputBox dùng để nhập thông tin từ người dùng, nó bao gồm một dòngthông báo, hộp soạn thảo và 2 nút “OK” và “Cancel” Nó có mặt hạn chế làchỉ cho người sử dụng nhập rất ít thông tin
2.9.3 Các hộp thoại thông dụng
Bởi hộp thoại này xuất hiện mọi nơi, nên thay vì phải viết chương trìnhnhiều lần, Windows chứa chúng trong cùng một DLL, Comdlg32.dll hayComdlg.ocx
Có 6 hộp thoại:
- mở tập tin (File Open)
- Lưu tập tin (File save)
- Chọn mầu (Color)
- Chọn phông (Font)
- Trợ giúp (Help)
- In ấn (Print)
2.9.4 Hộp thoại hiệu chỉnh (Custom Dialog)
Đây là loại hộp đối thoại do người lập trình định nghĩa để tương thích vớiyêu cầu nhận thông tin của người sử dụng Nó có ưu điểm là ta có thểthiết kế theo ý thích Trở ngại của nó là khi thi hành từng biểu mẫu thì sẽ
sử dụng tài nguyên hệ thống như bộ nhớ, thời gian CPU Nếu dùng nhiềuhộp thoại hiệu chỉnh trong ứng dụng có thể mất tài nguyên hệ thống và dễ
bị treo máy
Trang 11Phần Hai Phần mềm quản lý thu chi phòng khám
I Mô tả phần mềm quản lý thu chi phòng khám
1.1 Quyền truy cập
Vì đây là phần mềm phục vụ cho việc quản lý thu chi phòng khám nênngười quản lý phòng khám có toàn quyền truy cập và sử dụng mọi chứcnăng của phần mềm (người quản lý có thể toàn quyền thực hiện các côngviệc như lưu trữ , chỉnh sửa , thêm bớt thông tin có liên quan đến phòngkhám v v )
1.2 Nhiệm vụ và mục đích của phần mềm quản lý thu chi phòng
khám
Phần mềm này có nhiệm vụ quản lý các khoản thu chi tài chính của phòngkhám Phần mềm này có nhiều chức năng nhằm phục vụ công tác quản lýcác khoản thu chi tài chính của người quản lý phòng khám như việc quản
lý các y tá,bác sỹ ,bệnh nhân.Quản lý tiền luơng và số ngày làm việc của y
tá và bác sỹ của phòng khám.quản lý các khoản chi phí mà bệnh nhânphải trả cho phòng khám về các dịch vụ mà họ dùng.Ngoài ra chương tìnhnay còn có chức năng tìm kiếm thong tin về bênh nhân đã đến khám ởphòng khám và các y tá ,bác sỹ làm việc ở phòng khám nhằm giúp chonguời quản lý làm viẹc dễ dàng hơn
Phần mềm quản lý thu chi phòng khám giúp cho người quản lý phòngkhám nắm vưng được só nhân viên trong phòng khám và những thông tinliên quan đến họ như tiền luơng, ngày công , địa chỉ,cấp bậc.Ngoài ra nócòn giúp cho người quản lý nắm thông tin về các bệnh nhân của phòngkhám như tên tuổi, địa chỉ,số tiền họ trả cho phòng khám v v Nhằm giúpcho người quản lý dễ dàng quản lý phòng khám một cách có hệ thống
Phần mềm này còn cho phép cập nhật một cách thường xuyên các thôngtin về cá nhân khi có bệnh nhân mới đến khám hoặc một bác sỹ hay một y
tá mới đến phòng khám làm việc
Ngoài ra phần mềm còn giúp cho người quản lý nắm vững khả năng tàichính của phòng khám như các khoản thu hoặc chi của phòng khám trongmột tháng ,một quý hay một năm
Phần mềm cũng giúp cho người quản lý tra cứu và tím kiếm thông tin vềbệnh nhân hoặc nhân viên của phòng khám một cách dẽ dàng hơn bằng
Trang 12việc chỉ nhớ một số chi tiết của họ như tên(Neus như nguời quản lý khôngnhớ đầy đủ họ tên chỉ cần nhớ một số chữ cái), địa chỉ , điện thoại v v
Phần mềm còn giúp cho người quản lý hạn chế sai sót của mình khi nhậpcác thông tin về bệnh nhân và nhân viên của phòng khám
Sơ đồ tổng thể về các chức năng của phần mềm
Quản lý hợp đồng
Quản lý Bệnh nhân
QL Bảng giá
Báo cáo Phần mềm QL thu chi phòng khám
QL lịch làm việc
Trang 131.3.1 Chức năng quản lý nhânh viên
Vì phần mềm này mục đích là giúp cho ngươi quản lý phòng khám nắmvững về số nhân viên đang làm việc trong phòng khám Cho nên tất cảmọi thông tin của họ như cáp bậc ,ngày lưong , địa chỉ v v Sẽ được nhậpvào và lưu trữ trong hệ thống.Ngoài ra người quản lý có thể sửa chữa cácthông tin về nhân viên (có thể tạo mới nếu phòng khám có thêm nhân viênđến làm việc hoặc xoá nêu có một nhân viên nghỉ làm hoặc xin thôi việcv v )
Chức năng này cũng giúp cho người quản lý có thể nắm được nắm đượcthông tin về những y bác sỹ cộng tác với phòng khám(như số điệnthoại ,nơi công tác ,cấp bậc v v ) Đồng thời nguời quản lý cũng có thêchỉnh sửa được những thông tin này
1.3.2 Chức năng quản lý khách hàng
Phần này giúp cho người quản lý làm việc trong trường hợp mà bệnhnhân có người đại diện Ở đây thường thi người quản lý thương dùngchức năng naỳ trong trường hợp mà khách hàng là cả một công ty hay làmột tập thể đến khám sức khoẻ Để cho dễ dàng quản lý và để tránh chokhách hàng khoỉ phiền hà và phải làm nhiều thủ tục thì người quản lý sẽ
ký hợp đồng với một người đại diện và tất cả mọi thông tin về hợp đồng sẽđươc nhập và lưu trữ trong hệ thống ( như tên người đại diện,số tiền củahợp đồng,số tiền mà người đại diện đã thanh toan và còn nợ lại baonhiêu,tên tuổi người đại diện ,nơi công tác ,cấp bậc v v )
Đồng thời nó cũng giúp cho ngươi quản lý có thể bỏ đi nhưng thông tinkhách hàng không còn quan hệ với phòng khám hoặc ta cũng có thể xoá
đi nhưng thông tin không chính xác về khách hàng mà ta đã nhập vaòtrước đó
1.3.3 Chức năng quản lý bảng giá dịch vụ
Như chúng ta đã biết trong phòng khám có rất nhiều các loại dịch vụ và xét nghiệm Vì thế chức năng này của chương trình sẽ giúp cho người quản lý nắm vững được các dịch vụ mà phòng khám đang có (bởi mỗi loaịdịch vụ hay xét nghiêm khi mà người quản l ý lưu trữ thì chương trình bao
Trang 14giờ cũng bắt buộc lưu trũ bằng ba chữ cái đầu tiên đặc trưng cho dịch vụ
đó nếu như không tuân thủ thì chuơng trinh sẽ không cho pép ngưòi sử dụng làm tiếp ), đồng thời nó cũng giúp cho người quản lý nắm được giá tiền mỗi dịch vụ mà bệnh nhân và khách hàng phải thanh toán khi lám các xét nghiệm hoặc các dịch vụ tại phòng khám ( dịch vu siêu âm,xét nghiệm máu v v).Ngoài ra trong chức năng này người quản lý cũng có thể sửa chữa các dịch vụ như thêm hoặc bớt các dịch vụ ,thay đổi số tiền mà khách hàng phải thanh toán cho mỗi loại dịch vụ v v
Như chúng ta đã biết trong phòng khám có rất nhiều các loại dịch vụ vàxét nghiệm
1.3.4 Chức năng quản lý thu
Chức năng này của chương trình sẽ giúp cho người quản lý nắm vữngđược các khoản thu của phòng khám trong ngày như số tiền mà bệnhnhân thanh toán các khoản phí cho phòng khám ,số tiền bán thuốc chobệnh nhân v…v… Đồng thời nó cũng giúp cho người quản lý có thể kiểmtra xem các khoản thu vào có chính xác hay không Để từ đó xuất ra hoáđơn hoặc giấy biên nhận
1.3.5 Chức năng quản lý chi
Công việc quản lý các khoản tiền phải thanh toán cho các khách hàng ,chocác công ty kinh doanh dược phẩm là một công việc rât kho khăn chongười quản lý Vì thế chức năng này sẽ giúp cho người quản lý nắm đượccác khoản tiền phai thanh toán trong ngày ,trong một tháng Đồng thời nócũng giúp cho người quản lý hạn chế bớt sai xót trong một số khâu nhưkiểm tra số tiền mình phải thanh toán đã khớp chưa(số tiền phải thanhtoán để mua một lô thuốc v v ) Rồi sau đó mới xuất hoá đơn hoặc giấybiên nhận
1.3.6 Chức năng quản lý lịch làm việc
Như chúng ta đã biết trong một phòng khám có rất nhiều nhân viên baogồm các bác sỹ , y tá , hộ lý thuộc về biên chế của phòng khám và ngoài
ra còn có các bác sỹ mà phòng khám mời để cộng tác với phòng khám Vìthế việc quản lý giờ giấc ,lịch làm việc sẽ rất là khó khăn đối với ngườiquản lý Cho nên trong phần mềm này có thêm phần chức năng quản lýlịch làm việc nhằm giúp cho việc quản lý trở nên dễ dàng hơn.Trong phần
Trang 15này ngươi quản lý có thể biết vào một giờ naỳ trong ngày có bao nhiêuy,bác sỹ làm việc và đồng thời người quản lý cũng có thể chỉnh sửa giờgiấc làm việc của họ nếu có việc đột xuất gì xẩy ra.
1.3.7 Chức năng báo cáo
Mọi thông tin chi tiết về tất cả các hoạt động của nghiẹp vụ quản lý thu chiphòng khám sẽ được liệt kê một cách đầy đủ và chính xác để người quản
lý có thể nắm rõ tình hình và báo cáo cho cấp trên của mình Các thông tin
mà người quản lý có thể liệt kê như:
Có bao nhiêu bệnh nhân đến khám trong tháng
Số tiền lương phải trả cho các nhân viên trong phòng khám
Số tiền mà phòng khám thu được trong một tháng
v v
Dựa trên những thông tin đó mà người quản lý có thể thiết lập một báocáo đầy đủ về tình hình của phòng khám
1.3.8 Chức năng quản lý bệnh nhân
Đây là một phần rất quan trọng của nghiệp vụ quản lý thu chi phòngkhám.Trong phần này người quản lý sẽ biết được tại thời điểm hiện tạiphòng khám có bao nhiêu bệnh nhân ,các thông tin cá nhân về họ(Têntuổi, địa chỉ,số điẹm thoại v v) ,các dịch vụ và xét nhgiệm mà họ đangdùng và do bác sỹ nào làm Đồng thời người quản lý cũng có thể thêmbớt hoặc chỉnh sửa các thong tin nếu như có sai sót
1.3.9 Chức năng tìm kiếm
Tìm kiếm theo tên : Như đã nói ở trên ,trong một phòng khám có rấtnhiều bệnh nhân và nhân viên vì thế để nhớ hết được họ là một việc rấtkhó khăn Nen ở trong phần chức năng này của chương trình sẽ giúpngười quản lý có thể tìm kiếm một nhân viên hoặc một bệnh nhân củaphòng khám một cách dễ dàng Ngưòi quản lý chỉ cần nhớ một số chữcái trong tên của bệnh nhân hoặc của nhân viên là phần chức năng nay
sẽ giúp họ tìm kiếm những ngưòi có tên chứa đựng các chư cái đó
Tìm kiếm theo số điên thoại: Tương tự như phần tìm kiếm theo tên
Tìm kiếm theo mã vùng: Tương tự như phần tìm kiếm theo tên
Trang 16Bảng 2:TblPhiếu_Chi
Bảng 3 :TblPhiếu_Thu
Bảng 4:TblChuyên_khoa
Bảng 5:TblĐại_diện
Bảng 6 : TblBảng_giá_dịch vụ
Bảng 7 : TblĐơn vị làm hợp đồng
Trang 17STT Tên Trờng Kiểu Dữ Liệu Mổ tả
Bảng 8 : TblDịch_vụ
Bảng 9 : TblHợp_đồng
Bảng 10: TblLịch_Khám
Bảng 11 : TblNhân_viên
Trang 185 Diachi Text §Þa chØ
Sơ đồ mối quan hệ trong cơ sở dữ liệu
Trang 21Dim ans As Byte
ans = MsgBox("B¹n cã muèn xo¸ th«ng tin cña nh©n viªn cã m· lµ " &MaNV & " kh«ng ?", vbQuestion + vbYesNo, "Th«ng tin ®ang xo¸ !")
If ans = vbNo Then
Exit Sub
End If
rsNhanvien.MoveFirst
Do While Not rsNhanvien.EOF
If rsNhanvien!manhanvien = txtMa.Text Then
Private Sub CmdEdit_Click()
If cmdedit.Caption = "Söa" Then
Trang 22For Each ctl In Controls
If TypeOf ctl Is TextBox Then
Trang 23Private Sub TreeView1_NodeClick(ByVal Node As ComctlLib.Node)Dim nodeName As String
Do Until rsNhanvien.EOF = True
If rsNhanvien!manhanvien = nodeName Then
Private Sub txtDiachi_KeyPress(Keyascii As Integer)
If Keyascii = 32 Then Exit Sub
If (Keyascii >= 33 And Keyascii < 48) Or _
(Keyascii > 57 And Keyascii <= 64) Or _
(Keyascii >= 91 And Keyascii <= 96) Or _
(Keyascii >= 123 And Keyascii <= 126) Then
Keyascii = 0
End If
End Sub
1.5 Mã nguồn thủ tục cmdnew_Click()
Private Sub cmdnew_Click()
If cmdnew.Caption = "T¹o míi" Then
Trang 25TreeView1.Nodes.Add "parent", tvwChild, , txtMa.Text, "co"
If TreeView1.Nodes("parent").Expanded = False Then
Trang 26ElseIf logic = False Then
sql = "update tblnhanvien set [tennhanvien] =" & _
"'" & txtHoten.Text & "',[diachi]=" & _
"'" & txtDiachi.Text & "', [capbac]=" & _
"'" & txtCapbac.Text & "',[chuyenkhoa]=" & _
"'" & txtChuyenkhoa.Text & "',[dtnr]=" & _
"'" & txtDTnharieng.Text & "',[dtcq]=" & _
"'" & txtDTcoquan.Text & "',[didong]=" & _
"'" & txtDTdidong.Text & "',[ngayluong]=" & _
"'" & txtNgayluong.Text & "',[donvi]=" & _
"'" & txtDonvi.Text & "'" & _
" where manhanvien = '" & txtMa.Text & "'"
Trang 27Private Sub Form_Load()
Saved = True
'Load skin cho form
Dim SkinPath As String
'Nap co so du lieu len form
Set cnn1 = New ADODB.Connection
cnn1.Provider = "Microsoft.Jet.OLEDB.3.51"
cnn1.Open App.Path & "\qltc.mdb"
Set rsNhanvien = New ADODB.Recordset
rsNhanvien.Open "tblNhanvien", cnn1, adOpenKeyset,adLockOptimistic, adCmdTable
'Tao cac Node len treeview theo co so du lieu
Call Create_Node
'Khoi tao Panel
Dim mypanel As Panel
Set mypanel = StatusBar1.Panels.Add(3)
StatusBar1.Panels(3).Text = "Thanh tr¹ng th¸i"
StatusBar1.Panels(3).AutoSize = sbrSpring
'Tao kieu cho label Nhan vien
Lbldanhsach.FontBold = True
Trang 28Do While Not rsNhanvien.EOF
If rsNhanvien!manhanvien = CallMaNV Then
1.8 Priviate sub Dis
Private Sub Dis()
Trang 29If IsNull(rsNhanvien!didong) = False Then
Private Sub Create_Node()
Dim ChildID As Integer
Do Until rsNhanvien.EOF = True
TreeView1.Nodes.Add "parent", tvwChild, "C" & ChildID & "",rsNhanvien!manhanvien, "co"
ChildID = ChildID + 1
rsNhanvien.MoveNext
Trang 30Do While Not rsNhanvien.EOF
If rsNhanvien.EOF Then rsNhanvien.MoveLast
Trang 312.1 Mã nguồn thủ tuc Cmbmadichvu_click
Private Sub Cmbmadichvu_click()
rst2.MoveFirst
While Not rst2.EOF
If rst2!madv = Me.cmbmadichvu.Text Then
Trang 32While Not rst1.EOF
If rst1!mabenhnhan = Me.txtmabenhnhan.Text And rst1!madichvu
While Not rst3.EOF
If rst3!manhanvien = Me.cmbmanhanvien.Text Then
Private Sub CmdAdd_Click()
If CmdAdd.Caption = "T¹o míi" Then
Trang 33While Not rst4.EOF
If rst4!ngaylamviec = Date Then
Trang 34CmdAdd.Caption = "T¹o míi"
Skin.LoadSkin App.Path & "\_temp.skn"
Trang 35ElseIf Me.cmbmanhanvien.Text = "" Then
MsgBox "chua chon nhan vien can xoa"
Me.cmbmadichvu.SetFocus
Exit Sub
Else
rst1.MoveFirst
While Not rst1.EOF
If rst1!mabenhnhan = Me.txtmabenhnhan And rst1!manhanvien =Me.cmbmanhanvien.Text And rst1!madichvu = Me.cmbmadichvu.TextThen
Trang 36" WHERE tblDV.Mabenhnhan ='" & Me.txtmabenhnhan.Text & "'" Set rst10 = New ADODB.Recordset
CmdAdd.Caption = "T¹o míi"
Skin.LoadSkin App.Path & "\_temp.skn"
Trang 38Me.cmdnewdv.Enabled = True
Skin.RemoveSkin Me.CmdAdd.hwnd
Me.CmdAdd.Caption = "T¹o míi"
Skin.LoadSkin App.Path & "\_temp.skn"
Skin.ApplySkin Me.CmdAdd.hwnd
'End If
End If
ElseIf flag = False Then
sql = "update tblbenhnhan set [hoten] ='" & Me.txthoten.Text & "'," &
"[tuoi] ='" & Me.txttuoi.Text & "'," & "[diachi] ='" & Me.txtdiachi.Text & "'," &
"[dienthoai] ='" & Me.txtdienthoai.Text & "'" & _
" where tblbenhnhan.mabenhnhan ='" & Me.txtmabenhnhan.Text &
Private Sub cmdnewdv_Click()
If Me.cmdnewdv.Caption = "Thªm dÞch vô" Then
flag1 = True
Me.cmbmadichvu.Clear
Trang 39While Not rst4.EOF
If rst4!ngaylamviec = Date Then
While Not rst1.EOF
If rst1!mabenhnhan = Me.txtmabenhnhan.Text Then
Me.cmbmadichvu.AddItem rst1!madichvu
rst2.MoveFirst
While Not rst2.EOF
If rst2!madv = rst1!madichvu Then
Set l = lst1.ListItems.Add(, , rst2!madv)
l.SubItems(1) = rst2!tendv
l.SubItems(2) = rst2!giadv
End If
rst2.MoveNext
Trang 40' For i = Me.cmbmadichvu.ListCount - 1 To 2 Step -1
' For j = Me.cmbmadichvu.ListCount - 2 To 1 Step -1
' If Me.cmbmadichvu.List(i) = Me.cmbmadichvu.List(j) Then
While Not rst1.EOF
If rst1!mabenhnhan = Me.txtmabenhnhan.Text Then
rst3.MoveFirst
While Not rst3.EOF
If rst3!manhanvien = rst1!manhanvien Then
Set s = lst2.ListItems.Add(, , rst3!manhanvien)