Để hiển thị dữ liệu trong trong một Table ta sử dụng đối tởng Listview đối t- ợng này tơng đối tiện lợi để hiển thị dữ liệu cụ thể nh sau:
Private Sub Display_Listview()
Dim rs As New ADODB.Recordset Dim Str
Dim mItem As listItem listItem.ListItems.Clear
Str = "select * from tblTinh order by Matinh asc"
Set rs = cn.Execute(Str) 'Thuc Hien Mot Lenh SQL duoc chi ra boi str If rs.EOF = False Then
While Not rs.EOF
Set mItem = listItem.ListItems.Add(, , rs!MaTinh) mItem.SubItems(1) = rs!TenTinh
rs.MoveNext Wend
End If End Sub
Trong đó listItem là đối tợng Listview có chức năng hiển thị dữ liệu, biến rs có kiểu Recordset để lu trữ dữ liệu trong một Recor (dữ liệu trong bảng). Trong đoạn chơng trình trên ta còn sử dụng phơng thức Set rs = cn.Execute(Str) để thực hiện câu truy vấn (SQL) trong ngoặc, câu truy vấn này lấy về dữ liệu đợc cất trong biến Record (rs) và đợc hiển thị trên Listview.
Để thêm mới dữ liệu vào một Table trong chơng trình ta sử dụng đối tợng Data Environment đối tợng này cho phép gọi các hàm hoặc các thủ tục nh cách gọi của Visual Basic. Dới đây là ví dụ cách gọi một hàm có tên Sp_NhapTinh có chức năng thêm một tỉnh mới
DE.Sp_NhapTinh MaTinh, TenTinh
Trong đó DE là đối tợng Data Environment và hàm Sp_NhapTinh là hàm (có thể là các thủ tục thậm chí là một View) đợc viết và lu trong cơ sở dữ liệu.
Tơng tự với các thủ tục khác cũng đợc thực hiện bằng cách gọi nh trên, tuy nhiên đối với thủ tục xóa dữ liệu trong một Table lại là một việc khá phức tạp bởi việc này còn liên quan đế một số ràng buộc về khóa. Ví dụ việc xóa một tỉnh thành, ta phải đi xóa toàn bộ các huyện, xã trực thuộc tỉnh đó, không những vậy ta còn phải xóa tất cả các bệnh nhân và nhân viên cùng các giấy tờ có liên quan, cụ thể ta có mã lệnh nh sau:
CREATE PROCEDURE Sp_XoaTinh @MaTinh Char(2)
---
-- Xoa Tat ca can bo la benh nhan truc thuoc tinh Delete From tblCanBo
Where tblCanBo.MaBenhNhan in( Select MaBenhNhan From tblBenhNhan Where tblBenhNhan.MaXa in(Select MaXa From tblXa Where tblXa.MaHuyen in(Select MaHuyen From tblHuyen Where tblHuyen.MaTinh=@MaTinh))) --- -- Xoa Tat ca cac bao hiem y te cua benh nhan thuoc tinh
Delete From tblBaoHiemYTe
Where tblBaoHiemYte.MaBenhNhan in( Select MaBenhNhan
From tblBenhNhan Where tblBenhNhan.MaXa in(Select MaXa From tblXa Where tblXa.MaHuyen in(Select MaHuyen From tblHuyen Where tblHuyen.MaTinh=@MaTinh))) --- -- Xoa tam ung cua cac benh nhan thuoc tinh
Delete From tblTamUng
Where tblTamUng.MaBenhNhan in(Select MaBenhNhan From tblBenhNhan Where tblBenhNhan.MaXa in(Select MaXa From tblXa Where tblXa.MaHuyen in(Select MaHuyen From tblHuyen Where tblHuyen.MaTinh=@MaTinh))) --- -- Xoa Dung dich vu ma benh an dung
Delete From tblDichVuDung
Where tblDichVuDung.MaBenhNhan in(Select MaBenhNhan From tblBenhNhan Where tblBenhNhan.MaXa in(Select MaXa From tblXa Where tblXa.MaHuyen in(Select MaHuyen
From tblHuyen
Where tblHuyen.MaTinh=@MaTinh)))
--- -- Xoa Dung Dich Vu
Delete From tblDichVuDung
Where tblDichVuDung.MaNhanVien in (Select MaNhanVien From tblNhanVien Where tblNhanVien.MaXa in (Select MaXa From tblXa Where tblXa.MaHuyen in(Select MaHuyen From tblHuyen Where tblHuyen.matinh=@MaTinh))) --- -- Xoa Benh An cua Benh Nhan thuoc tinh tren
Delete From tblBenhAn
Where tblBenhAn.MaBenhNhan in(Select MaBenhNhan From tblBenhNhan Where tblBenhNhan.MaXa in(Select MaXa From tblXa Where tblXa.MaHuyen in(Select MaHuyen From tblHuyen Where tblHuyen.MaTinh=@MaTinh))) --- -- Xoa Benh An ma Nhan Vien lap
Delete From tblBenhAn
Where tblBenhAn.MaNhanVien in (Select MaNhanVien From tblNhanVien Where tblNhanVien.MaXa in (Select MaXa From tblXa Where tblXa.MaHuyen in(Select MaHuyen From tblHuyen Where tblHuyen.matinh=@MaTinh))) --- --Xoa dong kham benh cua benh nhan
Delete From tblDongKhamBenh
Where tblDongKhamBenh.MaBenhNhan in(Select MaBenhNhan
From tblBenhNhan
Where tblBenhNhan.MaXa in(Select MaXa
From tblXa Where tblXa.MaHuyen in(Select MaHuyen From tblHuyen Where tblHuyen.MaTinh=@MaTinh))) --- -- Xoa Dong Kham Benh Ma Nhan Vien kham
Delete From tblDongKhamBenh
Where tblDongKhamBenh.MaNhanVien in (Select MaNhanVien From tblNhanVien Where tblNhanVien.MaXa in (Select MaXa From tblXa Where tblXa.MaHuyen in(Select MaHuyen From tblHuyen Where tblHuyen.matinh=@MaTinh))) --- --- Xoa Thuoc ma Nhan vien cap cho don thuoc
Delete From tblThuocDung
Where tblThuocDung.MaNhanVien in (Select MaNhanVien From tblNhanVien Where tblNhanVien.MaXa in (Select MaXa From tblXa Where tblXa.MaHuyen in(Select MaHuyen From tblHuyen Where tblHuyen.matinh=@MaTinh))) --- -- Xoa thuoc dung cho benh nhan thuoc tinh
Delete From tblThuocDung
Where tblThuocDung.MaBenhNhan in(Select MaBenhNhan From tblBenhNhan Where tblBenhNhan.MaXa in(Select MaXa From tblXa Where tblXa.MaHuyen in(Select MaHuyen From tblHuyen Where tblHuyen.MaTinh=@MaTinh))) --- -- Xoa benh nhan thuoc tinh
Delete From tblBenhNhan Where tblBenhNhan.MaXa
in(Select MaXa From tblXa
Where tblXa.MaHuyen in(Select MaHuyen From tblHuyen
Where tblHuyen.MaTinh=@MaTinh))
--- -- Xoa Nhan Vien thuoc tinh
Delete From tblNhanVien Where tblNhanVien.MaXa in(Select MaXa From tblXa Where tblXa.MaHuyen in(Select MaHuyen From tblHuyen Where tblHuyen.MaTinh=@MaTinh)) --- -- Xoa Xa truc thuoc tinh
Delete From tblXa Where tblXa.MaHuyen
in(Select MaHuyen From tblHuyen
Where tblHuyen.MaTinh=@Matinh)
--- -- Xoa Huyen trong tinh
Delete From tblHuyen
Where tblHuyen.MaTinh=@MaTinh
--- -- Xoa Tinh can Xoa
Delete From tblTinh
Where tblTinh.MaTinh=@Matinh
--- GO
Đối với các thủ tục xóa huyện, xã cũng tơng tự nh việc xóa một tỉnh nên cũng phải xóa tất cả các dữ liệu có liên quan.
Để trình bày dữ liệu em dùng view để kết nối các bảng. Ví dụ đối với view địa chỉ la sự kết nối của ba bảng Tỉnh, Huyện, Xã nh sau:
CREATE VIEW dbo.vwDiaChi AS
SELECT dbo.tblTINH.TenTinh, dbo.tblHUYEN.TenHuyen, dbo.tblXA.TenXa, dbo.tblXA.Maxa
FROM dbo.tblHUYEN INNER JOIN
dbo.tblTINH ON dbo.tblHUYEN.MaTinh = dbo.tblTINH.MaTinh INNER JOIN
dbo.tblXA ON dbo.tblHUYEN.MaHuyen = dbo.tblXA.MaHuyen
Để tìm kiếm dữ liệu trong chng trình em sử dụng hàm tìm kiếm đợc xây dựng sẵn trong cơ sở dữ liệu ví dụ tìm kiếm một bệnh nhân ta có đoạn truy vấn sau:
(@HoBenhNhan Char(20), @TenBenhNhan char(20)) RETURNS Table --- AS --- Return Select * From tblBenhNhan
Where (tblBenhNhan.HoBenhNhan= @HoBenhNhan) and (tblBenhNhan.TenBenhNhan= @TenBenhNhan) GO
Hàm này trả về một Table và các tiêu chí tìm kiếm đợc chỉ ra trong dữ liệu đầu vào là @HoBenhNhan và @TenBenhNhan. Tơng tự nh vậy ta có thể tìm kiếm bất kỳ dữ liệu nào có trong cơ sở dữ liệu và với các tiêu chí đợc đa ra ở đầu vào.
Thoạt tiên ta có cảm giác một hàm (Function) hơi giống với một view song với view không có dữ liệu đầu vào, song với hàm thì ngợc lại. Do đó để truy xuất dữ liệu thì với hàm là linh hoạt hơn rất nhiều so với view.
Iv một số form chính của chơng trình
Form chính của chơng trinh, khi chạy chơng trình form này đợc gọi đầu tiên và từ form này có thể gọi bất kỳ form nào khác
Form thông tin bệnh nhân có chức năng hiển thị tất cả các thông tin về bệnh nhân, ngoài ra ta còn có thể thêm một bệnh nhân, sửa, xóa một bệnh nhân trên form này tất nhiên là ngời thay đổi thông tin là ngời đợc trao quyền truy xuất và thay đổi dữ liệu.
Trong form này khi ta click vào một bệnh nhân bất kỳ thì mọi thông tin về bệnh nhân đó đều đợc hiển thị lên trên. Ngoài ra ta có thể thay đổi cũng nh xem chi tiết một số thông tin khác về bệnh nhân nh bệnh án, bảo hiểm y tế, ...
Form nhân viên: Tại đây hiển thi tất cả các thông tin về nhân viên
Form tìm kiếm bệnh nhân form này cho phép tìm kiếm bệnh nhân theo những tiêu chí đợc chỉ ra trong hộp combobox (tiêu chí có thể là tìm theo tên, họ tên, ) và thông tin cần tìm kiếm đ… ợc nhập vào trong hộp textbox.
Sau khi tìm kiếm có thể cho một hoặc một số bệnh nhân thậm chí có thể chẳng tìm thấy bệnh nhân nào nên ta có thể xem chi tiết từng bệnh nhân, và có thể in chi tiết đó ra giấy, chúng ta cũng có thể in ra toàn bộ danh sách bệnh nhân đã tìm kiếm đợc.
Form tìm kiếm bệnh nhân
Form thống kê bệnh nhân cũng tơng tự nh với tìm kiếm ta cũng có thể thống kê theo bệnh của bệnh nhân. Sau khi tìm kiếm thông thờng ta tìm đợc một danh sách bệnh nhân và ta cũng có thể in ra danh sách đó.
Form thống kê bệnh nhân.
Trong chơng trình còn một số form khác song em không tiện trình bày ra.
Chơng V. kết luận và đề xuất ý kiến I. Kết luận
Đứng trớc xu hớng phát triển nhanh và mạnh của nền công nghệ thông tin thế giới cũng nh nền công nghệ thông tin nớc nhà, thì tin học hóa quản lý hành chính là vô cùng quan trọng và bức thiết hiện nay. Nó sẽ giúp cho các cơ quan