c. Sơ đồ quan hệ thực thể
3.2.6. Một số thuật toỏn cơ bản trong chương trỡnh
THUẬT TOÁN ĐĂNG NHẬP VÀO HỆ THỐNG
BĐ
MỞ FORM ĐĂNG NHẬP KIỂM TRA TấN NSD VÀ MẬT KHẨU
KT ĐÚNG Sai NHẬP TấN VÀ MẬT KHẨU VÀO CHƯƠNG TRèNH THễNG BÁO NHẬP SAI Cể NHẬP LẠI KHễNG Sai ĐÚNG
THUẬT TOÁN CẬP NHẬT DỮ LIỆU ĐÚNG sai Sai ĐÚNG sai ĐÚNG BĐ MỞ FORM CẬP NHẬT THấM 1 BẢN GHI TRẮNG NHẬP DỮ LIỆU KIỂM TRA DỮ LIỆU?
LƯU BẢN GHI
KT
TIẾP TỤC?
THễNG BÁO DỮ LIỆU NHẬP SAI NHẬP LẠI ?
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho ĐÚNG BĐ CHỌN BÁO CÁO NHẬP ĐIỀU KIỆN THỰC HIỆN TèM KIẾM Cể THẤY DỮ LIỆU? IN BÁO CÁO sai KT THễNG BÁO KHễNG Cể DỮ LIỆU
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho KẾT LUẬN
Trong đồ ỏn tốt nghiệp này em đó giới thiệu cỏc thụng tin tổng quan về cơ sở thực tập, trỡnh bày một cỏch khỏi quỏt cỏc khỏi niệm cơ bản về hệ thống thụng tin, cơ sở dữ liệu, sự hiệu quả trong việc ứng dụng cụng nghệ thụng tin trong việc quản lý, về quỏ trỡnh phõn tớch và thiết kế hệ thống thụng tin. Đề tài trỡnh bày một cỏch chi tiết toàn bộ quỏ trỡnh phõn tớch và thiết kế: “Chương
trỡnh quản lý hàng hoỏ vật tư lưu kho".
Đề tài đó thu được một số kết quả tốt như chương trỡnh cú tớnh bảo mật, cú khả năng sao lưu và phục hồi dữ liệu, nhập tồn kho, viết được cỏc phiếu xuất, phiếu nhập, xem tồn kho, xem được thẻ kho, tổng hợp được hàng xuất và hàng nhập của đơn vị.
Do thời gian hạn chế của một đề tài tốt nghiệp và hạn chế về kiến thức nờn hệ thống cũn rất nhiều thiếu xút, chưa thể đỏp ứng được tất cả cỏc nhu cầu của người sử dụng.Vỡ vậy, em hy vọng trong thời gian tới sẽ cú điều kiện để nghiờn cứu và thực hiện tốt hơn chương trỡnh này.
Phương hướng phỏt triển: Đề tài cú thể phỏt triển thờm chức năng như cho phộp quản lý vốn ngõn sỏch, cho phộp xuất và nhập theo cỏc giỏ khỏc nhau, quản lý tài chớnh, hoỏ đơn, hợp đồng,…
Để hoàn thành được luận văn tốt nghiệp này, một lần nữa em xin gửi lời cảm ơn tới thầy giỏo Nguyễn Bỏ Tiến đó hướng dẫn, chỉ bảo tận tỡnh cho em trong quỏ trỡnh thực hiện đồ ỏn.
Em xin chõn thành cảm ơn tới cỏc thầy cụ trong khoa Cụng Nghệ Thụng Tin - ĐHDL Phương Đụng đó giảng dạy em trong 5 năm học đại học giỳp em cú được những kiến thức khoa học, những tư duy cho cụng việc sau này.
Em xin chõn thành cảm ơn!
Hà Nội thỏng 4 năm 2006 Sinh viờn
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho
PHỤ LỤC Mó nguồn của modul kết nối.
Public Cn As New ADODB.Connection Public rs As New ADODB.Recordset Public f_user, f_group As String Public flag_pass As String Public key As String
Public Sub connect_database() Dim Str As String
Dim db_Field Name
db_Field Name = App.Path & "\db1.mdb"
Str = "provider=Microsoft.jet.OLEDB.4.0;data source=" & db_Field Name & ""
DE_HH.CN_HH.ConnectionString =
"Provider=Microsoft.jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & db_Field Name & ""
DE_HH.CN_HH.Open Cn.Open Str
End Sub
Hàm kiểm tra sự tồn tại của vật tư.
Public Function Ktra_ExistVT(mSTT_REC As Integer, mMa_VT As String, mCL As String, mDG As Double) As Boolean
Dim Rs1 As ADODB.Recordset Set Rs1 = New ADODB.Recordset Ktra_ExistVT = False
Rs1.Open "SELECT * FROM CTVT WHERE STT_REC=" & Str(mSTT_REC) & " AND MA_VT='" & mMa_VT & "' AND CL='" & mCL & "' AND DG=" & Str(mDG), Cn, adOpenDynamic, adLockReadOnly
If Not Rs1.EOF Then Ktra_ExistVT = True End If Rs1.Close Set Rs1 = Nothing End Function Hàm kiểm tra số chứng từ.
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho
Public Function Ktra_SoCT(mSO_CT As String, mMA_CT As String) As Boolean
Dim Rs1 As ADODB.Recordset Set Rs1 = New ADODB.Recordset Ktra_SoCT = False
Rs1.Open "SELECT * FROM CTCHUNG WHERE SO_CT='" & mSO_CT & "' AND MA_CT='" & mMA_CT & "'", Cn, adOpenDynamic, adLockReadOnly
If Not Rs1.EOF Then Ktra_SoCT = True End If
Rs1.Close
Set Rs1 = Nothing End Function
Mó nguồn trong Form sao lưu dữ liệu
Private Sub Drive1_Change() On Error GoTo loi
Dir1.Path = Drive1.Drive exit_loi:
Exit Sub loi:
MsgBox "Lỗi " & Err.Number & ": " & Err.Description, vbCritical, "Cảnh bỏo" Drive1.Drive = Left(App.Path, 2)
Me.Dir1.Path = App.Path Resume exit_loi
End Sub
Private Sub SSCommand1_Click() 'On Error Resume Next
On Error GoTo loi
If MsgBox("Bạn cú thực sự muốn sao lưu khụng ?", vbQuestion + vbYesNo, "Thụng bỏo") = vbYes Then
Screen.MousePointer = vbHourglass Else Exit Sub End If 'MsgBox Dir1.Path
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho If rs Is Nothing Then Else ' rs.Close Set rs = Nothing End If DE_HH.CN_HH.Close Cn.Close Set Cn = Nothing Dim ngay As String
ngay = "QuanLyHangHoa" ngay = ngay & ".MDB" 'MsgBox ngay & ".mdb"
' DBEngine.CompactDatabase App.Path & "\db1.mdb", Dir1.Path & "\" & ngay
Dim sSource As String
sSource = App.Path & "\db1.mdb" Dim sDes As String
sDes = Dir1.Path & "\" & ngay 'MsgBox sSource
'MsgBox sDes
Dim fso As New FileSystemObject
fso.CopyFile App.Path & "\db1.mdb", Dir1.Path & "\" & ngay connect_database
MsgBox "Đó sao lưu thành cụng !!!", vbInformation, "Thụng bỏo" Screen.MousePointer = vbNormal
exit_loi:
Exit Sub loi:
MsgBox "Lỗi " & Err.Number & ":" & Err.Description, vbCritical, "Cảnh bỏo" connect_database
Screen.MousePointer = vbNormal Resume exit_loi
End Sub
Private Sub SSCommand2_Click() Unload Me
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho Private Sub cboMaVatTu_Click()
Dim mRs As ADODB.Recordset Set mRs = New ADODB.Recordset Me.combochatluong.Clear
Me.comdongia.Clear
mRs.Open "SELECT ma_cl,ten_cl FROM chatluong where makho ='" & Trim(frmTheKho.commakho.ColText) & "' AND MA_VT ='" & Trim(frmTheKho.cboMaVatTu.ColText) & "' group by ma_cl,ten_cl", Cn, adOpenDynamic, adLockReadOnly
'Me.combochatluong.Clear Do While Not mRs.EOF
combochatluong.AddItem Trim(mRs!ma_cl) & vbTab & Trim(mRs! TEN_cl) mRs.MoveNext Loop mRs.Close Set mRs = Nothing End Sub
Private Sub cmdcancel_Click() Unload Me
End Sub
Private Sub cmdIn_Click()
If Len(commakho.Text) = 0 Then
MsgBox "Chưa chọn mó kho !", vbCritical, "Chỳ ý !" commakho.SetFocus
Exit Sub End If
If Len(cboMaVatTu.Text) = 0 Then
MsgBox "Chưa chọn vật tư!", vbCritical, "Chỳ ý !" cboMaVatTu.SetFocus
Exit Sub End If
If Len(combochatluong.Text) = 0 Then
MsgBox "Chưa chọn chất lượng!", vbCritical, "Chỳ ý !" combochatluong.SetFocus
Exit Sub End If
If Len(comdongia.Text) = 0 Then
MsgBox "Chưa chọn đơn giỏ!", vbCritical, "Chỳ ý !" comdongia.SetFocus
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho Exit Sub
End If
TheKho frmTheKho.cboMaVatTu.ColText,
frmTheKho.combochatluong.ColText, Me.comdongia.Text '" & Trim(frmTON_DAU.comMAKHO.ColText) & "' Dim rpt As New arTheKho
Set rpt.DataControl1.Connection = Cn
rpt.DataControl1.Source = "Select MaVT,ChatLuong,NgayNhap,NgayXuat,DonViXuat,DonViNhap,LuongXuat,Lu ongNhap,LuongTon from TheKho where mavt ='" & Trim(frmTheKho.cboMaVatTu.ColText) & "' and ChatLuong =" & Trim(frmTheKho.combochatluong.ColText) & ""
' rpt.MaVT.DataField = "MaVT" Dim rs As New ADODB.Recordset
rs.Open "Select MaVT,DonViTinh,ChatLuong from Thekho where MaVT ='" & Trim(frmTheKho.cboMaVatTu.ColText) & "'", Cn, adOpenStatic, adLockReadOnly If rs.RecordCount > 0 Then rpt.txttenkho.Text = frmTheKho.commakho.Text rpt.MaVT.Caption = frmTheKho.cboMaVatTu.ColText rpt.DonViTinh.Caption = rs("DonViTinh") rpt.ChatLuong.Caption = IIf(frmTheKho.combochatluong.ColText = "1", "Tốt", IIf(Me.combochatluong.ColText = "2", "Trung bỡnh", "Kộm"))
' rpt.ChatLuong.Caption = IIf(Me.txtChatLuong.Text = "1", "Tot", IIf(Me.txtChatLuong.Text = "2", "Tb", "Kem"))
Set rs = New ADODB.Recordset
rs.Open "Select ten_vt from dm_vt where ma_vt ='" & Trim(frmTheKho.cboMaVatTu.ColText) & "'", Cn, adOpenStatic, adLockReadOnly
If rs.RecordCount > 0 Then rpt.TenVT.Caption = rs(0) Set rs = New ADODB.Recordset
rs.Open "Select sl from Ton_dau where Ma_Vt ='" & Trim(frmTheKho.cboMaVatTu.ColText) & "' and dg =" & Trim(frmTheKho.comdongia.Text) & "", Cn, adOpenStatic, adLockReadOnly If rs.RecordCount > 0 Then
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho Else
rpt.TonDau.Caption = 0 End If
Set rs = New ADODB.Recordset
rs.Open "Select LuongTon from thekho where MaVt ='" & Trim(frmTheKho.cboMaVatTu.ColText) & "'", Cn, adOpenStatic, adLockReadOnly
If rs.RecordCount > 0 Then rs.MoveLast: rpt.TonCuoi.Caption = rs(0) rpt.DonGia.Caption = Me.comdongia.Text End If rpt.NgayNhap.DataField = "NgayNhap" rpt.NgayXuat.DataField = "NgayXuat" rpt.DVN.DataField = "DonViNhap" rpt.DVX.DataField = "DonViXuat" rpt.LuongNhap.DataField = "LuongNhap" rpt.LuongXuat.DataField = "LuongXuat" rpt.LuongTon.DataField = "LuongTon"
Dim fPreview As New frmPreview fPreview.RunReport rpt fPreview.Show 1 Set rpt = Nothing Unload fPreview End Sub
Private Sub cmdok_Click()
If Len(commakho.Text) = 0 Then
MsgBox "Chưa chọn mó kho !", vbCritical, "Chỳ ý !" commakho.SetFocus
Exit Sub End If
If Len(cboMaVatTu.Text) = 0 Then
MsgBox "Chưa chọn vật tư!", vbCritical, "Chỳ ý !" cboMaVatTu.SetFocus
Exit Sub End If
If Len(combochatluong.Text) = 0 Then
MsgBox "Chưa chọn chất lượng!", vbCritical, "Chỳ ý !" combochatluong.SetFocus
Exit Sub End If
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho If Len(comdongia.Text) = 0 Then
MsgBox "Chưa chọn đơn giỏ!", vbCritical, "Chỳ ý !" comdongia.SetFocus Exit Sub End If TheKho frmTheKho.cboMaVatTu.ColText, frmTheKho.combochatluong.ColText, Me.comdongia.Text frmXemTheKho.Show 1 End Sub
Private Sub combochatluong_Click() 'add don gia
'Me.comdongia.Clear
Dim mRs As New ADODB.Recordset Dim s As String
s = "Select DG from viewThe_khott where ma_vt ='" & Me.cboMaVatTu.ColText & "' and cl='" & Me.combochatluong.ColText & "' and Makho ='" & Me.commakho.ColText & "' group by dg"
Set mRs = New ADODB.Recordset
mRs.Open s, Cn, adOpenStatic, adLockReadOnly If mRs.RecordCount > 0 Then
mRs.MoveFirst ' Me.comdongia.Clear
Me.comdongia.Text = mRs(0) ' Me.combochatluong.Clear Do While Not mRs.EOF
Me.comdongia.AddItem mRs(0) mRs.MoveNext Loop End If mRs.Close End Sub
Private Sub comMAKHO_Click() 'load danh muc vat tu theo kho Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Me.cboMaVatTu.Clear
Me.combochatluong.Clear Me.comdongia.Clear
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho
rs.Open "Select ma_vt,ten_vt,viewthe_khott.makho from viewthe_khott where makho ='" & Trim(frmTheKho.commakho.ColText) & "' group by makho,ma_vt,ten_vt", Cn, adOpenStatic, adLockOptimistic
If rs.RecordCount > 0 Then rs.MoveFirst
'Me.cboMaVatTu.Clear Do While Not rs.EOF
Me.cboMaVatTu.AddItem rs(0) & vbTab & rs(1) rs.MoveNext Loop End If rs.Close Set rs = Nothing
' LOAD DON GIA End Sub
Private Sub Form_Load() ' TheKho
Dim rs As New ADODB.Recordset 'load danh muc kho
Set rs = New ADODB.Recordset
rs.Open "Select MaKho,TenKHo from viewThe_KhoTT group by MaKho,TenKho order by MaKho,TenKho", Cn, adOpenStatic, adLockReadOnly
If rs.RecordCount > 0 Then rs.MoveFirst
Do While Not rs.EOF
Me.commakho.AddItem rs(0) & vbTab & rs(1) rs.MoveNext Loop End If rs.Close Set rs = Nothing 'load chatluong
' Set mRs = New ADODB.Recordset '
' mRs.Open "SELECT ma_cl,ten_cl FROM chatluong where makho ='" & Trim(frmTheKho.commakho.ColText) & "' AND MA_VT ='" &
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho
Trim(frmTheKho.cboMaVatTu.ColText) & "' ", Cn, adOpenDynamic, adLockReadOnly
' Do While Not mRs.EOF
' combochatluong.AddItem Trim(mRs!ma_cl) & vbTab & Trim(mRs! TEN_cl)
' '& vbTab & Trim(mRs!TEN_TCX) ' mRs.MoveNext ' Loop ' mRs.Close ' Set mRs = Nothing ' End Sub
Mó nguồn trong Form phục hồi dữ liệu
Private Sub cmdcancel_Click() Unload Me
End Sub
Private Sub cmdok_Click() On Error GoTo loi
MsgBox "Bạn nờn sao lưu dữ liệu trước khi khụi phục !!!", vbCritical, "Cảnh bỏo"
If MsgBox("Dữ liệu sẽ bị ghi đố. Bạn cú chắc chắn khụi phục hay khụng ?", vbQuestion + vbYesNo, "Khụi phục dữ liệu") = vbYes Then
'huy ket noi toi CSDL
Screen.MousePointer = vbHourglass DE_HH.CN_HH.Close
Cn.Close
'Kill App.Path & "\db1.mdb" 'xoa file db1.mdb Dim fso As New FileSystemObject
Dim s As String s = Dir1.Path & "\" s = s & List1.Text
fso.CopyFile s, App.Path & "\db1.mdb", True
MsgBox "Đó khụi phục thành cụng !!!", vbInformation, "Thụng bỏo" Screen.MousePointer = vbNormal
connect_database 'khoi tao ket noi toi CSDL End If
exit_loi: Exit Sub loi:
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho
MsgBox "Lỗi " & Err.Number & ":" & Err.Description, vbCritical, "Cảnh bỏo"
connect_database
Screen.MousePointer = vbNormal End Sub
Private Sub Dir1_Change() 'File1.Path = Dir1.Path On Error GoTo loi
Dim fso As New FileSystemObject Dim fil As file
Dim fol As Folder
Set fol = fso.GetFolder(Dir1.Path) List1.Clear
For Each fil In fol.Files
If UCase(Right(fil.Field Name, 4)) = ".MDB" Then List1.AddItem fil.Field Name
End If Next exit_loi: Exit Sub loi:
MsgBox "Lỗi " & Err.Number & ":" & Err.Description, vbCritical, "Cảnh bỏo"
connect_database End Sub
Private Sub Drive1_Change() On Error GoTo loi
Dir1.Path = Drive1.Drive exit_loi:
Exit Sub loi:
MsgBox "Lỗi " & Err.Number & ": " & Err.Description, vbCritical, "Cảnh bỏo" Drive1.Drive = Left(App.Path, 2) Me.Dir1.Path = App.Path Resume exit_loi End Sub
Mó nguồn trong Form Viết phiếu nhập.
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho Dim State As String
Public mSTT_REC As Integer Dim mSO_CT As String Private Sub cmdADD_Click() State = "ADD" cmdEDIT.Caption = "&Ghi" cmdDEL.Caption = "&Hũy" cmdDEL.Enabled = True cmdEDIT.Enabled = True cmdADD.Enabled = False cmdCANDOI.Enabled = False mSO_CT = "" Call EmptyItem Call LockItem(False)
txtNGAY_CT.Value = Format(Date, "dd/mmm/yyyy") txtSO_CT.SetFocus cmdPREV.Enabled = False cmdNEXT.Enabled = False cmdfirst.Enabled = False cmdlast.Enabled = False comMAKHO.Enabled = False cmdIN.Enabled = False cmdADD_VT.Enabled = False cmdEDIT_VT.Enabled = False cmdDEL_VT.Enabled = False End Sub
Private Sub cmdADD_VT_Click() frmRUOT_PN.State = "ADD" frmRUOT_PN.Show 1
End Sub
Private Sub cmdCANDOI_Click()
If MsgBox("Bạn thực sự muốn cõn đối vật tư trong kho!", vbOKCancel, "Chỳ ý !") = vbOK Then
Cn.Execute "DELETE * FROM CDTEMP" Cn.Execute "delete * from CDTEMP2" Cn.Execute "delete * from TON_KHO"
Cn.Execute "INSERT INTO CDTEMP(MAKHO,MA_VT,CL,SL_DAU,DG) SELECT MAKHO,MA_VT,CL,SL,DG FROM TON_DAU "
Cn.Execute "INSERT INTO
CDTEMP(MAKHO,MA_VT,CL,SL_NHAP,DG) SELECT
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho
Cn.Execute "INSERT INTO CDTEMP(MAKHO,MA_VT,CL,SL_XUAT,DG) SELECT MAKHO,MA_VT,CL,SL, DG from viewPSXUAT'"
Cn.Execute "INSERT INTO
CDTEMP2(MAKHO,MA_VT,CL,SL_DAU,SL_NHAP,SL_XUAT,DG) SELECT * FROM viewTONGHOP"
Cn.Execute "INSERT INTO TON_KHO(MAKHO,MA_VT,CL,SL,DG) SELECT * FROM viewTONKHO"
cmdCANDOI.Enabled = False End If
End Sub
Private Sub cmdDEL_Click() If State = "" Then
If MsgBox("Thực sự muốn xúa phiếu nhập này !", vbOKCancel, "Chỳ ý !") = vbOK Then
Cn.Execute "DELETE FROM CTVT WHERE STT_REC=" & Str(rs! Stt_Rec)
Cn.Execute "DELETE FROM CTCHUNG WHERE STT_REC=" & Str(rs!Stt_Rec)
rs.Requery
rs.Find "MAKHO='" & Trim(comMAKHO.ColText) & "'" cmdEDIT.Caption = "&Sửa phiếu"
cmdDEL.Caption = "&Xúaphiếu" cmdADD.Enabled = True Call LockItem(True) If rs.EOF Then Call EmptyItem cmdDEL.Enabled = False cmdEDIT.Enabled = False cmdIN.Enabled = False cmdADD_VT.Enabled = False cmdDEL_VT.Enabled = False cmdEDIT_VT.Enabled = False Else Call MovePhieu cmdDEL.Enabled = True cmdEDIT.Enabled = True cmdIN.Enabled = True End If End If Else State = ""
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho cmdDEL.Caption = "&Xúaphiếu"
cmdADD.Enabled = True Call LockItem(True) cmdADD.SetFocus
If rs.BOF And rs.EOF Then cmdDEL.Enabled = False cmdEDIT.Enabled = False cmdIN.Enabled = False cmdADD_VT.Enabled = False cmdDEL_VT.Enabled = False cmdEDIT_VT.Enabled = False Call EmptyItem Else cmdIN.Enabled = True Call MovePhieu End If cmdPREV.Enabled = True cmdNEXT.Enabled = True cmdfirst.Enabled = True cmdlast.Enabled = True comMAKHO.Enabled = True End If cmdCANDOI.Enabled = True End Sub
Private Sub cmdDEL_VT_Click()
If MsgBox("Thực sự muốn xúa khoản hàng này !", vbOKCancel, "Chỳ ý !") = vbOK Then
Cn.Execute "DELETE FROM CTVT WHERE STT_REC=" & Str(mSTT_REC) & " AND STT_KHOAN = " & Grid.TextMatrix(Grid.Row, 0) Call RuotPhieu(rs!Stt_Rec)
End If End Sub
Private Sub cmdEDIT_Click() Dim Ten_ND
Dim Sql As String Dim mDate As String If State = "" Then State = "EDIT"
cmdEDIT.Caption = "&Ghi" cmdDEL.Caption = "&Hũy" cmdDEL.Enabled = True
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho cmdEDIT.Enabled = True cmdADD.Enabled = False Call LockItem(False) mSO_CT = Trim(txtSO_CT.Text) txtSO_CT.Enabled = False cmdPREV.Enabled = False cmdNEXT.Enabled = False cmdfirst.Enabled = False cmdlast.Enabled = False comMAKHO.Enabled = False cmdIN.Enabled = False cmdADD_VT.Enabled = False cmdEDIT_VT.Enabled = False cmdDEL_VT.Enabled = False Else
If State = "ADD" Then
If Ktra_SoCT(Trim(txtSO_CT.Text), "PN") = True Then txtSO_CT.SetFocus
MsgBox "Trựng số chứng từ !", vbCritical, "Chỳ ý !" Exit Sub
End If
If txtSO_CT = "" Then
MsgBox "Chưa nhập số chứng từ !", vbCritical, "Chỳ ý !" txtSO_CT.SetFocus
Exit Sub End If End If
If txtNGAY_HH.Value <= txtNGAY_CT.Value Then
MsgBox " Ngày hết hạn nhập sai !", vbCritical, "Chỳ ý !" txtNGAY_HH.SetFocus
Exit Sub End If
If txtNGAY_HH.ValueIsNull Then
MsgBox "Ngày hết hạn khụng được để trống !", vbCritical, "Chỳ ý !" txtNGAY_HH.SetFocus
Exit Sub End If
If IsDate(txtNGAY_CT.Value) = False Then
MsgBox "Ngày chứng từ nhập sai !", vbCritical, "Chỳ ý !" txtNGAY_CT.SetFocus
Exit Sub End If
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho MsgBox "Chưa nhập tớnh chất nhập !", vbCritical, "Chỳ ý !" comMA_TCN.SetFocus
Exit Sub End If
If comMA_DVN.ListIndex = -1 Then
MsgBox "Chưa nhập đơn vị giao hàng !", vbCritical, "Chỳ ý !" comMA_DVN.SetFocus
Exit Sub End If
If State = "ADD" Then rs.AddNew
End If
rs!MA_CT = "PN"
rs!So_CT = UCase(Trim(txtSO_CT.Text))
rs!NGAY_CT = IIf(IsNull(txtNGAY_CT.Value), Null, Format(txtNGAY_CT.Value, "dd/mm/yyyy"))
rs!NGUOI_NHAP = Trim(f_user)
rs!MaKHO = Trim(comMAKHO.ColText) rs!MA_DVN = Trim(comMA_DVN.ColText) rs!MA_TCN = Trim(comMA_TCN.ColText)
rs!NGAY_HH = IIf(IsNull(txtNGAY_HH.Value), Null, Format(txtNGAY_HH.Value, "dd/mm/yyyy"))
rs.UpdateBatch adAffectAllChapters cmdEDIT.Caption = "&Sửa phiếu" cmdDEL.Caption = "&Xúa phiếu" cmdDEL.Enabled = True cmdEDIT.Enabled = True cmdADD.Enabled = True cmdIN.Enabled = True Call LockItem(True) rs.Requery cmdADD.SetFocus If State = "ADD" Then rs.MoveLast Call MovePhieu frmRUOT_PN.State = "ADD" frmRUOT_PN.Show 1 Else Call MovePhieu End If State = "" cmdPREV.Enabled = True cmdNEXT.Enabled = True
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho cmdfirst.Enabled = True cmdlast.Enabled = True comMAKHO.Enabled = True cmdIN.Enabled = True End If cmdCANDOI.Enabled = True End Sub
Private Sub cmdEDIT_VT_Click() frmRUOT_PN.State = "EDIT" frmRUOT_PN.Show 1
End Sub
Private Sub cmdEXIT_Click() Unload Me
End Sub
Private Sub cmdfirst_Click() If Not rs.EOF Then
rs.MoveFirst End If
If Not rs.EOF Then Call MovePhieu Else
If rs.BOF Then Exit Sub rs.MoveLast
Call MovePhieu End If
End Sub
Private Sub cmdIN_Click() reportPN.Show 1
End Sub
Private Sub cmdlast_Click() If Not rs.EOF Then
rs.MoveLast End If
If Not rs.EOF Then Call MovePhieu Else
If rs.BOF Then Exit Sub rs.MoveFirst
Call MovePhieu End If
End Sub
Private Sub cmdNEXT_Click() If Not rs.EOF Then
Phõn tớch và thiết kế phần mềm Quản lớ hàng hoỏ vật tư lưu kho rs.MoveNext
End If
If Not rs.EOF Then Call MovePhieu Else
If rs.BOF Then Exit Sub rs.MoveLast
Call MovePhieu End If
End Sub
Private Sub cmdPREV_Click() If Not rs.BOF Then
rs.MovePrevious End If
If Not rs.BOF Then Call MovePhieu End If
End Sub
Private Sub comMA_DVN_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then
comMA_TCN.SetFocus End If
End Sub
Private Sub comMA_DVN_LostFocus() On Error Resume Next
If comMA_DVN.ListIndex = -1 Then comMA_DVN.Text = ""
End If End Sub
Private Sub comMA_TCN_LostFocus()