Thiết kế cơ sở dữliệu bằng phơng pháp mô hình hoá

Một phần của tài liệu ứng dụng tin học vào quản lý các đoàn cán bộ học tập & công tác nước ngoài (Trang 61)

IV. PHâN TíCH Hệ THẩNG QUảN Lí đ OΜN đ ΜO TạO

3.Thiết kế cơ sở dữliệu bằng phơng pháp mô hình hoá

a. Mô hình hoá quan hệ thực thể:

Đoàn

Chương

trinh đi Tham

gia Cán bộ Được cấp Hộ chiếuVisa Đi Chuyến đi Đến Nước 1 N N 1 1 N 1 N N 1 1 N

b. Danh sách và cấu trúc các bảng của cơ sở dữ liệu:

Từ mô hình quan hệ thực thể trên ta có thể thiết kế cơ sở dữ liệu nh sau: - Bảng DOAN ( Đoàn )

-Bảng CAN_BO ( Cán bộ )

Tên trờng Kiểu dữ liệu Độ lớn PK FK Mô tả

MA_QD Text 10 * Mã quyết định

NGAY_QD Date time dd/mm/yyyy Ngày quyêt định

NGUOI_KI_QD Text 30 Ngời kí QĐ

NGUON_KINH_PHI Text 20 Nguồn kinh phí

DV_CHINH Text 35 Đơn vị chính

DV_PHOI_HOP Text 35 Đơn vị phối hợp

Do DOAN và CAN_BO là quan hệ 2 chiều loại N@M do đó ngoài 2 tệp mô tả 2 thực thể này còn 1 tệp mô tả quan hệ nữa là CHUONG_TRINH_DI

Bảng CAN_BO có các trờng nh sau:

Tên trờng Kiểu dữ liệu Độ lớn PK FK Mô tả

MA_CB Text 15 * Mã cán bộ

HO_TEN Text 50 Họ và tên cán bộ

NGAY_SINH Date time dd/mm/yyyy Ngày sinh

GIOI_TINH Yes/ No Giới tính

DON_VI Text 35 Đơn vị

CHUC_VU Text 20 Chức vụ

GHI_CHU Text 150 Ghi chú

- Bảng CHUONG_TRINH_DI là tệp mô tả quan hệ giữa bảng DOAN và CAN_BO

bảng có các trờng sau:

Tên trờng Kiểu dữ liệu Độ lớn PK FK Mô tả

MA_QD Text 10 * Mã quyết định

MA_CB Text 15 * Mã cán bộ

NOI_DUNG Text 50 Nội dung (adsbygoogle = window.adsbygoogle || []).push({});

KET_QUA Text 50 Kết quả

-Bảng NUOC ( Nớc )

Do DOAN và NUOC là quan hệ 2 chiều loại N@M do đó ngoài 2 tệp mô tả 2 thực thể này còn 1 tệp mô tả quan hệ nữa là CHUYEN_DI

Tên trờng Kiểu dữ liệu Độ lớn PK FK Mô tả

MA_NUOC Text 15 * Mã nớc

TEN_NUOC Text 20 Tên nớc

Bảng CHUYEN_DI là tệp mô tả quan hệ giữa bảng DOAN và NUOC bảng có các trờng sau:

Tên trờng Kiểu dữ liệu Độ lớn PK FK Mô tả

MA_QD Text 10 * Mã quyết định

MA_NUOC Text 15 * Mã nớc

NGAY_DI Date/Time dd/mm/yyyy Ngày đi

NGAY_VE Date/Time dd/mm/yyyy Ngày về

TUYEN_BAY Text 35 Tuyến bay

DON_GIA_HT Currency Standard ($) Đơn giá hành

trình

- Bảng VISA(visa)

Bảng VISA nằm ở phía nhiều của mối quan hệ 1@N giữa CAN_BO và VISA vì vậy ta xây dung bảng VISA có các trờng sau:

Tên trờng Kiểu dữ liệu Độ lớn PK FK Mô tả

MA_CB Text 15 Mã cán bộ

LOAI_VISA Text 25 Loại visa

NGAY_CAP Date time dd/mm/yyyy Ngày cấp

NGAY_HET_HAN Date time dd/mm/yyyy Ngày hết hạn

- Bảng HO_CHIEU (Hộ chiếu)

Bảng HO_CHIEU nằm ở phía nhiều của mối quan hệ 1@N giữa

CAN_BO và HO_CHIEU vì vậy ta xây dung bảng HO_CHIEU có các trờng sau:

Tên trờng Kiểu dữ liệu Độ lớn PK FK Mô tả

SO_HO_ CHIEU Number Long Integer * Số hộ chiếu

MA_CB Text 15 Mã cán bộ

LOAI_HO_CHIEU Text 25 Loại hộ chiếu

NGAY_CAP Date time dd/mm/yyyy Ngày cấp (adsbygoogle = window.adsbygoogle || []).push({});

NGAY_HET_HAN Date time dd/mm/yyyy Ngày hết hạn

THI_THUC Yes/No Có hay không đợc miễn

thị thực ?

4. Thiết kế thuật toán

a. Thuật toán cập nhật dữ liệu:bao gồm thêm, xoá, sửa đổi dữ liệu

- Thuật toán thêm dữ liệu mới Bắt đầu

Dữ liệu hợp lệ ?

Lưu vào bảng đang mở Thêm dữ liệu mới Mở bảng dữ liệu

Thông báo dữ liệu không hợp lệ Đ S Làm tươi dữ liệu Tiếp tục thêm dữ liệu S Đ

- Thuật toán xoá dữ liệu đã tồn tại:

Thông báo dữ liệu không thể xoá

Xoá dữ liệu đã chọn

Bắt đầu

Dữ liệu xoá hợp lệ?

Chọn dữ liệu cần xoá trên Form hiện thời

Yêu cầu xoá dữ liệu

Đ S Có chắc chắn xoá ? Đ S Có xóa tiếp không? Đ

- Thuật toán sửa dữ liệu đã tồn tại:

Thông báo dữ liệu không hợp lệ

Bắt đầu

Dữ liệu sửa hợp lệ?

Cập nhật thay đổi dữ liệu đã chọn sửa

Chọn, thực hiện sửa dữ liệu cần sửa trên Form hiện thời

Yêu cầu sửa dữ liệu

Đ S Có sửa tiếp không? S Đ

-Thuật toán tìm kiếm dữ liệu:

Bắt đầu

Yêu cầu hợp lệ? Mở nguồn dữ liệu

Nhập các yêu cầu tìm kiếm (adsbygoogle = window.adsbygoogle || []).push({});

Thông báo yêu cầu không hợp lệ

S

Thực hiện tìm kiếm dữ liệu trên nguồn đang mở

Đ

Thông báo kết quả tìm kiếm

Tìm thấy? Đ

S Thông báo không tìm thấy

Tìm tiếp ?

V. Thiết kế chơng trình.

1. Form đăng nhập chơng trình: Buộc ngời sử dụng phải biết password để vào đợc chơng trình.

2. Form chơng trình chính: Cho phép ngời dùng vào các chức năng chính của chơng trình nh hệ thống, cập nhật, tìm kiếm tra cứu, báo cáo, trợ giúp.

3.Form cập nhập đoàn: Chức năng thêm, xoá, sửa đổi thông tin về đoàn đi. Từ form này ta có thể cập nhật trực tiếp đến các form cập nhật khác nh: chơng trình đi, chuyến đi.

4. Form nhập chơng trình đi: Cho phéo thêm, sửa, xoá, các thông tin liên quan đến chơng trình đi của đoàn.

5. Form nhập chuyến đi: cho phép thêm, sửa, xoá các thông tin về chuyến đi

6. Form cập nhật hồ sơ cán bộ: với các chức năng thêm, sửa, xoá, thông tin về cán bộ trong đoàn.

7. Form tìm kiếm các thông tin về đoàn đi với các tiêu thức nh giới hạn ngày đầu, ngày cuối để tìm kiếm, mã quyết định của đoàn đi

9. Form tìm kiếm thông tin về đoàn theo các tiêu thức nh giới hạn thời gian đi của đoàn từ ngày đến ngày

10. Tìm kiếm chơng trình đi của một đoàn khi biết tên cán bộ đi trong đoàn đó

11 Tìm kiếm chơng trình đi của một đoàn khi biết nội dung mà đoàn đó đã đi làm gì

12. Form quản trị ngời dùng:

Kết luận

Việc đào tạo nguồn nhân lực là một yêu cầu cần thiết, tất yếu của bất kỳ một tổ chức kinh tế xã hội nào, cùng với sự phát triển không ngừng của thời đại công nghệ thông tin , của nền kinh tế toàn cầu, thì việc trao đổi học tập và đào tạo đã vợt ra ngoài khuôn khổ trong một nớc.

Chính vì hàng năm ngày càng có nhiều cán bộ ngành dân số đợc cử đi học nớc ngoài, nên vấn đề quản lý bằng máy các đoàn cán bộ đào tạo nớc ngoài là hết sức cần thiết, hơn thế nữa, việc giải quyết tốt bài toán còn góp phần cho việc tin học hóa quản lý hành chính nhà nớc của khối cơ quan hành chính thuộc chính phủ .

Việc xây dựng hệ thống thông tin phục vụ việc quản lý các đoàn cán bộ học tập và đào tạo nớc ngoài là một bài toán mang tính thực tế cao và có phạm vi ứng dụng không chỉ trong toàn bộ uỷ ban dân số gia đình và trẻ em, mà còn với các vụ, các bộ liên quan khác.

Tuy nhiên, do giới hạn về trình độ và thời gian nên đề tài này không tránh khỏi những thiếu sót, em rất mong đợc sự đóng góp ý kiến của các thầy cô giáo và các bạn để đề tài ngày càng hoàn thiện hơn.

Một lần nữa em xin bày tỏ lòng biết ơn chân thành tới thầy giáo- TS.Lê Văn Năm - ngời đã trực tiếp hớng dẫn em hoàn thành chuyên đề thực tập này. Em xin chân thành cảm ơn các cô, chú, anh, chị tại trung tâm thông tin đặc biệt là anh Phạm Vũ Hoàng - là ngời trực tiếp hớng dẫn em trong thời gian em thực tập tại Trung tâm thông tin – Uỷ ban dân số gia đình và trẻ em.

Phụ lục chơng trình

1. Mã lệnh xử lý form nhập quyết định ( form đoàn):

Option Explicit

Dim blThem As Boolean Dim Bmk (adsbygoogle = window.adsbygoogle || []).push({});

Private Sub cmchuongtrinhdi_Click() nhapchuongtrinhdi.Show

End Sub

Private Sub cmchuyendi_Click() frmnhapchuyendi.Show

End Sub

Private Sub thoat_Click() Unload Me

End Sub

Private Sub Khoa_DL() Me.them.Visible = True Me.sua.Visible = True Me.xoa.Visible = True Me.thoat.Visible = True Me.luu.Visible = False Me.boqua.Visible = False End Sub

Private Sub Mo_DL() Me.them.Visible = False Me.sua.Visible = False Me.xoa.Visible = False Me.thoat.Visible = False Me.luu.Visible = True

End Sub

Private Sub boqua_Click() If blThem = True Then Me.Adodc1.Refresh Else Me.Adodc1.Recordset.CancelUpdate Me.Adodc1.Recordset.MoveLast End If Khoa_DL Me.them.SetFocus blThem = False End Sub

Private Sub luu_Click() On Error GoTo LoiLuu

Me.dgrdoan.AllowAddNew = True Me.dgrdoan.AllowUpdate = True If Me.Text1.Text = "" Then

MsgBox "Mã quyết định không đợc trống! Bạn phải nhập lại hoặc bấm bỏ qua ", vbExclamation, "Chú ý"

Me.Text1.SetFocus

If Me.Text2.Text = "" Then

MsgBox "Ngày quyết định không đợc trống! Bạn phải nhập lại hoặc nhấn bỏ qua ", vbExclamation, "Chú ý"

Me.Text2.SetFocus End If

If Me.Text3.Text = "" Then

MsgBox " Ngời kí quyết định không đợc để trống! Bạn phải nhập lại hoặc bấm bỏ qua", vbExclamation, "Chú ý"

Me.Text3.SetFocus End If

Else Me.Adodc1.Recordset.Update Khoa_DL Me.Adodc1.Recordset.Requery Me.them.SetFocus blThem = False End If exitLuu: Exit Sub LoiLuu:

MsgBox "Dữ liệu không hợp lệ. Có thể trùng mã hoặc nhập sai quy cách ", , "Thông báo"

Resume exitLuu End Sub

Private Sub sua_Click() On Error GoTo LoiSua

Bmk = Me.Adodc1.Recordset.Bookmark Me.Text1.SetFocus Mo_DL blThem = False exitSua: Exit Sub LoiSua:

MsgBox Err.Description, vbCritical, "Có lỗi sửa dữ liệu" Resume exitSua

End Sub

Private Sub them_Click() On Error GoTo LoiThem

Me.Adodc1.Recordset.AddNew Mo_DL (adsbygoogle = window.adsbygoogle || []).push({});

Exit Sub LoiThem:

MsgBox Err.Description, vbCritical, "Có lỗi cập nhật dữ liệu" Resume exitThem

End Sub

Private Sub xoa_Click() On Error GoTo LoiXoa

If MsgBox("Bạn có chắc chắn muốn xoá quyết định " & Me.Adodc1.Recordset.Fields(0) _

& " cùng các mẩu tin liên quan không?", vbYesNo + vbQuestion, "Chú ý") = vbYes Then Me.Adodc1.Recordset.Delete adAffectCurrent Me.Adodc1.Recordset.Clone adLockOptimistic Me.Adodc1.Recordset.MoveNext If Me.Adodc1.Recordset.EOF Then Me.Adodc1.Recordset.MoveLast End If End If Me.Adodc1.Recordset.Requery exitXoa: Exit Sub LoiXoa:

MsgBox "Không thể xoá đợc" Resume exitXoa

End Sub

Private Sub Form_Load() Khoa_DL

End Sub

Private Sub Adodc1_MoveComplete(ByVal adReason As

ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) On Error Resume Next

Me.Adodc1.Caption = "Bản ghi thứ: " &

CStr(Adodc1.Recordset.AbsolutePosition) & "/" & CStr(Adodc1.Recordset.RecordCount)

End Sub

Private Sub Text1_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text2.SetFocus

End Sub

Private Sub Text2_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text3.SetFocus

End Sub

Private Sub Text3_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text4.SetFocus

End Sub

Private Sub text4_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text5.SetFocus

End Sub

Private Sub Text5_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text6.SetFocus

End Sub

Private Sub text6_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text7.SetFocus

End Sub

Private Sub Text7_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.luu.SetFocus

End Sub

Dim rs As New ADODB.Recordset 'Set rs = New ADODB.Recordset (adsbygoogle = window.adsbygoogle || []).push({});

sql = "select chuong_trinh_di.* from (chuong_trinh_di inner join can_bo on chuong_trinh_di.ma_cb = can_bo.ma_cb) "

sql = sql & " inner join doan on chuong_trinh_di.ma_qd=doan.ma_qd " sql = sql & " where can_bo.ho_ten='" & Trim(txtTen) & "'" & " And doan.DV_CHINH = '" & Trim(txtDVC) & "'"

Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False"

Adodc1.RecordSource = sql

Adodc1.CommandType = adCmdText Adodc1.Refresh

rs.Open sql, Adodc1.ConnectionString, adOpenStatic txtSoDoan = rs.RecordCount

If rs.RecordCount < 1 Then

MsgBox "Không có đoàn nào có ngời mang tên " & txtTen & "!", vbInformation + vbOKOnly, "Thông báo!"

End If End Sub

Private Sub dong_Click() Unload Me

End Sub

Private Sub in_Click()

Dim sqlREFRESH As String Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset

sqlREFRESH = "select * from chuong_trinh_di "

Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False"

Adodc1.RecordSource = sqlREFRESH Adodc1.CommandType = adCmdText

Adodc1.Refresh txtTen = "" txtSoDoan = "" txtDVC = "" txtTen.SetFocus End Sub

3. Mã lệnh xử lý form tìm kiếm theo chơng trình đi

Dim rs As New ADODB.Recordset Dim cmd As ADODB.Command Private Sub dong_Click()

Unload Me End Sub

Private Sub Form_Load() 'su kien form Load Dim ConnectionString As String

'tao ket noi CSDL

ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False"

rs.Open "select distinct noi_dung from chuong_trinh_di", ConnectionString, adOpenKeyset, adLockBatchOptimistic

Do While Not rs.EOF

noidungdi.AddItem rs.Fields("noi_dung") rs.MoveNext

Loop rs.Close End Sub (adsbygoogle = window.adsbygoogle || []).push({});

Private Sub timkiem_Click() Dim ConnectionString As String Dim sql As String

Set cmd = New ADODB.Command

ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False"

cmd.ActiveConnection = ConnectionString

cmd.CommandText = "SELECT * FROM chuong_trinh_di where noi_dung='" + noidungdi + "'"

rs.Open cmd, , adOpenStatic, adLockBatchOptimistic With Adodc1

.RecordSource = "SELECT * FROM chuong_trinh_di where noi_dung='" + noidungdi + "'"

.ConnectionString = ConnectionString .Refresh 'tao nguon cho Ado End With

With DataGrid1

Set .DataSource = Adodc1 .Visible = True

.AllowUpdate = True .AllowDelete = False

.ForeColor = &H80000008 'thiet lap mau den End With

sodoan = rs.RecordCount rs.Close

End Sub

4. Mã lệnh xử lý form tìm kiếm theo đoàn

Dim rs As New ADODB.Recordset

Dim Check1 As Boolean, check2 As Boolean, check3 As Boolean, check4 As Boolean

Dim cmd As ADODB.Command Private Sub Combo1_Click() check3 = True

Private Sub denngay_Change() check2 = True

End Sub

Private Sub dong_Click() Unload Me

End Sub

Private Sub Form_Load() 'su kien form Load 'On Error Resume Next

Dim ConnectionString As String 'tao ket noi CSDL

ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False"

rs.Open "doan", ConnectionString, adOpenKeyset, adLockBatchOptimistic With Adodc1

.RecordSource = "SELECT * FROM doan" .ConnectionString = ConnectionString .Refresh 'tao nguon cho Ado End With

Do While Not rs.EOF (adsbygoogle = window.adsbygoogle || []).push({});

Combo1.AddItem rs.Fields("ma_qd") rs.MoveNext

Loop rs.Close End Sub

Private Sub timkiem_Click() Dim ConnectionString As String Dim sql As String

On Error Resume Next 'bo qua loi thc thi cua Ado 'tao ket noi CSDL

ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False"

cmd.ActiveConnection = ConnectionString sql = ""

Text5.Text = ""

If Check1 = True And check2 = True Then

sql = "NGAY_QD >=#" + Format(tungay, "dd/mm/yyyy") + "# and ngay_qd <=#" + Format(denngay, "dd/mm/yyyy") + "#"

End If

If Check1 = True And check2 = True And check3 = True Then

sql = "NGAY_QD >=#" + Format(tungay, "dd/mm/yyyy") + "# and ngay_qd <=#" + Format(denngay, "dd/mm/yyyy") + "# and ma_qd='" + Combo1 + "'" End If

If check3 = True Then

sql = "ma_qd='" + Combo1 + "'" End If

If Len(sql) = 0 Then

MsgBox "Bạn phải chọn điều kiện tìm ", vbOKOnly Else

cmd.CommandText = "SELECT * FROM doan where " & sql rs.Open cmd, , adOpenStatic, adLockBatchOptimistic

With Adodc1

.RecordSource = "SELECT * FROM doan where " & sql .ConnectionString = ConnectionString

.Refresh 'tao nguon cho Ado End With

With DataGrid1

Set .DataSource = Adodc1 .Visible = True

.AllowUpdate = True .AllowDelete = False

.ForeColor = &H80000008 'thiet lap mau den End With

Check1 = False check2 = False check3 = False End If rs.Close End Sub

Private Sub tungay_Change() Check1 = True

End Sub

5. Mã lệnh xử lý form tìm kiếm theo nớc:

Dim rs As New ADODB.Recordset Dim cmd As ADODB.Command Private Sub dong_Click() (adsbygoogle = window.adsbygoogle || []).push({});

Unload Me End Sub

Private Sub Form_Load() 'su kien form Load Dim ConnectionString As String

'tao ket noi CSDL

ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False"

rs.Open "nuoc", ConnectionString, adOpenKeyset, adLockBatchOptimistic With Adodc1

.RecordSource = "SELECT * FROM nuoc " .ConnectionString = ConnectionString .Refresh 'tao nguon cho Ado End With

Do While Not rs.EOF

Combo1.AddItem rs.Fields("ten_nuoc") rs.MoveNext

End Sub

Private Sub timkiem_Click() Dim ConnectionString As String

On Error Resume Next 'bo qua loi thc thi cua Ado 'tao ket noi CSDL

Set rs = New ADODB.Recordset Set cmd = New ADODB.Command

ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False"

cmd.ActiveConnection = ConnectionString cmd.CommandText = "SELECT doan.ma_qd

,doan.ngay_qd,doan.nguoi_ki_qd,doan.nguon_kinh_phi,doan.dv_chinh,doan.dv_p hoi_hop,doan.so_nguoi FROM doan,nuoc,chuyen_di where

doan.ma_qd=chuyen_di.ma_qd and nuoc.ma_nuoc=chuyen_di.ma_nuoc and nuoc.ten_nuoc='" + Combo1 + "'"

rs.Open cmd, , adOpenStatic, adLockBatchOptimistic With Adodc1

.RecordSource = "SELECT

doan.ma_qd,doan.ngay_qd,doan.nguoi_ki_qd,doan.nguon_kinh_phi,doan.dv_chin h,doan.dv_phoi_hop,doan.so_nguoi FROM doan,nuoc,chuyen_di where

doan.ma_qd=chuyen_di.ma_qd and nuoc.ma_nuoc=chuyen_di.ma_nuoc and nuoc.ten_nuoc='" + Combo1 + "'"

.ConnectionString = ConnectionString .Refresh 'tao nguon cho Ado End With

With DataGrid1

Set .DataSource = Adodc1 .Visible = True

.AllowUpdate = True .AllowDelete = False

.ForeColor = &H80000008 'thiet lap mau den End With

sodoan = rs.RecordCount End Sub

6. Form tìm kiếm theo chuyến đi:

Dim rs As ADODB.Recordset Dim cmd As ADODB.Command Private Sub dong_Click() (adsbygoogle = window.adsbygoogle || []).push({});

Unload Me End Sub

Private Sub Form_Load() 'su kien form Load Dim ConnectionString As String

'tao ket noi CSDL

ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False"

With Adodc1

.RecordSource = "SELECT * FROM chuyen_di " .ConnectionString = ConnectionString

.Refresh 'tao nguon cho Ado End With

End Sub

Private Sub timkiem_Click()

On Error Resume Next 'bo qua loi thc thi cua Ado 'tao ket noi CSDL

'khoidong

Set cmd = New ADODB.Command Set rs = New ADODB.Recordset Dim ConnectionString As String

ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False"

cmd.ActiveConnection = ConnectionString

rs.Open cmd, , adOpenStatic, adLockBatchOptimistic With Adodc1

.RecordSource = "SELECT * FROM chuyen_di where ngay_di >='" + Format(ngaydi, "dd/mm/yyyy") + "' and ngay_ve<='" + Format(ngayve, "dd/mm/yyyy") + "'"

.RecordSource = "SELECT * FROM chuyen_di where ngay_di >=#" + Format(ngaydi, "dd/mm/yyyy") + "# and ngay_ve<=#" + Format(ngayve, "dd/mm/yyyy") + "#"

.ConnectionString = ConnectionString .Refresh 'tao nguon cho Ado End With

With DataGrid1

Set .DataSource = Adodc1 .Visible = True

.AllowAddNew = True .AllowUpdate = True .AllowDelete = False

.ForeColor = &H80000008 'thiet lap mau den '.Top = 2880 'vi tri cua dtaGrid

'.Height = 1335 'chiau cao cua DataGrid

Một phần của tài liệu ứng dụng tin học vào quản lý các đoàn cán bộ học tập & công tác nước ngoài (Trang 61)