Recordset Oject:

Một phần của tài liệu Tài liệu Thực Tập Chuyên Ngành Lập trinh Visual Basic 6.0 docx (Trang 37 - 49)

CC CÁC DV HỖ TRỢ ĐIỀU TRỊ BỆNH

3. Recordset Oject:

Là kết quả trả về khi thực hiện một query, thực chất nó là một bảng trong bộ nhớ, ta có thể truy xuất các record của nó qua các phương thức và thuộc tính.

Methods:

Open: Mở recordset mới

Addnew:Tạo một record trong Recordset.

Update:Cập nhật các thay đổi vào record hiện hành.

Delete: Xoá record hiện hành.

Move: Dịch chuyển con trỏ record hiện hành.

MoveFirst:Đến record đầu tiên.

MoveNext:Đến record kế tiếp.

MovePrevious: Trở về record trước đó.

MoveLast: Đến record cuối cùng.

Requery: Thực thi lại query tạo ra recordset.

GetRow: Chứa các record vào một query.

Close:Đóng lại đối tượng Recordset.

Properties:

AbsolutePosition: Số thứ tự (vật lý) của record hiện tại.

BOF: Là True nếu con trỏ nằm trước record đầu tiên.

EOF: Là True nếu con trỏ nằm sau record cuối cùng.

CursorType: Kiểu của con trỏđược sử dụng trong recordset.

Tạo Recordset:

Trước tiên ta instace cho record bằng phát biểu

Recordset_name = Server.CreataObject(“ADODB.Recordset”)

Sau đó dùng phương thức Execute của đối tượng Connection hay Command để tạo ra recordset.

Recordset_name = ConnectionObject.Execute (CommandText,_ Recordaffected, Options)

Trong đó:

Soure: Là một CommandObject hay một lệnh SQL hoặc là Store Procedure.

ActiveConnection: Là tên của Connection đã được mở kết nối với database.

CursorType: Là kiểu con trỏ sử dụng với recordset, thông số này có kiểu số và được gán trị qua các tên hằng tương ứng như sau:

+ AdOpen ForwardOnly = 0: Là giá trị mặc định, chỉ cho phép duyệt các record theo một chiều từđầu đến cuối, không cho phép cập nhật hay xoá bỏ các record trong đó.

+ AdOpenKeyset = 1: Chếđộ này cho phép cập nhật các record, nhưng cấm truy xuất đến record của user khác thêm vào record.

+ AdOpenDynamic = 2 : Chếđộ này cho phép tất cả các thao tác trên như: thêm vào, loại bỏ, cập nhật và duyệt theo tất cả chiều lên xuống tuỳ ý.

+ AdOpenStatic = 3: Gần giống như chếđộ OpenForwardOnly.

Một sốđoạn chương trình xây dựng các thao tác: Thêm, xoá, sửa, lưu và thoát khỏi một record. Ví dụđối với formChứcvụ

--- Option Explicit

Private flag As String

--- Private Sub cmdClose_Click()

Unload Me End Sub

--- Private Sub cmdDel_Click()

Xoa_Du_Lieu End Sub

--- Private Sub cmdNew_Click()

set_null End Sub

Private Sub cmdSave_Click() If flag <> "Update" Then flag = "Save"

End If

Luu_Du_Lieu End Sub

--- Private Sub cmdUpdate_Click()

txtTenCV.Enabled = True txtTenCV.SetFocus End Sub

--- Private Sub Form_Load()

Display_listView End Sub

--- Private Sub Display_listView()

Dim rs As New ADODB.Recordset Dim str

Dim mItem As ListItem

ListItem.ListItems.Clear

str = "select * from chucvu order by Macv asc"

rs.Open str, cn, adOpenKeyset, adLockOptimistic, adCmdText If rs.EOF = False Then

While Not rs.EOF

Set mItem = ListItem.ListItems.Add(, , rs!MaCV) mItem.SubItems(1) = rs!tencv rs.MoveNext Wend End If txtMaCV.Enabled = False txtTenCV.Enabled = False End Sub --- Private Sub ListItem_ItemClick(ByVal Item As MSComctlLib.ListItem) txtMaCV = Item.Text

txtTenCV = Item.SubItems(1) txtMaCV.Enabled = False End Sub

Private Sub Xoa_Du_Lieu() Dim str

Dim response

Dim rs As New ADODB.Recordset If Trim(txtMaCV) = "" Then Exit Sub

End If

response = MsgBox(" Bạn có chắc chắn xoá Chức Vụ này ? ", vbYesNo + vbQuestion, "Thong Bao")

If response = vbNo Then Exit Sub

Else

str = "delete from Chucvu where Macv = '" & Trim(txtMaCV) & "'" cn.Execute (str) End If set_null Display_listView End Sub --- Private Sub Luu_Du_Lieu()

Dim rs As New ADODB.Recordset Dim str

Dim Nghiamap

'kiểm tra độ dài mã Chức Vụ If Len(Trim(txtMaCV)) <> 2 Then

MsgBox "Ban phải nhập mã số có 2 số. Vui lòng nhập lại", vbOKOnly + vbInformation, "Thông báo"

txtMaCV.SetFocus Exit Sub

End If

--- 'kiem tra mãcv va Têncv trước khi lưu

'Neu Macv="" va Tencv="" thi không cho nhập If Trim(txtMaCV) = "" Or Trim(txtTenCV) = "" Then

MsgBox " Chu y : Bạn phải nhập vào mã và tên Chức Vụ trước khi lưu ", vbOKOnly + vbExclamation, "Thông báo"

Me.MousePointer = 0 Exit Sub

End If

'kiểm tra nhập có phải là số không? If Not IsNumeric(txtMaCV.Text) Then

vbOKOnly + vbExclamation, "Thông báo" txtMaCV.SetFocus txtMaCV.Text = "" Exit Sub End If ' mở table Chức Vụ

str = "select * from Chucvu where Macv = '" _ & Trim(txtMaCV) & "'"

rs.Open str, cn

'kiểm tra tên ChứcVụ có trùng không? nếu trùng thì không cho nhập If TrungTen = True Then

MsgBox "Tên Chức Vụ này đã nhập rồi bạn không cần nhập nữa", _ vbOKOnly + vbExclamation, "Thông báo"

Exit Sub End If

'lưu vào table 1 recordset mới If rs.EOF = True Then

str = "insert into Chứcvụ values('" _

& Trim(txtMaCV) & "','" & Trim(txtTenCV) & "')" cn.Execute (str)

Else

Nghiamap = MsgBox("Chức vụ có mã [" & txtMaCV & "] đã tồn tại. Bạn có muốn sửa không?", vbYesNo + vbExclamation, "Thông báo")

If Nghiamap = vbNo Then Exit Sub

Else

'sua lai Tên chức vụ

str = "Update chucvu set TenCV = '" & Trim(txtTenCV) & "' where Macv = '" & Trim(txtMaCV) & "'"

cn.Execute (str) End If End If 'hiển thị danh sách Chức Vụ Display_listView cmdNew.SetFocus Me.MousePointer = 0 End Sub 'tao txtMãcv va txtTêncv tính rỗng Private Sub set_null()

txtTenCV.Enabled = True txtMaCV.Text = "" txtTenCV.Text = "" txtMaCV.SetFocus End Sub --- Private Function TrungTen() As Boolean

Dim rs As New ADODB.Recordset Dim str

Dim kiemtra

str = "select * from CHucvu "

rs.Open str, cn, adOpenKeyset, adLockOptimistic, adCmdText

If rs.EOF = False Then Do While Not rs.EOF str = rs!tencv

If UCase(txtTenCV.Text) = UCase(str) Then TrungTen = True Exit Do End If rs.MoveNext Loop End If End Function --- Private Sub txtMacv_KeyPress(KeyAscii As Integer)

Select Case KeyAscii Case 13

txtTenCV.SetFocus End Select

End Sub

--- Private Sub txtTencv_KeyPress(KeyAscii As Integer)

Select Case KeyAscii Case 13

cmdSave_Click End Select

Chương V : GIỚI THIỆU MỘT SỐ GIAO DIỆN CHÍNH KHI CHẠY CHƯƠNG TRÌNH

Hình 2 : Hồ sơ nhân viên của bệnh viện.

Hình 6: Form Giới thiệu về chương trình

Hình 9: Form Danh sách các khoa điều trị hiện có tại bệnh viện.

Chương VI :KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

I. Kết luận:

Đứng trước xu hướng phát triển của công nghệ thông tin như vũ bảo, việc tin học hoá việc quản lý hành chính là vô cùng quan trọng và bức thiết. Nó sẽ giúp cho các cơ quan nhà nước giải quyết các công việc được nhanh chóng và hiệu quả. Ứng dụng cơ sở dữ liệu đã giải quyết được vấn đềđó.

Với đề tài: Quản lý bệnh nhân và nhân viên tại bệnh viện đa khoa tỉnh Khánh Hoà, tuy chương trình cài đặt chưa được hoàn thiện các chức năng, song nếu có thời gian phát triển và hoàn thiện hơn thì chương trình này sẽ có ích rất nhiều giúp cho các nhân viên của bệnh viện trong công việc lưu trữ và thống kê bệnh nhân và nhân viên cũng như quản lý bệnh nhân tại bệnh viện một cách thuận tiện và dễ dàng hơn rất nhiều.

II. Hạn chế:

Do thời gian thực hiện đề tài tương đối hạn chế nên chương trình không thể tránh được những thiếu sót nhất định. Bên cạnh đó chưong trình cò có một số chức năng tiềm kiếm và thống kê chưa có đủ thời gian để thực hiện kịp. Đồng thời vẫn còn

có một số form chưa hoàn thành đầy đủ và chính xác và các ràng buộc về dữ liệu vẫn chưa đầy đủ lắm.

Do cài đặt bằng ngôn ngữ lập trình Visual Basic 6.0 và hệ quản trị cơ sở dữ liệu Microsoft Access 2000 nên chương trình chưa có tính bảo mật cao trong quá trình quản lý.

Một phần của tài liệu Tài liệu Thực Tập Chuyên Ngành Lập trinh Visual Basic 6.0 docx (Trang 37 - 49)