Tổng quan về phân tích và thiết kế

Một phần của tài liệu xây dựng phần mềm quản lý thuốc cho công ty cổ phần dược phẩm Nam Hà.DOC (Trang 42 - 83)

Chương II Các vấn đề cơ bản trong hệ thống thông tin quản lý thuốc

3Tổng quan về phân tích và thiết kế

nhiều thành phần trong mối quan hệ với nhau.

Hệ thống bao gồm:

Tập hợp các phần tử ( không phân biệt bản chất của nó ).

Tập hợp các mối quan hệ giữa các phần tử đó ( các quan hệ có nhiều dạng khác nhau như: các quan hệ cơ học, năng lượng, THÔNG TIN Và Các quan hệ khác ràng buộc bởi: kinh tế, thân hữu, pháp luật )

Tạo thành một thể thống nhất để có được những chức hay mục tiêu ( của chính nó hay được con người gán cho ) của hệ thống.

Phân tích là công việc trọng tân chi xây dựng một hệ thông tin. Phân tích hệ thống nhằm xác định nhu cầu thông tin của tổ chức. Nó sẽ giúp cung cấp những dữ liệu cơ sở cho việc thiết kế hệ thống thông tin sau này. Thiết kế hệ thống sẽ cho một phương án tổng thể hay một mô hình đầy đủ của hệ thống thông tin.

Một phương pháp phân tích và thiết kế là sự kết hợp của ba yếu tố:

Một tập hợp các khái niệm, định nghĩa và mô hình, bao gồm các khái niệm cơ bản được sử dụng trong phương pháp cùng với các cách biểu diễn chúng.

Một tiến độ triển khai: bao gồm các bước đi lần lượt, các hoạt động cần làm.

Một công cụ trợ giúp, là một phần mềm giúp cho việc triển khai hệ thống thực hiện theo phương pháp được chặt chẽ và nhanh chóng.

Do đó, khi lập trình để quản lý cửa hàng thuốc tân dược nói riêng hay bất kỳ một hệ thống quản lý nào thì cần phải phân tích và thiết kế hệ thống.

3.1 Chức năng nhiệm vụ vủa các đối tượng.

1. Quản lý thuốc.

Chức năng này có nhiệm vụ quản lý chặt chẽ thông tin nhà cung cấp và khách hàng, thông tin về thuốc như mã số thuốc, số lượng, tên thuốc, loại thuốc, công dụng…

Quản lý về quá trình bán thuốc của cửa hàng, nhận đơn hàng từ phía khách hàng, lập danh sách đơn hàng và phân loại khách hàng với các loại thuốc, số lượng, giá cả…

2. Quản lý hóa đơn.

Chức năng quản lý hóa đơn có tác dụng cho biết thông tin về mã hóa đơn, mã thuốc, mã nhà cung cấp, số lượng, ngày xuất nhập, đơn giá, thành tiền, số tiền đó thanh toán, số tiền còn lại mà từ đó người quản lý truy cập được các thông tin cần thiết như số tiền còn nợ của nhà cung cấp, khách hàng, v.v…

3. Quản lý nhà cung cấp.

Quản lý mã nhà cung cấp, tên nhà cung cấp, địa chỉ, điện thoại, số tiền mà cửa hàng còn nợ lại nhà cung cấp, các đơn hàng và cung cấp các thông tin về thuốc.

4. Quản lý khách hàng.

Quản lý mã khách hàng, tên khách hàng, địa chỉ, điện thoại, các đơn hàng và cung cấp các thông tin về thuốc khi người ta truy cập đến khóa mã khách hàng.

5. Tra cứu và tìm kiếm.

Làm nhiệm vụ tra cứu và tìm kiếm những yêu cầu của người quản lý đưa ra như các thông tin về thuốc, khách hàng, loại thuốc…

Các thuật toán được sủ dụng:

-Thuật toán nhập dữ liệu

Nguyễn Văn Cường Tin học kinh tế 46B

Xóa bản ghi Bắt đầu chương trình

Nguyễn Văn Cường Tin học kinh tế 46B Mở một tệp dữ liệu Tạo một bản ghi Sửa tệp không? Nhập tệp không? Nhập vào tệp dữ liệu Đóng tệp lại Kết thúc chương trình Bắt đầu chương trình không không Xóa bản ghi Đóng tệp lại Bắt đầu chương trình

-Thuật toán xóa dữ liệu

Nguyễn Văn Cường Tin học kinh tế 46B (adsbygoogle = window.adsbygoogle || []).push({});

Nhấn nút xóa

Xóa bản ghi Có kiểm tra dữ liệu ?

Hiện lên bản ghi cần xóa

Có xóa tệp không? Đóng tệp lại Kết thúc trương trình không không Bắt đầu chương trình Kết thúc chương trình

-Thuật toán sửa dữ liệu

Nguyễn Văn Cường Tin học kinh tế 46B

Nhập vào mã dữ liệu cần sửa

Tiến hành sửa bản ghi Có kiểm tra lại dữliệu không?

Hiện lên bản ghi cần sửa Có sửa tiếp không? Đóng tệp lại Kết thúc chương trình không không Bắt đầu chương trình Bắt đầu chương trình

-Thuật toán tìm kiếm

Nguyễn Văn Cường Tin học kinh tế 46B

Nhập vào điều kiện tìm kiếm

Hiên ra thông báo Có kiểm tra dữ liệu không? Hiện bản cần tìm Tiến hành tìm kiếm Đóng lại tệp Kết thúc chương trình không không Bắt đầu chương trình

3.2. Biểu đồ phân cấp chức năng

QUẢN LÝ CỬA HÀNG THUỐC TÂN DƯỢC

Quản lý NCC và khách hàng Quản lý thuốc Tổng hợp Quản lý hóa đơn Tra cứu và tìm kiếm Thêm Sửa đổi Hủy bỏ Tìm kiếm Thêm Sửa đổi Hủy bỏ Tìm kiếm Hóa đơn nhập/ xuất Sửa đổi Hủy bỏ Tìm kiếm Tìm kiếm theo NCC Tìm kiếm theo KH Tìm kiếm theo mã thuốc Thống kê Hàng tồn kho

3.3 Biểu đồ luồng dữ liệu mức khung cảnh

Sơ đồ DFD mức 0 quản lý thuốc

Nhà cung cấp và khách hàng

Quản lý bán thuốc

Giao thuốc

Đơn thuốc Giao thuốc

Thông tin thuốc

Đơn thuốc Hóa đơn

Phân rã sơ đồ về mức 1, mức 2

3.4 Giao diện và code của chương trình Giao diện chính:

Bao gồm các nghiệp vụ -Nhập thuốc

-Bán thuốc

-Thoát khỏi chương trình

2.0 Chuyển giao tiếp nhận 1.0 Cập nhật hồ sơ Danh mục thuốc 3.0 Sử dụng thông tin (adsbygoogle = window.adsbygoogle || []).push({});

D1 Thông tin về thuốc D2 Ghi nhận

Thông tin về thuốc

Báo cáo Giám đốc Báo cáo

Code của Menu chính: Option Explicit

Private Sub cmdBan_Click() frmHDB.Show vbModal End Sub

Private Sub cmdNhap_Click() frmHDN.Show vbModal End Sub

Private Sub Form_Load()

Set Conn = New ADODB.Connection

gConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source = " & App.Path & "\data\db1.mdb;" & _

"Persist Security Info = False"

';Jet OLEDB:Database Password=hoanglinh" Conn.CursorLocation = adUseClient

Conn.Open gConnectionString

End Sub

Private Sub cmdThoat_Click() End

End Sub

Private Sub mnBan_Click() frmBaocaoBan.Show vbModal End Sub

Private Sub mnCC_Click() frmNCC.Show vbModal End Sub

Private Sub mnFind_Click() frmFindTh.Show vbModal End Sub

Private Sub mnKh_Click() frmKh.Show vbModal End Sub

Private Sub mnNhap_Click() frmBaocaoNhap.Show vbModal End Sub

Private Sub mnNV_Click() frmNV.Show vbModal End Sub

Private Sub mnTh_Click() ' frmTh.Show vbModal End Sub

Private Sub Picture1_Click() End Sub

Danh sách nhân viên

Bao gồm các thông tin về nhân viên: -Mã nhân viên

-Hol tên đầy dủ của nhân viên -Ngày sinh

-Giới tính -Địa chỉ

-Trình độ nhân viên -Chuyên môn

-Điện thoại nếu có

Các thông tin của nhân viên có thể được sửa lại hoặc thêm mới,xóa nếu cần (adsbygoogle = window.adsbygoogle || []).push({});

Option Explicit

Dim Adding As Boolean Dim rs As ADODB.Recordset

Private Sub cmbMaTDo_DropDown()

Call FillCombo("Select TenTDo from TDo", cmbMaTDo) End Sub

Private Sub cmbMaCM_DropDown()

Call FillCombo("Select TenCM from CM", cmbMaCM) End Sub

Private Sub cmdMaCM_Click() frmCM.Show vbModal

End Sub

Private Sub cmdMaTDo_Click() frmTDo.Show vbModal

End Sub

Private Sub Form_Load()

Set rs = New ADODB.Recordset

rs.Open "Select * from NV order by MaNV asc", Conn, adOpenStatic, adLockOptimistic Set Grid1.DataSource = rs Call CenterMyForm(Me) Adding = False txtMaNV.Enabled = False txtDC.Enabled = False txtTenNV.Enabled = False txtDT.Enabled = False mskNS.Enabled = False cmbMaTDo.Enabled = False cmbMaCM.Enabled = False cmbGT.Enabled = False cmdLuu.Enabled = False cmdBoqua.Enabled = False cmdKetiep.Enabled = True cmdQuaylui.Enabled = True

cmbGT.AddItem "Nam" cmbGT.AddItem "Nữ" End Sub

Private Sub CmdBoqua_Click() Adding = False Call ResetValues cmdBoqua.Enabled = False cmdThem.Enabled = True cmdLuu.Enabled = False cmdXoa.Enabled = True cmdQuaylui.Enabled = True cmdKetiep.Enabled = True Call DisplayData txtMaNV.Enabled = False End Sub

Private Sub CmdDong_Click() If Adding Then

If MsgBox("Ban co muon ghi lai du lieu vua nhap khong?", vbYesNo + vbInformation, "Thong bao") = vbYes Then

Call CmdLuu_Click Exit Sub End If End If Adding = False Unload Me End Sub

Private Sub CmdLuu_Click() Dim s As String

If Len(Trim(txtMaNV.Text)) = 0 Then

MsgBox "Ban phai nhap ma Nhan vien!", vbInformation, "Thong bao" txtMaNV.SetFocus

Exit Sub End If

'Kiem tra khoa xem da co chua neu chua co thi cho phep ghi vao If rs.RecordCount <> 0 Then

s = "Select MaNV from NV where MaNV='" & Trim(txtMaNV.Text) & "'"

If CheckKey(s) And Adding Then

MsgBox " Ma Nhan vien nay da co, ban phai nhap ma khac!", vbOKOnly, "Thong bao"

txtMaNV.SetFocus txtMaNV.Text = "" Exit Sub End If End If If Len(Trim(txtTenNV.Text)) = 0 Then

MsgBox "Ban phai nhap ten Nhan vien!", vbInformation, "Thong bao" txtTenNV.SetFocus

Exit Sub End If

If Len(Trim(txtDC.Text)) = 0 Then (adsbygoogle = window.adsbygoogle || []).push({});

MsgBox "Ban phai nhap Dia chi!", vbInformation, "Thong bao" txtDC.SetFocus

Exit Sub End If

If Len(Trim(txtDT.Text)) = 0 Then

If MsgBox("Nhan vien nay co So Dien thoai lien lac khong?", vbYesNo, "Luu y") = vbNo Then

txtDT.Text = "(Không có)" Else

MsgBox "Ban phai nhap So dien thoai!", vbInformation, "Thong bao" txtDT.SetFocus Exit Sub End If End If If Len(Trim(cmbMaTDo.Text)) = 0 Then

MsgBox "Ban phai nhap Ten Trinh do cua Nhan vien!", vbInformation, "Thong bao"

cmbMaTDo.SetFocus Exit Sub

End If

If Len(Trim(cmbMaCM.Text)) = 0 Then

MsgBox "Ban phai nhap Ten Chuyen mon cua Nhan vien!", vbInformation, "Thong bao"

cmbMaCM.SetFocus Exit Sub

End If

If Len(Trim(cmbGT.Text)) = 0 Then

MsgBox "Ban phai nhap Gioi tinh cua Nhan vien!", vbInformation, "Thong bao"

cmbGT.SetFocus Exit Sub

End If

If mskNS.Text = "__/__/__" Then

MsgBox "Ban phai nhap vao Ngay sinh cua Nhan vien!", vbInformation, "Thong bao"

mskNS.SetFocus Exit Sub

End If

If Not IsDate(mskNS.Text) Then

MsgBox "Moi ban nhap lai Ngay sinh!", vbInformation, "Thong bao" mskNS.SetFocus mskNS.Mask = "##/##/##" mskNS.Text = "__/__/__" Exit Sub End If With rs If Adding Then .AddNew !MaNV = txtMaNV.Text !TenNV = txtTenNV.Text

!MaTDo = GetFieldValues("Select MaTDo from TDo where TenTDo='" & cmbMaTDo.Text & " ' ")

!MaCM = GetFieldValues("Select MaCM from CM where TenCM='" & cmbMaCM.Text & " ' ")

!NS = mskNS.Text !GT = cmbGT.Text !DC = txtDC.Text !DT = txtDT.Text Else !TenNV = txtTenNV.Text

!MaTDo = GetFieldValues("Select MaTDo from TDo where TenTDo='" & cmbMaTDo.Text & " ' ")

!MaCM = GetFieldValues("Select MaCM from CM where TenCM='" & cmbMaCM.Text & " ' ")

!NS = mskNS.Text !GT = cmbGT.Text !DC = txtDC.Text !DT = txtDT.Text End If .Update End With Adding = False cmdXoa.Enabled = True cmdThem.Enabled = True cmdBoqua.Enabled = False cmdKetiep.Enabled = False cmdQuaylui.Enabled = True cmdLuu.Enabled = False txtMaNV.Enabled = False End Sub

Private Sub Cmdketiep_Click() On Error GoTo errs (adsbygoogle = window.adsbygoogle || []).push({});

cmdQuaylui.Enabled = True cmdLuu.Enabled = True If Not rs.EOF Then rs.MoveNext Else

MsgBox "Day la ho so cuoi cung!", vbInformation, "Thong bao" rs.MoveLast cmdKetiep.Enabled = False End If Call DisplayData txtMaNV.Enabled = False errs: End Sub

Private Sub Cmdquaylui_Click() On Error GoTo errs

cmdKetiep.Enabled = True cmdLuu.Enabled = True If Not rs.BOF Then

rs.MovePrevious Else

MsgBox "Day la ho so dau tien", vbInformation, "Thong bao" rs.MoveFirst cmdQuaylui.Enabled = False End If Call DisplayData txtMaNV.Enabled = False errs: End Sub

Private Sub CmdThem_Click() cmdXoa.Enabled = False cmdBoqua.Enabled = True cmdLuu.Enabled = True cmdKetiep.Enabled = False cmdQuaylui.Enabled = False txtTenNV.Enabled = True txtDC.Enabled = True txtDT.Enabled = True mskNS.Enabled = True cmbGT.Enabled = True cmbMaTDo.Enabled = True cmbMaCM.Enabled = True If Adding Then Call CmdLuu_Click Exit Sub End If Adding = True Call ResetValues txtMaNV.Enabled = True txtMaNV.SetFocus End Sub

Private Sub Cmdxoa_Click()

Dim khanh As ADODB.Recordset Set khanh = New ADODB.Recordset

khanh.Open "Select MaNV from HDN ", Conn, adOpenStatic, adLockOptimistic

With rs

If .RecordCount <> 0 Then

If MsgBox("Ban co muon xoa ban ghi nay khong", vbYesNo, "Thong bao") = vbYes Then

If khanh.RecordCount <> 0 Then khanh.MoveFirst

Do While (Not khanh.EOF)

If khanh!MaNV = rs!MaNV Then

MsgBox "Ban ghi nay dang duoc dung tai bang HDN, khong xoa duoc!", vbInformation, "Thong bao"

Exit Sub End If

khanh.MoveNext Loop

khanh.MoveLast

If khanh!MaNV = rs!MaNV Then

MsgBox "Ban ghi nay dang duoc dung tai bang HDN, khong xoa duoc!", vbInformation, "Thong bao"

Exit Sub End If

End If

khanh.Open "Select MaNV from HDB ", Conn, adOpenStatic, adLockOptimistic

If khanh.RecordCount <> 0 Then khanh.MoveFirst

Do While (Not khanh.EOF)

If khanh!MaNV = rs!MaNV Then

MsgBox "Ban ghi nay dang duoc dung tai bang HDB, khong xoa duoc!", vbInformation, "Thong bao"

Exit Sub End If (adsbygoogle = window.adsbygoogle || []).push({});

khanh.MoveNext Loop

khanh.MoveLast

If khanh!MaNV = rs!MaNV Then

MsgBox "Ban ghi nay dang duoc dung tai bang HDB, khong xoa duoc!", vbInformation, "Thong bao"

Exit Sub End If

.Delete

Call ResetValues End If

Else

MsgBox "Khong con ban ghi nao ca!", vbInformation, "Thong bao"

Exit Sub End If End With End Sub

Private Sub Form_Unload(Cancel As Integer) If Adding Then

If MsgBox("Ban co muon ghi lai ban ghi vua nhap khong?", vbYesNo + vbInformation, "Thong bao") = vbYes Then

Call CmdLuu_Click Cancel = True Exit Sub End If End If Cancel = False End Sub Sub ResetValues() txtMaNV.Text = "" txtTenNV.Text = "" txtDC.Text = "" txtDT.Text = "" cmbMaTDo.Text = "" cmbMaCM.Text = "" cmbGT.Text = "" mskNS.Mask = "##/##/##" mskNS.Text = "__/__/__" End Sub Sub DisplayData() With rs

If .EOF Or .BOF Then Exit Sub txtMaNV.Text = !MaNV

cmbMaTDo.Text = GetFieldValues("Select TenTDo from TDo where MaTDo='" & !MaTDo & "'")

cmbMaCM.Text = GetFieldValues("Select TenCM from CM where MaCM='" & !MaCM & "'")

cmbGT.Text = !GT mskNS.Mask = "" mskNS.Text = !NS txtDC.Text = !DC txtDT.Text = !DT End With End Sub

Private Sub Grid1_Click() cmdLuu.Enabled = True cmdKetiep.Enabled = True cmdQuaylui.Enabled = True If Adding Then

If MsgBox("Dang o che do them moi, Chon OK de hien thi du lieu", vbOKCancel + vbInformation, "Thong bao") = vbCancel Then

Exit Sub Else Adding = False cmdBoqua.Enabled = False cmdThem.Enabled = True End If End If txtMaNV.Enabled = False Call DisplayData End Sub

Private Sub Grid1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then

Call Grid1_Click End If

End Sub

Danh sách khách hàng:

Bao gồm các thông tin về khach hàng như: -Mã khách hàng

-Tên khách hàng

-Địa chỉ của khách hàng -Điện thoại nếu có

Các thông tin về khách hàng cũng có thể sửa đổi, thêm mới hoặc xóa thông tin tùy theo yêucầu của người sử dụng

Code của Danh sách khách hàng Option icit

Dim Adding As Boolean Dim rs As ADODB.Recordset Private Sub Form_Load() (adsbygoogle = window.adsbygoogle || []).push({});

Set rs = New ADODB.Recordset

rs.Open "Select * from Kh order by MaKh asc", Conn, adOpenStatic, adLockOptimistic

Set Grid1.DataSource = rs Call CenterMyForm(Me)

Adding = False txtMaKh.Enabled = False txtDC.Enabled = False txtTenKh.Enabled = False txtDT.Enabled = False cmdLuu.Enabled = False cmdBoqua.Enabled = False cmdKetiep.Enabled = True cmdQuaylui.Enabled = True End Sub

Private Sub CmdBoqua_Click() Adding = False Call ResetValues cmdBoqua.Enabled = False cmdThem.Enabled = True cmdLuu.Enabled = False cmdXoa.Enabled = True cmdQuaylui.Enabled = True cmdKetiep.Enabled = True Call DisplayData txtMaKh.Enabled = False End Sub

Private Sub CmdDong_Click() If Adding Then

If MsgBox("Ban co muon ghi lai du lieu vua nhap khong?", vbYesNo + vbInformation, "Thong bao") = vbYes Then

Call CmdLuu_Click Exit Sub End If End If Adding = False Unload Me End Sub

Private Sub CmdLuu_Click() Dim s As String

If Len(Trim(txtMaKh.Text)) = 0 Then

txtMaKh.SetFocus Exit Sub

End If

'Kiem tra khoa xem da co chua neu chua co thi cho phep ghi vao If rs.RecordCount <> 0 Then

s = "Select MaKh from Kh where MaKh='" & Trim(txtMaKh.Text) & "'"

If CheckKey(s) And Adding Then

MsgBox " Ma Khach nay da co, ban phai nhap ma khac!", vbOKOnly, "Thong bao"

txtMaKh.SetFocus txtMaKh.Text = "" Exit Sub End If End If If Len(Trim(txtTenKh.Text)) = 0 Then

MsgBox "Ban phai nhap ten Khach!", vbInformation, "Thong bao" txtTenKh.SetFocus

Exit Sub End If

If Len(Trim(txtDT.Text)) = 0 Then

If MsgBox("Khach nay co So Dien thoai lien lac khong?", vbYesNo, "Luu y") = vbNo Then

txtDT.Text = "(Không có)" Else

MsgBox "Ban phai nhap So dien thoai!", vbInformation, "Thong bao" txtDT.SetFocus Exit Sub End If End If If Len(Trim(txtDC.Text)) = 0 Then

If MsgBox("Khach nay co de lai dia chi khong?", vbYesNo, "Luu y") = vbNo Then

txtDC.Text = "(Không có)" Else

MsgBox "Ban phai nhap Dia chi!", vbInformation, "Thong bao" txtDC.SetFocus

Exit Sub End If

End If With rs If Adding Then .AddNew !MaKh = txtMaKh.Text !TenKh = txtTenKh.Text !DC = txtDC.Text !DT = txtDT.Text Else !TenKh = txtTenKh.Text !DC = txtDC.Text !DT = txtDT.Text End If .Update End With Adding = False cmdXoa.Enabled = True cmdThem.Enabled = True cmdBoqua.Enabled = False cmdKetiep.Enabled = False cmdQuaylui.Enabled = True cmdLuu.Enabled = False txtMaKh.Enabled = False End Sub

Private Sub Cmdketiep_Click() On Error GoTo errs

cmdQuaylui.Enabled = True cmdLuu.Enabled = True If Not rs.EOF Then rs.MoveNext Else (adsbygoogle = window.adsbygoogle || []).push({});

MsgBox "Day la ho so cuoi cung!", vbInformation, "Thong bao" rs.MoveLast cmdKetiep.Enabled = False End If Call DisplayData txtMaKh.Enabled = False errs:

End Sub

Private Sub Cmdquaylui_Click() On Error GoTo errs

cmdKetiep.Enabled = True cmdLuu.Enabled = True If Not rs.BOF Then rs.MovePrevious Else

MsgBox "Day la ho so dau tien", vbInformation, "Thong bao" rs.MoveFirst cmdQuaylui.Enabled = False End If Call DisplayData txtMaKh.Enabled = False errs: End Sub

Private Sub CmdThem_Click() cmdXoa.Enabled = False cmdBoqua.Enabled = True cmdLuu.Enabled = True cmdKetiep.Enabled = False cmdQuaylui.Enabled = False txtTenKh.Enabled = True txtDC.Enabled = True txtDT.Enabled = True If Adding Then Call CmdLuu_Click Exit Sub End If Adding = True Call ResetValues txtMaKh.Enabled = True txtMaKh.SetFocus End Sub

Private Sub Cmdxoa_Click()

Dim khanh As ADODB.Recordset Set khanh = New ADODB.Recordset

khanh.Open "Select MaKh from HDB ", Conn, adOpenStatic, adLockOptimistic

cmdLuu.Enabled = False With rs

If .RecordCount <> 0 Then

If MsgBox("Ban co muon xoa ban ghi nay khong", vbYesNo, "Thong bao") = vbYes Then

If khanh.RecordCount <> 0 Then khanh.MoveFirst

Do While (Not khanh.EOF)

If khanh!MaKh = rs!MaKh Then

MsgBox "Ban ghi nay dang duoc dung tai bang HDB, khong xoa duoc!", vbInformation, "Thong bao"

Exit Sub End If

khanh.MoveNext Loop

khanh.MoveLast

If khanh!MaKh = rs!MaKh Then

MsgBox "Ban ghi nay dang duoc dung tai bang HDB, khong xoa duoc!", vbInformation, "Thong bao"

Một phần của tài liệu xây dựng phần mềm quản lý thuốc cho công ty cổ phần dược phẩm Nam Hà.DOC (Trang 42 - 83)