LỜI MỞ ĐẦU
Sự ra đời và phát triển của công nghệ thông tin là một trong những thành tựu vĩ đại nhất của con người. Nhịp độ phát triển công nghệ thông tin đang là một vấn đề rất được các nghành khoa học, giáo dục, kinh tế, quan tâm. Nó hiện hữu với một tầm vóc hết sức mạnh mẽ, to lớn và ngày càng lớn mạnh thêm.
Tin học giữ vai trò đặc biệt trong hoạt động của con người, trong đời sống xã hội, trong khoa học kỹ thuật, trong sản xuất kinh doanh, trong quản lý khách hàng, trong các hoạt động mua bán hàng hoá . Ứng dụng tin học trong việc quản lý dường như không còn xa lạ với các doanh nghiệp, công ty hiện nay. Lợi ích mà các chương trình quản lý mang lại khiến người ta không thể phủ nhận tính hiệu quả của nó.
Trong nền sản xuất kinh doanh như hiện nay việc tin học hoá các hoạt động quản lý là rất cần thiết. Quản lý kho hàng hoá trong các doanh nghiệp là một công việc quan trọng, đòi hỏi bộ phận quản lý phải thực hiện nhiều nghiệp vụ phức tạp. Một doanh nghiệp muốn phát triển khả năng sản xuất, thông tin và khả năng đáp ứng nhu cầu khách hàng một cách hiệu quả nhất thì không thể thiếu một hệ thống thông tin hỗ trợ.
Tuy nhiên để có một phần mềm phù hợp với công tác quản lý, phù hợp với hoạt động của mỗi doanh nghiệp lại không phải là một vấn đề dễ dàng.
Sau một thời gian nghiên cứu, khảo sát hoạt động sản xuất kinh doanh tại Công ty TNHH Quốc Minh, em nhận thấy hệ thống quản lý vật tư, hàng hoá tại kho của Công ty rất phức tạp, khối lượng công việc nhiều đòi hỏi cần có một phần mềm chuyên biệt có khả năng quản lý chính xác, thống nhất, cung cấp báo cáo, thông tin một cách kịp thời cho những người sử dụng và quản trị hệ thống.
Chính từ sự cần thiết và hiệu quả của phần mềm quản lý vật tư hàng hoá trong các doanh nghiệp sản xuất kinh doanh hiện nay nên em quyết định chọn đề tài “Xây dựng phần mềm quản lý kho tại công ty TNHH Quốc Minh” làm đề tài cho chuyên đề thực tập của mình
Cấu trúc chuyên đề gồm:
Chương 1: Giới thiệu về các cơ sở thực tập và tổng quan đề tài tốt nghiệp
Chương 2: Phương pháp luận về xây dựng phần mềm quản lý kho cho công ty TNHH Quốc Minh.
Chương 3: Xây dựng phần mềm quản lý kho cho công ty TNHH Quốc Minh
Qua đây em xin chân thành cảm ơn sự quan tâm giúp đỡ tận tình của cô giáo Trân Thị Song Minh- Giảng viên Khoa Tin học kinh tế và anh Trần Bá Kim Ngọc - Trưởng phòng triển khai công ty cổ phần phần mềm kế toán Bravo người đã trực tiếp hướng dẫn em hoàn thành đề tài này.
Với sự nỗ lực của bản thân với những kiến thức đã học cùng sự nghiên cứu tài liệu em đã cố gắng hoàn thành chuyên đề một cách tốt nhất. Nhưng do thời gian và kiến thức còn nhiều hạn chế nên không thể tránh khỏi những thiếu sót. Vì vậy em rất mong được sự quan tâm, góp ý của các thầy cô, các bạn để chuyên đề được hoàn thiện một cách tốt nhất
Em xin chân thành cảm ơn!
Nếu có thắc mắc gì về bài viết bạn liên hệ tới số ***********
152 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2484 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Xây dựng phần mềm quản lý kho tại công ty TNHH Quốc Minh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
toán sửa bản ghi
3.3.5.3.Thuật toán xoá bản ghi
Bắt đầu
Kết thúc
Xoá bản ghi trong CSDL
Đồng ý
xoá?
Chọn danh mục
cần xoá
Hiện thông tin
cần xoá
S
Đ
Hình.3.14 .Thuật toán xoá bản ghi
3.3.5.4. Thuật toán tìm kiếm bản ghi
Bắt đầu
Tiếp tục tìm kiếm?
Hiện thông báo không
có dữ liệu thoả mãn
Kết thúc
Hiện đầy đủ dữ liệu
thoả mãn
Tồn tại?
Nhập điều kiện
tìm kiếm
Đ
S
Đ
S
Hình.3.15. Thuật toán tìm kiếm bản ghi
3.3.5.5. Thuật toán in báo cáo
Bắt đầu
Nhập điều
kiện báo cáo
Hiện báo cáo
Đồng ý
in?
S
Đ
In báo cáo
Kết thúc
Hình.3.16. Thuật toán in báo cáo
3.4.Thiết kế giao diện
Form Login
Để sử dụng chương trình quản lý vật tư, người dùng phải nhập mã người dùng và mật khẩu vào 2 ô Textbox trong Form Login. Sau khi nhập tên và mật khẩu chọn OK để đăng nhập vào chương trình. Nếu người dùng nhập đúng tên và mật khẩu Form Main của chương trình sẽ hiện ra và bắt đầu cho phép khai thác các chức năng của chương trình. Nếu nhập sai tên hoặc mật khẩu chương trình sẽ thông báo và yêu cầu người dùng nhập lại. Người dùng được phép nhập tối đa 3 lần, nếu không đúng tên và mật khẩu hệ thống sẽ tự thoát.
Form Main ( Giao diện chính của chương trình)
Tại Form Main bao gồm các chức năng của chương trình quản lý vật tư. Người sử dụng muốn khai thác chức năng nào sẽ kích chuột vào menu tương ứng trên thanh thực đơn
Form main bao gồm các chức năng: Hệ thống, Báo cáo, Phat sinh, Trợ giúp, Edit.
Menu Hệ thống
Menu hệ thống bao gồm các chức năng chinh: vào hệ thống, thay đổi mật khẩu, thoát khỏi chương trình. Người dùng muốn sử dụng chức năng nào thì kích chuột vào menu thể hiện chức năng đó.
Form thay đổi mật khẩu
Để thay đổi mật khẩu người dùng cần nhập mã nhân viên, mật khẩu cũ, mật khẩu mới và xác nhận lại mật khẩu mới vào các ô textbox tương ứng trên Form thay đổi mật khẩu. Sau đó chọn OK để đồng ý thay đổi thay đổi mật khẩu hoặc chọn Close để huỷ bỏ và thoát khỏi Form.
Khi người dùng không muốn sử dụng chương trình quản lý vật tư nữa thì có thể kích chuột vào menu thoát khỏi chương chình để đóng toàn bộ chương trình.
Ngoài các chức năng chính như trên thì menu hệ thống còn cung cấp các chức năng tiện ích khác như máy tính, lịch công tác…
c.Menu quản lý phát sinh
Menu này quản lý tất cả các danh mục của chương trình như danh mục khách hàng, danh mục kho, danh mục vật tư hàng hoá, danh mục mã hàng và cho phép cập nhật các phiếu nhập kho, xuất kho cũng như vào số dư vật tư hàng hoá với các thao tác thêm mới, sửa, xoá, tìm hay in phiếu xuất nhập.
Form danh mục vật tư hàng hoá
Form danh mục vật tư hàng hoá cho phép người dùng quản lý và cập nhật vật tư hàng hoá với các nút chức năng chính như:
Thêm: khi muốn thêm mới một vật tư hàng hoá người dùng chỉ cần gõ mã số, tên vật tư và đơn vị tính vào 3 ô textbox tương ứng trên Form rồi nhấn nút Thêm khi đó chương trình sẽ tự động cập nhật thông tin vào DataGrid phía trên.
Xoá: muốn xoá thông tin về một vật tư nào đó ta chọn khách hàng cần xoá rồi nhấn nút Xoá. Chương trình sẽ đưa ra thông báo “ Bạn có muốn xoá trường này không”, chọn Yes để xoá, chọn No để huỷ bỏ.
Print: muốn in danh sách vật tư hiện có trong cơ sở dữ liệu ta chọn Prỉnt để in trên màn hình.
Close: để kết thúc làm việc với Form danh mục vật tư ta chọn Close để đóng lại Form này và quay trở về Form Main.
Form danh mục khách hàng
Form danh mục khách hàng cho phép người dùng quản lý và cập nhật khách hàng là các nhà cung cấp của công ty với các nút chức năng chính như:
Thêm: khi muốn thêm mới một khách hàng người dùng chỉ cần gõ mã số và tên khách hàng vào 2 ô textbox tương ứng trên Form rồi nhấn nút Thêm khi đó chương trình sẽ tự động cập nhật thông tin vào DataGrid phía trên.
Xoá: muốn xoá thông tin về một khách hàng nào đó ta chọn khách hàng cần xoá rồi nhấn nút Xoá. Chương trình sẽ đưa ra thông báo “ Bạn có muốn xoá trường này không”, chọn Yes để xoá, chọn No để huỷ bỏ.
Print: muốn in danh sách khách hàng hiện có trong cơ sở dữ liệu ta chọn Prỉnt để in trên màn hình.
Close: để kết thúc làm việc với Form danh mục khách hàng ta chọn Close để đống lại Form này và quay trở về Form Main.
Form danh mục kho
Menu này cho phép quản lý các kho vật tư hàng hoá với các chức năng tương tự như trong Form danh mục khách hàng và danh mục vật tư hàng hoá như trên.
Form danh mục mã hàng
Form này cho phép người dùng cập nhật và quản lý các mặt hàng được sản xuất từ các vật tư được nhập kho cho sản xuất tượng tự như các Form danh mục trên.
Form hồ sơ số dư vật tư hàng hoá
Form này cho phép người dùng cập nhật số dư (tồn kho) vật tư hàng hoá khi bắt đầu sử dụng chương trình với các thông tin: mã kho, mã hàng, mã vật tư, số lượng, thành tiền. Các chức năng chính gồm: thêm, xoá thông tin số dư về một loại vật tư nào đó. Muốn kết thúc làm việc với form ta chọn Close để đóng Form.
Form cập nhật phiếu nhập
Form cập nhật phiếu nhập cho phép người dùng cập nhật các thông tin trên phiếu nhập kho với các thông tin
- Số chứng từ : Tự động tăng trong năm
- Ngày PS : Ngày phát sinh chứng từ, bắt buộc phải là ngày trong năm làm việc
- Số hoá đơn : Số hoá đơn mua hàng đính kèm phiếu nhập kho nếu có
- Kho hàng : Mã số kho hàng (Bắt buộc phải có)
- Khách hàng : Mã số khách hàng, nhà cung cấp (Bắt buộc phải có)
- Họ tên : Tên người giao, nhận vật tư
- Kiểm tra : Tên người kiểm tra nhận hoặc xuất vật tư
- Nội dung : nội dung phiếu nhập xuất kho
- Mã hàng : mã hàng hoá sẽ sản xuất từ số vật tư nhập kho. Chương trình sẽ tính số tồn kho vật tư theo từng mã hàng nhập kho.
- Mã sản phẩm : mã hàng hoá sản xuất từ số vật tư xuất kho.
- Mã vật tư : mã vật tư nhập xuất kho
- Đơn giá : đơn giá vật tư
- Tỷ giá : sử dụng trong trường hợp đơn giá vật tư là ngoại tệ, theo dõi số thành tiền nhập kho là VND (Mặc định là 1)
- Hợp đồng : số hợp đồng, dùng để thống kê báo cáo số vật tư nhập xuất theo từng hợp đồng sản xuất.
Form cập nhật phiếu hỗ trợ các chức năng chính trong cập nhật cũng như thay đổi thông tin trên phiếu như sau:
- Nhấn nút Phiếu để nhập một phiếu mới, sau khi nhập xong từng mục, chương trình sẽ ghi lại và con trỏ sẽ quay về mục mã hàng để tiếp tục nhập liệu cho một mục mới. Sau khi nhập xong tất cả các mục trong một phiếu vật tư nhấn nút Ngưng để nhập phiếu mới
- Trong quá trình nhập liệu nếu chưa nhấn nút Ghi mà nhấn nút Ngưng thì chương trình sẽ không ghi nhận kết quả nhập liệu vào cơ sơ dữ liệu
- Để nhập bổ sung mục vật tư vào phiếu có sẵn nhấn nút tìm chọn phiếu cần bổ sung mục vật tư, nhấn phím ESC để trở về màn hình nhập liệu. Nhấn nút Mục để thêm một mục mới vào phiếu vật tư đã có sẵn
- Để sửa mục vật tư có sẵn nhấn nút Tìm chọn phiếu cần sửa, nhấn phím ESC để trở về màn hình nhập liệu. Chọn mục vật tư cần sửa, Nhấn nút Sửa để mục vật tư đã có sẵn.
Để xem in phiếu ta chọn phiếu cần in rồi nhấn Print để in phiếu trên màn hình như sau:
Form cập nhật phiếu xuất
Việc cập nhật phiếu xuất kho tương tự như cập nhật phiếu nhập kho cũng với các chức năng hỗ trợ tưong tự như: thêm phiếu mới, sửa thông tin, xoá , tìm, in và thoát khỏi form làm việc như trên.
Để kết thúc làm việc với Form ta chọn Thoát để đóng Form để quay về Form Main tiếp tục khai thác các chức năng khác của hệ thống.
Menu Báo cáo
Trong menu báo cáo có các loại báo cáo sau: liệt kê chứng từ xuất nhập kho, sổ chi tiết vật tư hàng hoá,sổ chi tiết nhập xuất tồn kho, báo cáo nhập xuất tồn. Ngoài các loại báo cáo trong menu báo cáo còn hỗ trợ chức năng tra cứu thông tin.
Ngưòi sử dụng sẽ chọn từng loại báo cáo bằng cách kích chuột vào menu báo cáo thể hiện chức năng tương ứng
Form liệt kê chứng từ nhập xuất kho
Form này cho phép người dùng liệt kê chứng từ xuất nhập vật tư theo các tiêu chí khác nhau như theo khách hàng, kho hàng, mã hàng, mã vật tư… Nếu người dùng không chọn tiêu chí nào chương trình sẽ tổng hợp toàn bộ thông tin trên báo cáo.
Bảng kê chi tiết hàng hoá nhập kho vật tư hàng hoá
Bảng kê chi tiết xuất kho vật tư hàng hoá
Form Sổ chi tiết nhập xuất tồn
Form này cho phép in bảng kê chi tiết nhập xuất tồn vật tư theo từng tiêu chí khác nhau: theo khách hàng, mã hàng hay mã vật tư. Nếu không chọn các tiêu chí chương trình sẽ tổng hợp toàn bộ dữ liệu trên báo cáo.
Bảng kê chi tiết nhập xuất tồn theo mã vật tư
Bảng kê chi tiết nhập xuất tồn theo mã hàng
Form báo cáo nhập xuất tồn
Cho phép tổng hợp báo cáo nhập xuất tồn vật tư hàng hoá theo mã hàng hoặc mã vật tư.
Báo cáo xuất nhập tồn theo mã hàng
Báo cáo tổng hợp nhập xuất tồn theo mã vật tư
Form báo cáo tình hình tồn kho
Form báo cáo này giúp người dùng hệ thống tổng hợp các báo cáo về tình hình tồn kho theo mã hàng hoặc mã vật tư.
Báo cáo tình hình tồn kho theo mã hàng
Form Tra cứu
Hệ thống cho phép tìm kiếm thông tin theo 2 điều kiện: tìm kiếm thông tin tồn kho và tìm kiếm chứng từ.
Để tra cứu thông tin tồn kho ta chọn option tồn kho và nhấn nút số liệu để hiện thông tin tìm kiếm được.
Để tra cứu chứng từ ta chon option chứng từ sau đó nhấn nút số liệu để hiện thông tin tìm kiếm
Menu Trợ giúp
Bao gồm các chức năng giới thiệu chương trình và hướng dẫn sử dụng
Khi người dùng kích chuột vào chức năng giới thiệu chương trình hoặc hướng dẫn sử dụng các form thông tin sẽ hiện ra.
Form hướng dẫn sử dụng
KẾT LUẬN
Thế giới đang bước vào kỷ nguyên của khoa học công nghệ và chúng ta không thể phủ nhận những thành công của công nghệ thông tin đem lại cho con người. Nhờ tin học mà con người đã bước lên tầm cao mới, bươc sang một nền kinh tế mới - nền kinh tế tri thức.
Trong những năm gần đây việc ứng dụng công nghệ thông tin vào công tác quản lý càng nhiều và là một nhu cầu cấp bách của nền kinh tế hiện nay.Việc quản lý vật tư tại Công ty TNHH Quốc Minh hiện nay còn gặp nhiều hạn chế và phức tạp. Nhằm khắc phục được những nhược điểm đó em chọn đề tài “Xây dựng phần mềm quản lý kho tại công ty TNHH Quốc MInh”. Chương trình này giải quyết được phần nào khó khăn trong công việc của các nhân viên xuất nhập vật tư, giúp tiết kiệm thời gian, chi phí quản lý cũng như cung cấp các thông tin đúng đắn kịp thời hỗ trợ các quyết định.
Chương trình được xây dựng hoàn toàn trên hướng mở để có thể hoàn thiện nâng cấp trong tương lai. Tuy nhiên đây chưa phải là một phần mềm hoàn chỉnh do còn nhiều hạn chế về sự hiểu biết, về mặt thực tế cũng như vấn đề thời gian.
Cuối cùng em xin chân thành cảm ơn những góp ý, chỉ bảo của cô giáo Trần Thị Song Minh và các cán bộ phòng triển khai Công ty TNHH Quốc Minh đã giúp đỡ em hoàn thành chuyên đề này.
TÀI LIỆU THAM KHẢO
TS. Trương Văn Tú – TS. Trần Thị Song Minh
Giáo trình hệ thống thông tin quản lý
NXB Thống kê, Hà Nội, 2000
Nguyễn Văn Vy
Phân tích và thiết kế các hệ thống thông tin hiện đại
NXB Thống kê, Hà Nội, 2003
Ths. Trần Công Uẩn
Giáo trình cơ sở dữ liệu 1,2
NXB Thống kê, Hà Nội, 2004
Phạm Hữu Khang
Ví dụ và bài tập Visual Basic.Net: lập trình cơ sở dữ liệu và Report
NXB Lao động xã hội
PGS.TS Hàn Viết Thuận
Bài giảng công nghệ phần mềm
PHỤ LỤC
MỘT SỐ ĐOẠN CODE CHƯƠNG TRÌNH
Form Đăng nhập hệ thống
Private Sub cmdOK_Click()
Unload Me
FrmMain.Show
End Sub
Private Sub Form_Load()
On Error GoTo ErrHand:
txtPassword.Text = ""
AdodcPass.Refresh
AdodcPass.Recordset.Requery
AdodcPass.Recordset.MoveFirst
Do Until AdodcPass.Recordset.EOF
cmbUsername.AddItem AdodcPass.Recordset.Fields("Username")
AdodcPass.Recordset.MoveNext
Loop
cmbUsername.ListIndex = 0
Exit Sub
ErrHand:
MsgBox Err.Description, vbInformation, "Error"
End Sub
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub txtPassword_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Dim Found As Boolean
UName = cmbUsername.Text
If txtPassword.Text = "" Then
MsgBox "Hay nhap mat khau!", vbInformation, "Mat khau sai"
txtPassword.SetFocus
Else
AdodcPass.Recordset.MoveFirst
Do Until AdodcPass.Recordset.EOF Or Found
If AdodcPass.Recordset.Fields("Username") = cmbUsername.Text And AdodcPass.Recordset.Fields("Password") = txtPassword.Text Then
Found = True
Else
AdodcPass.Recordset.MoveNext
End If
Loop
If Found = True Then
FrmMain.Show
Unload Me
Else
MsgBox "Mat khau khong hop le", vbExclamation, "Mat khau sai"
txtPassword.Text = ""
End If
End If
End If
End Sub
Form đổi mật khẩu
Private Sub cmdOK_Click()
Dim Found As Boolean
Dim Change As Boolean
Dim Box As VbMsgBoxResult
FrmLogin.AdodcPass.Refresh
If cmbUsername.Text = "" Or txtCurrPassword.Text = "" Or txtConfirmPass.Text = "" Or txtNewPass.Text = "" Then
MsgBox "Please fill in all non-optional fields", vbInformation, "Password configuration | Error"
ElseIf txtConfirmPass.Text txtNewPass.Text Then
MsgBox "Passwords dont match", vbInformation, "Password configuration | Error"
txtNewPass.Text = ""
txtConfirmPass.Text = ""
txtNewPass.SetFocus
ElseIf Len(txtNewPass.Text) < 6 Then
MsgBox "Your password should have at least 6 characters"
txtNewPass.Text = ""
txtConfirmPass.Text = ""
txtNewPass.SetFocus
Else
Box = MsgBox("Are you sure?", vbQuestion + vbYesNo, "Change user password")
If Box = vbYes Then
FrmLogin.AdodcPass.Refresh
FrmLogin.AdodcPass.Recordset.MoveFirst
Do Until FrmLogin.AdodcPass.Recordset.EOF Or Found
If FrmLogin.AdodcPass.Recordset.Fields("Username") = cmbUsername.Text And FrmLogin.AdodcPass.Recordset.Fields("Password") = txtCurrPassword.Text Then
Found = True
Else
FrmLogin.AdodcPass.Recordset.MoveNext
End If
Loop
If Found = True Then
FrmLogin.AdodcPass.Refresh
FrmLogin.AdodcPass.Recordset.MoveFirst
Do Until FrmLogin.AdodcPass.Recordset.EOF Or Change
If FrmLogin.AdodcPass.Recordset.Fields("Password") = txtCurrPassword.Text Then
FrmLogin.AdodcPass.Recordset.Fields("Password") = txtNewPass.Text
Change = True
Else
FrmLogin.AdodcPass.Recordset.MoveNext
End If
Loop
Else
MsgBox "Incorrect Old Password ", vbExclamation, "Incorrect Old Password"
txtCurrPassword.Text = ""
txtCurrPassword.SetFocus
End If
If Change = True Then
MsgBox "Password changed." & vbCrLf & vbCrLf & "Password will take effect next time the application is started.", vbInformation, "Password Status"
FrmLogin.AdodcPass.Recordset.Update
Call CleanUp
End If
FrmLogin.AdodcPass.Refresh
End If
End If
End Sub
Private Sub CleanUp()
txtCurrPassword.Text = ""
txtNewPass.Text = ""
txtConfirmPass.Text = ""
End Sub
Private Sub Form_Load()
cmbUsername.Clear
FrmLogin.AdodcPass.Recordset.MoveFirst
Do Until FrmLogin.AdodcPass.Recordset.EOF
cmbUsername.AddItem FrmLogin.AdodcPass.Recordset.Fields("Username")
FrmLogin.AdodcPass.Recordset.MoveNext
Loop
cmbUsername.ListIndex = 0
End Sub
Private Sub txtconfirmpass_Change()
If txtConfirmPass.Text = txtNewPass.Text Then
lblStatus.Caption = "MËt khÈu hîp nhau!"
Else
lblStatus.Caption = "MËt khÈu kh«ng hîp nhau!"
End If
End Sub
Form danh mục khách hàng
Option Explicit
Dim recnum
Dim xThem
Private Sub CmdCuoi_Click()
On Error GoTo Err_Cuoi_Click
If AdodcKH.Recordset.EOF Then
MsgBox "Ban dang o ban ghi cuoi", vbOKOnly, "Thong bao"
Else
AdodcKH.Recordset.MoveLast
End If
Exit_Cuoi_Click:
Exit Sub
Err_Cuoi_Click:
MsgBox Err.Description
Resume Exit_Cuoi_Click
End Sub
Private Sub CmdDau_Click()
On Error GoTo Err_Dau_Click
If AdodcKH.Recordset.BOF Then
MsgBox "Ban dang o ban ghi dau tien", vbOKOnly, "Thong bao"
Else
AdodcKH.Recordset.MoveFirst
End If
Exit_Dau_Click:
Exit Sub
Err_Dau_Click:
MsgBox Err.Description
Resume Exit_Dau_Click
End Sub
Private Sub CmdGhi_Click()
On Error GoTo Err_ghi_click
AdodcKH.Recordset.UpdateBatch adAffectAll
CmdThoat.Visible = True
CmdSua.Visible = True
CmdKhong.Visible = False
CmdGhi.Visible = False
CmdXoa.Visible = True
CmdThem.Visible = True
CmdSearch.Visible = True
CmdThem.SetFocus
xThem = False
Exit_ghi_click:
DGridKH.SetFocus
Exit Sub
Err_ghi_click:
MsgBox "Data is invalid."
Resume Exit_ghi_click
End Sub
Private Sub CmdKhong_Click()
On Error GoTo Err_Khong_Click
AdodcKH.Refresh
AdodcKH.Recordset.Clone
AdodcKH.Recordset.MoveLast
CmdThoat.Visible = True
CmdSua.Visible = True
CmdKhong.Visible = False
CmdGhi.Visible = False
CmdXoa.Visible = True
CmdThem.Visible = True
CmdSearch.Visible = True
CmdThem.SetFocus
xThem = False
Exit_Khong_Click:
DGridKH.SetFocus
Exit Sub
Err_Khong_Click:
MsgBox "Data is invalid!"
Resume Exit_Khong_Click
End Sub
Private Sub CmdSau_Click()
If AdodcKH.Recordset.EOF Then
MsgBox "ban dang o ban ghi cuoi", vbOKOnly, "Thong bao"
Else
AdodcKH.Recordset.MoveNext
End If
End Sub
Private Sub CmdSua_Click()
On Error GoTo Err_Sua_click
recnum = AdodcKH.Recordset.Bookmark
CmdThoat.Visible = False
CmdSua.Visible = False
CmdKhong.Visible = True
CmdGhi.Visible = True
CmdXoa.Visible = False
CmdThem.Visible = False
xThem = False
DGridKH.AllowDelete = True
DGridKH.AllowUpdate = True
Exit_Sua_click:
Exit Sub
Err_Sua_click:
MsgBox Err.Description
Resume Exit_Sua_click
End Sub
Private Sub CmdThem_Click()
On Error GoTo Err_Them_click
DGridKH.AllowDelete = True
DGridKH.AllowUpdate = True
AdodcKH.Recordset.AddNew
DGridKH.SetFocus
CmdThoat.Visible = False
CmdSua.Visible = False
CmdKhong.Visible = True
CmdGhi.Visible = True
CmdXoa.Visible = False
CmdThem.Visible = False
CmdSearch.Visible = False
xThem = True
Exit_Them_click:
Exit Sub
Err_Them_click:
MsgBox Err.Description
Resume Exit_Them_click
End Sub
Private Sub CmdThoat_Click()
Unload Me
End Sub
Private Sub CmdTruoc_Click()
If AdodcKH.Recordset.BOF Then
MsgBox "Ban dang o ban ghi dau tien", vbOKOnly, "Thong bao"
Else
AdodcKH.Recordset.MovePrevious
End If
End Sub
Private Sub CmdXoa_Click()
On Error GoTo Err_Xoa_click
Dim TraLoi
TraLoi = MsgBox("Ban muon xoa Ma khach hang " & _
AdodcKH.Recordset.Fields("TenKH") & " (cung voi cac thong tin lien quan)?" _
, vbYesNo, "Thong bao")
If TraLoi = 6 Then
AdodcKH.Recordset.Delete
AdodcKH.Recordset.MoveNext
AdodcKH.Recordset.Clone
If AdodcKH.Recordset.EOF Then
AdodcKH.Recordset.MoveLast
End If
End If
Exit_Xoa_click:
Exit Sub
Err_Xoa_click:
MsgBox "Khong the xoa ban ghi nay!"
Resume Exit_Xoa_click
End Sub
Private Sub Form_Load()
CmdThoat.Visible = True
CmdSua.Visible = True
CmdKhong.Visible = False
CmdGhi.Visible = False
CmdXoa.Visible = True
CmdThem.Visible = True
AdodcKH.Visible = False
DGridKH.AllowDelete = False
DGridKH.AllowUpdate = False
DGridKH.AllowRowSizing = False
DGridKH.AllowArrows = False
locked
End Sub
Private Sub txtFind_Change()
If CmbField.Text = "" Or txtFind = "" Then
AdodcKH.Recordset.Filter = ""
AdodcKH.Refresh
Exit Sub
End If
AdodcKH.Recordset.Filter = CmbField & " LIKE '*" & txtFind & "*'"
End Sub
Private Sub AddItem()
CmbField.AddItem ("MaKH")
CmbField.AddItem ("TenKH")
CmbField.AddItem ("DiaChi")
CmbField.AddItem ("Tel")
CmbField.AddItem ("Email")
End Sub
Private Sub CmdSearch_Click()
Unlocked
AddItem
CmbField.SetFocus
End Sub
Private Sub CmdStop_Click()
CmbField.Clear
txtFind.Text = ""
locked
End Sub
Private Sub AdodcKH_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
lblResult.Caption = "Kh¸ch hµng hien t¹i cã " & AdodcKH.Recordset.RecordCount
txtSoKH.Text = "Kh¸ch hµng " & AdodcKH.Recordset.AbsolutePosition & _
" trong " & AdodcKH.Recordset.RecordCount
End Sub
Private Sub locked()
CmdSearch.Visible = True
CmdThem.Enabled = True
CmdSua.Enabled = True
CmdXoa.Enabled = True
lblTruong.Enabled = False
lblTimKiem.Enabled = False
CmbField.Enabled = False
txtFind.Enabled = False
CmdStop.Visible = False
End Sub
Private Sub Unlocked()
CmdSearch.Visible = False
CmdThem.Enabled = False
CmdSua.Enabled = False
CmdXoa.Enabled = False
lblTruong.Enabled = True
lblTimKiem.Enabled = True
CmbField.Enabled = True
txtFind.Enabled = True
CmdStop.Visible = True
End Sub
Form cập nhật số dư (tồn kho)
Option Explicit
Dim recnum
Dim xThem
Dim MyQry
Dim conn As ADODB.Connection
Dim conn1 As ADODB.Connection
Dim conn2 As ADODB.Connection
Dim rs As ADODB.Recordset
Dim rs1 As ADODB.Recordset
Dim rs2 As ADODB.Recordset
Dim strSQL As String
Private Sub CmdCuoi_Click()
On Error GoTo Err_Cuoi_Click
If AdodcTonKho.Recordset.EOF Then
MsgBox "Ban dang o ban ghi cuoi", vbOKOnly, "Thong bao"
Else
AdodcTonKho.Recordset.MoveLast
End If
Exit_Cuoi_Click:
Exit Sub
Err_Cuoi_Click:
MsgBox Err.Description
Resume Exit_Cuoi_Click
End Sub
Private Sub CmdDau_Click()
On Error GoTo Err_Dau_Click
If AdodcTonKho.Recordset.BOF Then
MsgBox "Ban dang o ban ghi dau tien", vbOKOnly, "Thong bao"
Else
AdodcTonKho.Recordset.MoveFirst
End If
Exit_Dau_Click:
Exit Sub
Err_Dau_Click:
MsgBox Err.Description
Resume Exit_Dau_Click
End Sub
Private Sub CmdGhi_Click()
On Error GoTo Err_ghi_click
AdodcTonKho.Recordset.UpdateBatch adAffectAll
CmdThoat.Visible = True
CmdSua.Visible = True
CmdKhong.Visible = False
CmdGhi.Visible = False
CmdXoa.Visible = True
CmdThem.Visible = True
CmdThem.SetFocus
CmdSearch.Visible = True
xThem = False
Exit_ghi_click:
DGridTonKho.SetFocus
Exit Sub
Err_ghi_click:
MsgBox "Data is invalid."
Resume Exit_ghi_click
End Sub
Private Sub CmdInTonKho_Click()
Dim strSQL1 As String
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Dim CMaHH, CSl
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QuanLyBanHang.mdb;Persist Security Info=False"
conn.Open
strSQL = "SELECT * FROM tblTonKhoIn"
rs.Open strSQL, conn
If rs.RecordCount > 0 Then
strSQL = "DELETE * FROM tblTonKhoIN"
conn.Execute strSQL
conn.Close
End If
rs.Close
'Chuyen du lieu ton kho dau ky vao bang trung gian tblTonKhoIN
strSQL = "INSERT INTO tblTonKhoIN(MaHH,TenHang,SolgDauK,GtDauKUS) "
strSQL = strSQL & "SELECT TK.MaHH,TK.TenHang,TK.SolgDauK,TK.GtDauKUS FROM tblTonKho As TK "
conn.Execute strSQL
conn.Close
'Chuyen du lieu nhap trong ky tu tblNhapCT vao tblTonKhoIN
Set conn1 = New ADODB.Connection
Set conn2 = New ADODB.Connection
Set rs1 = New ADODB.Recordset
Set rs2 = New ADODB.Recordset
conn1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QuanLyBanHang.mdb;Persist Security Info=False"
conn1.Open
conn2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QuanLyBanHang.mdb;Persist Security Info=False"
conn2.Open
strSQL = "SELECT * FROM qrySLNhap"
rs1.Open strSQL, conn1
strSQL1 = "SELECT * FROM tblTonKhoIN"
rs2.Open strSQL1, conn2
rs1.MoveFirst
Do Until rs1.EOF
'CMaHH = rs![MaHH]
'CSl = rs![SlNhap]
rs2.MoveFirst
Do Until rs2.EOF
If rs2![MaHH] = rs1![MaHH] Then
rs2![solgNhap] = rs2![solgNhap] + rs1![SlNhap]
rs2.Update
End If
rs2.MoveNext
Loop
rs1.MoveNext
Loop
rs1.Close
rs2.Close
End Sub
Private Sub CmdKhong_Click()
AdodcTonKho.Refresh
AdodcTonKho.Recordset.Clone
AdodcTonKho.Recordset.MoveLast
CmdThoat.Visible = True
CmdSua.Visible = True
CmdKhong.Visible = False
CmdGhi.Visible = False
CmdXoa.Visible = True
CmdThem.Visible = True
CmdThem.SetFocus
xThem = False
Exit_Khong_Click:
DGridTonKho.SetFocus
Exit Sub
Err_Khong_Click:
MsgBox "Du lieu khong hop le!"
Resume Exit_Khong_Click
End Sub
Private Sub CmdSau_Click()
If AdodcTonKho.Recordset.EOF Then
MsgBox "ban dang o ban ghi cuoi", vbOKOnly, "Thong bao"
Else
AdodcTonKho.Recordset.MoveNext
End If
End Sub
Private Sub CmdSua_Click()
On Error GoTo Err_Sua_click
recnum = AdodcTonKho.Recordset.Bookmark
CmdThoat.Visible = False
CmdSua.Visible = False
CmdKhong.Visible = True
CmdGhi.Visible = True
CmdXoa.Visible = False
CmdThem.Visible = False
xThem = False
DGridTonKho.AllowDelete = True
DGridTonKho.AllowUpdate = True
Exit_Sua_click:
Exit Sub
Err_Sua_click:
MsgBox Err.Description
Resume Exit_Sua_click
End Sub
Private Sub CmdThem_Click()
On Error GoTo Err_Them_click
DGridTonKho.AllowDelete = True
DGridTonKho.AllowUpdate = True
AdodcTonKho.Recordset.AddNew
DGridTonKho.SetFocus
CmdThoat.Visible = False
CmdSua.Visible = False
CmdKhong.Visible = True
CmdGhi.Visible = True
CmdXoa.Visible = False
CmdThem.Visible = False
CmdSearch.Visible = False
xThem = True
Exit_Them_click:
Exit Sub
Err_Them_click:
MsgBox Err.Description
Resume Exit_Them_click
End Sub
Private Sub CmdThoat_Click()
Unload Me
End Sub
Private Sub CmdTruoc_Click()
If AdodcTonKho.Recordset.BOF Then
MsgBox "Ban dang o ban ghi dau tien", vbOKOnly, "Thong bao"
Else
AdodcTonKho.Recordset.MovePrevious
End If
End Sub
Private Sub CmdXoa_Click()
On Error GoTo Err_Xoa_click
Dim TraLoi
TraLoi = MsgBox("Ban muon xoa Ma hang " & _
AdodcTonKho.Recordset.Fields("MaHH") & " (cung voi thong tin lien quna)?" _
, vbYesNo, "Thong bao")
If TraLoi = 6 Then
AdodcTonKho.Recordset.Delete
AdodcTonKho.Recordset.MoveNext
AdodcTonKho.Recordset.Clone
If AdodcTonKho.Recordset.EOF Then
AdodcTonKho.Recordset.MoveLast
End If
End If
Exit_Xoa_click:
Exit Sub
Err_Xoa_click:
MsgBox "Khong the xoa ban ghi nay!"
Resume Exit_Xoa_click
End Sub
Private Sub DcboMaHH_Change()
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QuanLyBanHang.mdb;Persist Security Info=False"
conn.Open
MyQry = DcboMaHH.Text
If MyQry "" Then
strSQL = "SELECT * FROM tblDMHH WHERE MaHH='" & MyQry & "'"
rs.Open strSQL, conn
txtTenHang.Text = rs.Fields("TenHH")
txtGtDauKUS.Text = rs.Fields("DGUsd")
rs.Close
End If
End Sub
Private Sub Form_Load()
CmdThoat.Visible = True
CmdSua.Visible = True
CmdKhong.Visible = False
CmdGhi.Visible = False
CmdXoa.Visible = True
CmdThem.Visible = True
AdodcTonKho.Visible = False
DGridTonKho.AllowDelete = False
DGridTonKho.AllowUpdate = False
DGridTonKho.AllowRowSizing = False
DGridTonKho.AllowArrows = False
locked
End Sub
Private Sub txtFind_Change()
If CmbField.Text = "" Or txtFind = "" Then
AdodcTonKho.Recordset.Filter = ""
AdodcTonKho.Refresh
Exit Sub
End If
AdodcTonKho.Recordset.Filter = CmbField & " LIKE '*" & txtFind & "*'"
End Sub
Private Sub AddItem()
CmbField.AddItem ("Reckey")
CmbField.AddItem ("MaKho")
CmbField.AddItem ("MaHH")
CmbField.AddItem ("TenHang")
End Sub
Private Sub CmdSearch_Click()
Unlocked
AddItem
CmbField.SetFocus
End Sub
Private Sub CmdStop_Click()
CmbField.Clear
txtFind.Text = ""
locked
End Sub
Private Sub AdodcTonKho_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
lblResult.Caption = "Tån kho hien t¹i cã " & AdodcTonKho.Recordset.RecordCount
txtSoKho.Text = "Nh©n viªn " & AdodcTonKho.Recordset.AbsolutePosition & _
" trong " & AdodcTonKho.Recordset.RecordCount
End Sub
Private Sub locked()
CmdSearch.Visible = True
CmdThem.Enabled = True
CmdSua.Enabled = True
CmdXoa.Enabled = True
lblTruong.Enabled = False
lblTimKiem.Enabled = False
CmbField.Enabled = False
txtFind.Enabled = False
CmdStop.Visible = False
End Sub
Private Sub Unlocked()
CmdSearch.Visible = False
CmdThem.Enabled = False
CmdSua.Enabled = False
CmdXoa.Enabled = False
lblTruong.Enabled = True
lblTimKiem.Enabled = True
CmbField.Enabled = True
txtFind.Enabled = True
CmdStop.Visible = True
End Sub
Private Sub DcboMaHH_GotFocus()
DcboMaHH.BackColor = &HC0E0FF
End Sub
Private Sub DcboMaHH_LostFocus()
DcboMaHH.BackColor = &HC0C0C0
End Sub
Private Sub DcboMaHH_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
txtSolgDauK.SetFocus
End If
End Sub
Private Sub txtSolgDauK_GotFocus()
txtSolgDauK.BackColor = &HC0E0FF
End Sub
Private Sub txtSolgDauK_LostFocus()
txtSolgDauK.BackColor = &HC0C0C0
End Sub
Private Sub txtSolgDauK_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
txtMaKho.SetFocus
End If
End Sub
Private Sub TxtMaKho_GotFocus()
txtMaKho.BackColor = &HC0E0FF
End Sub
Private Sub TxtMaKho_LostFocus()
txtMaKho.BackColor = &HC0C0C0
End Sub
Private Sub TxtMaKho_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
CmdGhi.SetFocus
End If
End Sub
Form cập nhật phiếu xuất- nhập
Option Explicit
Dim strSQL As String
Dim MyQry As Variant
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim OptSelected As Long
Dim cboOriginator As TextBox
Dim xThem, xsua, recnum, tgvalue, tg1value
Dim xThemCT, mRec, mKhong, mLoad, mChange, mGhi, xXoa
Dim CBK
Dim HT As String
'===================================================
'Source Code For HDNhap " Hoa don nhap hang "
'===================================================
'START FROM HERE
Private Sub CmdCuoi_Click()
On Error GoTo Err_Cuoi_Click
If AdodcHDNhap.Recordset.EOF Then
AdodcHDNhapCT.Recordset.Filter = "SoCT = '" & TxtSoCT & "'"
AdodcHDNhapCT.Recordset.Requery
ThanhTienVND
TxtTenNhaCC.Text = ""
txtTel.Text = ""
TxtEmail.Text = ""
TxtDiaChi.Text = ""
TxtTenNV.Text = ""
MsgBox "Ban dang o ban ghi cuoi!", vbOKOnly, "Thong bao"
Else
AdodcHDNhap.Recordset.MoveLast
AdodcHDNhapCT.Recordset.Filter = "SoCT = '" & TxtSoCT & "'"
AdodcHDNhapCT.Recordset.Requery
ThanhTienVND
End If
Exit_Cuoi_Click:
Exit Sub
Err_Cuoi_Click:
MsgBox Err.Description
Resume Exit_Cuoi_Click
End Sub
Private Sub CmdDau_Click()
On Error GoTo Err_Dau_Click
If AdodcHDNhap.Recordset.BOF Then
MsgBox "Ban dang o ban ghi dau tien!", vbOKOnly, "Thong bao"
Else
AdodcHDNhap.Recordset.MoveFirst
AdodcHDNhapCT.Recordset.Filter = "SoCT = '" & TxtSoCT & "'"
AdodcHDNhapCT.Recordset.Requery
ThanhTienVND
End If
AdodcHDNhapCT.Recordset.Filter = "SoCT = '" & TxtSoCT & "'"
AdodcHDNhapCT.Recordset.Requery
ThanhTienVND
Exit_Dau_Click:
Exit Sub
Err_Dau_Click:
MsgBox Err.Description
Resume Exit_Dau_Click
End Sub
Private Sub CmdGhi_Click()
On Error GoTo Err_ghi_click
AdodcHDNhap.Recordset.UpdateBatch adAffectAll
lock_text
CmdThem.SetFocus
xThem = False
xsua = False
Exit_ghi_click:
DcboMaNhaCC.SetFocus
Exit Sub
Err_ghi_click:
MsgBox "Du lieu da nhap vao khong hop le"
Resume Exit_ghi_click
End Sub
Private Sub CmdKhong_Click()
AdodcHDNhap.Refresh
AdodcHDNhap.Recordset.Clone
AdodcHDNhap.Recordset.MoveLast
AdodcHDNhap.Recordset.CancelUpdate
AdodcHDNhapCT.Recordset.Filter = "SoCT = '" & TxtSoCT & "'"
AdodcHDNhapCT.Recordset.Requery
ThanhTienVND
lock_text
CmdThem.SetFocus
xThem = False
xsua = False
End Sub
Private Sub CmdNgayCT_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Set cboOriginator = TxtNgayCT
CalBUNKRY.Visible = True
CalBUNKRY.SetFocus
If Not IsNull(cboOriginator) Then
CalBUNKRY.Value = cboOriginator.Text
Else
CalBUNKRY.Value = Date
End If
End Sub
Private Sub CmdSau_Click()
If AdodcHDNhap.Recordset.EOF Then
MsgBox "Ban dang o ban ghi cuoi!", vbOKOnly, "Thong bao"
Else
TxtTongCong.Text = ""
AdodcHDNhap.Recordset.MoveNext
End If
AdodcHDNhapCT.Recordset.Filter = "SoCT = '" & TxtSoCT & "'"
AdodcHDNhapCT.Recordset.Requery
ThanhTienVND
Opt
End Sub
Private Sub CmdSua_Click()
On Error GoTo Err_Sua_click
recnum = AdodcHDNhap.Recordset.Bookmark
Unlock_text
TxtSoCT.locked = True
xThem = False
xsua = True
Exit_Sua_click:
Exit Sub
Err_Sua_click:
MsgBox Err.Description
Resume Exit_Sua_click
End Sub
Private Sub CmdThem_Click()
On Error GoTo Err_Them_click
AdodcHDNhap.Recordset.AddNew
TxtTenNhaCC.Text = ""
txtTel.Text = ""
TxtEmail.Text = ""
TxtDiaChi.Text = ""
TxtTenNV.Text = ""
TxtTongCong.Text = ""
TxtTenHH.Text = ""
AdodcHDNhapCT.Recordset.Filter = "SoCT = '" & TxtSoCT & "'"
AdodcHDNhapCT.Recordset.Requery
Unlock_text
xThem = True
xsua = False
Exit_Them_click:
Exit Sub
Err_Them_click:
MsgBox Err.Description
Resume Exit_Them_click
End Sub
Private Sub CmdThoat_Click()
Unload Me
End Sub
Private Sub CmdTruoc_Click()
If AdodcHDNhap.Recordset.BOF Then
MsgBox "Ban dang o ban ghi dau tien!", vbOKOnly, "Thong bao"
Else
AdodcHDNhap.Recordset.MovePrevious
AdodcHDNhapCT.Recordset.Filter = "SoCT = '" & TxtSoCT & "'"
AdodcHDNhapCT.Recordset.Requery
ThanhTienVND
End If
Opt
End Sub
Private Sub CmdXoa_Click()
On Error GoTo Err_Xoa_click
Dim TraLoi
Dim KRY As Variant
TraLoi = MsgBox("Ban muon xoa Ma nha cung cap " & DcboMaNhaCC.Text & _
" (cung voi cac thong tin lien quan)?", 48 + 4, "Thong bao")
KRY = TxtSoCT.Text
If TraLoi = 6 Then
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QuanLyBanHang.mdb;Persist Security Info=False"
conn.Open
KRY = TxtSoCT.Text
strSQL = "DELETE * FROM tblHDNhapCT WHERE SoCT ='" & KRY & "';"
conn.Execute strSQL
conn.Close
AdodcHDNhap.Recordset.Delete
AdodcHDNhap.Recordset.Clone
AdodcHDNhap.Recordset.MoveNext
If AdodcHDNhap.Recordset.EOF Then
AdodcHDNhap.Recordset.MoveLast
End If
AdodcHDNhapCT.Recordset.Filter = "SoCT = '" & TxtSoCT & "'"
AdodcHDNhapCT.Recordset.Requery
End If
Exit_Xoa_click:
Exit Sub
Err_Xoa_click:
MsgBox Err.Description
Resume Exit_Xoa_click
End Sub
Private Sub CmdXemTruoc_Click()
Dim rs As New ADODB.Recordset
Dim Sql As String
Dim Tien As Double
Sql = "SELECT C.MaHH, H.TenHH, C.DVT,C.SL,C.DGVUSD,C.ThanhTien FROM tblDMHH AS H, tblHDNhapCT AS C WHERE C.MaHH= H.MaHH AND SoCT ='" & TxtSoCT.Text & "'"
rs.Open Sql, conn
cr.SetTablePrivateData 0, 3, rs
cr.ReportFileName = App.Path & "\Reports\rptPhieuNH.rpt"
cr.Formulas(0) = "TenKH= '" & TxtTenNhaCC.Text & "'"
cr.Formulas(1) = "DienThoai='" & txtTel.Text & "'"
cr.Formulas(2) = "Email= '" & TxtEmail.Text & "'"
cr.Formulas(3) = "DiaChi='" & TxtDiaChi.Text & "'"
cr.Formulas(4) = "NguoiNhan= '" & TxtTenNV.Text & "'"
cr.Formulas(5) = "HTTT='" & HT & "'"
cr.Formulas(6) = "SoCT= '" & TxtSoCT.Text & "'"
cr.Formulas(7) = "NgayCT='" & TxtNgayCT.Text & "'"
cr.Formulas(8) = "DienGiai= '" & TxtDienGiai.Text & "'"
cr.Formulas(9) = "MaKho='" & TxtMaKho.Text & "'"
cr.Formulas(10) = "TongTien= '" & TxtTongCong.Text & "'"
cr.Formulas(11) = "TyGia='" & TxtTyGia.Text & "'"
cr.Formulas(12) = "ThanhTienVND= '" & txtThanhTienVND.Text & "'"
Tien = txtThanhTienVND.Text
cr.Formulas(13) = "TienVietChu='" & TienVND(Tien) & "'"
cr.PrintReport
rs.Close
End Sub
Private Sub DcboMaHH_Change()
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QuanLyBanHang.mdb;Persist Security Info=False"
conn.Open
MyQry = DcboMaHH.Text
If MyQry "" Then
strSQL = "SELECT * FROM tblDMHH WHERE MaHH='" & MyQry & "'"
rs.Open strSQL, conn
TxtTenHH.Text = rs.Fields("TenHH")
rs.Close
End If
End Sub
Private Sub Form_Load()
lock_text
Lock_textCT
AdodcHDNhapCT.Recordset.Filter = "SoCT = '" & TxtSoCT & "'"
AdodcHDNhapCT.Recordset.Update
AdodcHDNhapCT.Recordset.Requery
ThanhTienVND
Opt
End Sub
Private Sub CalBunkry_Click()
cboOriginator.Text = Format(CalBUNKRY.Value, "dd/mm/yyyy")
cboOriginator.SetFocus
CalBUNKRY.Visible = False
Set cboOriginator = Nothing
DcboMaNV.SetFocus
End Sub
Private Sub DcboMaNhaCC_Change()
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QuanLyBanHang.mdb;Persist Security Info=False"
conn.Open
MyQry = DcboMaNhaCC.Text
If MyQry "" Then
strSQL = "SELECT * FROM tblDMNhaCC WHERE MaNhaCC='" & MyQry & "'"
rs.Open strSQL, conn
TxtTenNhaCC.Text = rs.Fields("TenNhaCC")
txtTel.Text = rs.Fields("Tel")
TxtEmail.Text = rs.Fields("Email")
TxtDiaChi.Text = rs.Fields("DiaChi")
rs.Close
End If
End Sub
Private Sub DcboMaNV_Change()
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QuanLyBanHang.mdb;Persist Security Info=False"
conn.Open
MyQry = DcboMaNV.Text
If MyQry "" Then
strSQL = "SELECT * FROM tblDMNV WHERE MaNV='" & MyQry & "'"
rs.Open strSQL, conn
TxtTenNV.Text = rs.Fields("TenNV")
rs.Close
End If
End Sub
Private Sub DcboMaNhaCC_GotFocus()
DcboMaNhaCC.BackColor = &HC0E0FF
End Sub
Private Sub DcboMaNhaCC_LostFocus()
DcboMaNhaCC.BackColor = &HC0C0C0
TxtSoCT.SetFocus
End Sub
Private Sub Option1_Click(Index As Integer)
OptSelected = Index
If OptSelected = 0 Then
AdodcHDNhap.Recordset.Fields("TT") = "Thanh tien ngay"
HT = "Thanh tiÒn ngay"
Else
AdodcHDNhap.Recordset.Fields("TT") = "Ghi no"
HT = "Ghi nî"
End If
End Sub
Private Sub Opt()
If TxtSoCT "" Then
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QuanLyBanHang.mdb;Persist Security Info=False"
conn.Open
CBK = TxtSoCT.Text
strSQL = "SELECT TT FROM tblHDNhap WHERE SoCT = '" & CBK & "'"
rs.Open strSQL, conn
If rs.Fields("TT") = "Ghi no" Then
Option1(1).Value = True
ElseIf rs.Fields("TT") = "Thanh tien ngay" Then
Option1(0).Value = True
End If
rs.Close
End If
End Sub
Private Sub TxtSoCT_Change()
If TxtSoCT = "" Then
txtThanhTienVND.Text = ""
End If
TinhTongCong
End Sub
Private Sub TinhTongCong()
If TxtSoCT.Text "" Then
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QuanLyBanHang.mdb;Persist Security Info=False"
conn.Open
CBK = TxtSoCT.Text
strSQL = " SELECT Sum(ThanhTien) AS TongCong FROM tblHDNhapCT GROUP BY SoCT AND SoCT = '" & CBK & "'"
rs.Open strSQL, conn
TxtTongCong.Text = Format(rs.Fields("TongCong"), "$###,###,###,##0.00")
rs.Close
End If
End Sub
Private Sub TxtSoCT_GotFocus()
TxtSoCT.BackColor = &HC0E0FF
End Sub
Private Sub TxtSoCT_LostFocus()
TxtSoCT.BackColor = &HC0C0C0
End Sub
Private Sub TxtSoCT_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
TxtNgayCT.SetFocus
End If
End Sub
Private Sub TxtNgayCT_GotFocus()
TxtNgayCT.BackColor = &HC0E0FF
End Sub
Private Sub TxtNgayCT_LostFocus()
TxtNgayCT.BackColor = &HC0C0C0
End Sub
Private Sub TxtNgayCT_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
DcboMaNV.SetFocus
End If
End Sub
Private Sub DcboMaNV_GotFocus()
DcboMaNV.BackColor = &HC0E0FF
End Sub
Private Sub DcboMaNV_LostFocus()
DcboMaNV.BackColor = &HC0C0C0
TxtDienGiai.SetFocus
End Sub
Private Sub TxtDienGiai_GotFocus()
TxtDienGiai.BackColor = &HC0E0FF
End Sub
Private Sub TxtDienGiai_LostFocus()
TxtDienGiai.BackColor = &HC0C0C0
End Sub
Private Sub TxtDienGiai_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
TxtMaKho.SetFocus
End If
End Sub
Private Sub TxtMaKho_GotFocus()
TxtMaKho.BackColor = &HC0E0FF
End Sub
Private Sub TxtMaKho_LostFocus()
TxtMaKho.BackColor = &HC0C0C0
End Sub
Private Sub TxtMaKho_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
TxtTyGia.SetFocus
End If
End Sub
Private Sub TxtTyGia_GotFocus()
TxtTyGia.BackColor = &HC0E0FF
End Sub
Private Sub TxtTyGia_LostFocus()
TxtTyGia.BackColor = &HC0C0C0
End Sub
Private Sub TxtTyGia_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
ThanhTienVND
CmdGhi.SetFocus
End If
End Sub
Private Sub ThanhTienVND()
If AdodcHDNhap.Recordset.EOF = False And AdodcHDNhap.Recordset.BOF = False Then
txtThanhTienVND.Text = Format(TxtTongCong.Text * TxtTyGia.Text, "###,###,###,##0")
End If
End Sub
Private Sub DcboMaHH_GotFocus()
DcboMaHH.BackColor = &HC0E0FF
End Sub
Private Sub DcboMaHH_LostFocus()
DcboMaHH.BackColor = &HC0C0C0
TxtDvt.SetFocus
End Sub
Private Sub TxtDvt_GotFocus()
TxtDvt.BackColor = &HC0E0FF
End Sub
Private Sub TxtDvt_LostFocus()
TxtDvt.BackColor = &HC0C0C0
End Sub
Private Sub TxtDvt_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
TxtSl.SetFocus
End If
End Sub
Private Sub TxtSl_GotFocus()
TxtSl.BackColor = &HC0E0FF
End Sub
Private Sub TxtSl_LostFocus()
TxtSl.BackColor = &HC0C0C0
End Sub
Private Sub TxtSl_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
TxtDGUsd.SetFocus
End If
End Sub
Private Sub TxtDGUsd_GotFocus()
TxtDGUsd.BackColor = &HC0E0FF
End Sub
Private Sub TxtDGUsd_LostFocus()
TxtDGUsd.BackColor = &HC0C0C0
End Sub
Private Sub TxtDGUsd_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
TxtTT.Text = Format(TxtSl * TxtDGUsd, "$###,###,###,##0.00")
CmdGhiCT.SetFocus
End If
End Sub
Private Sub Unlock_text()
DcboMaNhaCC.locked = False
DcboMaNV.locked = False
TxtSoCT.locked = False
TxtNgayCT.locked = False
TxtDienGiai.locked = False
TxtMaKho.locked = False
TxtTyGia.locked = False
CmdDau.Visible = False
CmdSau.Visible = False
CmdTruoc.Visible = False
CmdCuoi.Visible = False
CmdThoat.Visible = False
CmdSua.Visible = False
CmdKhong.Visible = True
CmdGhi.Visible = True
CmdXoa.Visible = False
CmdThem.Visible = False
Option1(0).Enabled = True
Option1(1).Enabled = True
CmdNgayCT.Enabled = True
End Sub
Private Sub lock_text()
DcboMaNhaCC.locked = True
DcboMaNV.locked = True
TxtSoCT.locked = True
TxtNgayCT.locked = True
TxtDienGiai.locked = True
TxtMaKho.locked = True
CmdDau.Visible = True
CmdSau.Visible = True
CmdTruoc.Visible = True
CmdCuoi.Visible = True
CmdThoat.Visible = True
CmdSua.Visible = True
CmdKhong.Visible = False
CmdGhi.Visible = False
CmdXoa.Visible = True
CmdThem.Visible = True
Option1(0).Enabled = False
Option1(1).Enabled = False
CmdNgayCT.Enabled = False
End Sub
'End of Source For HDNhap " Hoa don nhap hang "
'========================================================
'Source Code For HDNhapCT " Hoa don nhap hang chi tiet"
'========================================================
'START FROM HERE
Private Sub CmdCuoiCT_Click()
On Error GoTo Err_Cuoi_Click
If AdodcHDNhapCT.Recordset.EOF Then
MsgBox "Ban dang o ban ghi cuoi!", vbOKOnly, "Thong bao"
Else
AdodcHDNhapCT.Recordset.MoveLast
End If
Exit_Cuoi_Click:
Exit Sub
Err_Cuoi_Click:
MsgBox Err.Description
Resume Exit_Cuoi_Click
End Sub
Private Sub CmdDauCT_Click()
On Error GoTo Err_Dau_Click
If AdodcHDNhapCT.Recordset.BOF Then
MsgBox "Ban dang o ban ghi dau tien!", vbOKOnly, "Thong bao"
Else
AdodcHDNhapCT.Recordset.MoveFirst
End If
Exit_Dau_Click:
Exit Sub
Err_Dau_Click:
MsgBox Err.Description
Resume Exit_Dau_Click
End Sub
Private Sub CmdGhiCT_Click()
On Error GoTo Err_ghi_click
CBK = DcboMaHH.Text
If CBK = "" Then
MsgBox "Chua Chon ma hang hoa"
DcboMaHH.SetFocus
Else
AdodcHDNhapCT.Recordset.Update
Lock_textCT
End If
DGridHDNhapCT.Refresh
AdodcHDNhapCT.Recordset.Filter = "SoCT = '" & TxtSoCT & "'"
AdodcHDNhapCT.Recordset.Requery
TinhTongCong
TxtTongCong.Refresh
ThanhTienVND
Exit_ghi_click:
DcboMaHH.SetFocus
Exit Sub
Err_ghi_click:
MsgBox "Du lieu da nhap vao khong hop le"
Resume Exit_ghi_click
End Sub
Private Sub CmdKhongCT_Click()
On Error GoTo Err_Khong_Click
mKhong = True
mLoad = False
mChange = False
mGhi = False
AdodcHDNhapCT.Refresh
AdodcHDNhapCT.Recordset.CancelUpdate
AdodcHDNhapCT.Recordset.Filter = "SoCT = '" & TxtSoCT & "'"
AdodcHDNhapCT.Recordset.Requery
Lock_textCT
CmdThemCT.SetFocus
xThemCT = False
Exit_Khong_Click:
DcboMaHH.SetFocus
Exit Sub
Err_Khong_Click:
MsgBox "Can nhap du lieu cho truong khoa"
Resume Exit_Khong_Click
End Sub
Private Sub CmdSauCT_Click()
If AdodcHDNhapCT.Recordset.EOF Then
MsgBox "Ban dang o ban ghi cuoi!", vbOKOnly, "Information"
Else
AdodcHDNhapCT.Recordset.MoveNext
End If
End Sub
Private Sub CmdSuaCT_Click()
On Error GoTo Err_Sua_click
recnum = AdodcHDNhapCT.Recordset.Bookmark
Unlock_textCT
xThemCT = False
mKhong = False
mLoad = False
mChange = False
mGhi = False
TinhTongCong
Exit_Sua_click:
Exit Sub
Err_Sua_click:
MsgBox Err.Description
Resume Exit_Sua_click
End Sub
Private Sub CmdThemCT_Click()
On Error GoTo Err_Them_click
xThemCT = True
mKhong = False
mLoad = False
mChange = False
mGhi = False
AdodcHDNhapCT.Recordset.AddNew
Unlock_textCT
AdodcHDNhapCT.Recordset.Fields("SoCT") = Trim(TxtSoCT.Text)
TinhTongCong
TxtTenHH.Text = ""
Exit_Them_click:
Exit Sub
Err_Them_click:
MsgBox Err.Description
Resume Exit_Them_click
End Sub
Private Sub CmdTruocCT_Click()
If AdodcHDNhapCT.Recordset.BOF Then
MsgBox "Ban dang o ban ghi dau tien!", vbOKOnly, "Thong bao"
Else
AdodcHDNhapCT.Recordset.MovePrevious
End If
End Sub
Private Sub CmdXoaCT_Click()
On Error GoTo Err_Xoa_click
xThemCT = False
mKhong = False
mLoad = False
mChange = False
mGhi = False
xXoa = True
Dim TraLoi
TraLoi = MsgBox("Ban muon xoa Ma hang " & DcboMaHH.Text & _
" (cung voi cac thong tin lien quan)?", 48 + 4, "Thong bao")
If TraLoi = 6 Then
AdodcHDNhapCT.Recordset.Delete
AdodcHDNhapCT.Recordset.Clone
AdodcHDNhapCT.Recordset.MoveNext
If AdodcHDNhapCT.Recordset.EOF Then
AdodcHDNhapCT.Recordset.MoveLast
End If
End If
AdodcHDNhapCT.Recordset.Filter = "SoCT = '" & TxtSoCT & "'"
AdodcHDNhapCT.Recordset.Requery
TinhTongCong
ThanhTienVND
Exit_Xoa_click:
Exit Sub
Err_Xoa_click:
MsgBox "Khong the xoa ban ghi nay !"
Resume Exit_Xoa_click
End Sub
Private Sub Lock_textCT()
DcboMaHH.locked = True
TxtDvt.locked = True
TxtSl.locked = True
TxtDGUsd.locked = True
CmdDauCT.Visible = True
CmdSauCT.Visible = True
CmdTruocCT.Visible = True
CmdCuoiCT.Visible = True
CmdSuaCT.Visible = True
CmdKhongCT.Visible = False
CmdGhiCT.Visible = False
CmdXoaCT.Visible = True
CmdThemCT.Visible = True
DGridHDNhapCT.AllowUpdate = False
End Sub
Private Sub Unlock_textCT()
DcboMaHH.locked = False
TxtDvt.locked = False
TxtSl.locked = False
TxtDGUsd.locked = False
CmdDauCT.Visible = False
CmdSauCT.Visible = False
CmdTruocCT.Visible = False
CmdCuoiCT.Visible = False
CmdSuaCT.Visible = False
CmdKhongCT.Visible = True
CmdGhiCT.Visible = True
CmdXoaCT.Visible = False
CmdThemCT.Visible = False
End Sub
Private Sub AdodcHDNhap_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
txtSoPhieu.Text = "PhiÕu nhËp " & AdodcHDNhap.Recordset.AbsolutePosition & _
" trong " & AdodcHDNhap.Recordset.RecordCount
End Sub
Private Sub AdodcHDNhapCT_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
txtSoPhieuCT.Text = "Hµng nhËp hiÖn t¹i : " & AdodcHDNhapCT.Recordset.RecordCount
End Sub
Form báo cáo xuất nhập
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim rs1 As ADODB.Recordset
Dim loai As String
Private Sub CboSoCT_Click()
CmdXemTruoc.Enabled = True
CmdInBC.Enabled = True
End Sub
Private Sub CmdXemTruoc_Click()
Dim rs As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset
Dim Sql As String
Dim sql1 As String
Dim Tien As Double
If loai = "Xuat" Then
sql1 = "SELECT C.TenKH AS Ten,C.DiaChi,C.Tel,C.Email,H.TT,H.DienGiai,H.Makho,H.TyGia,H.NgayCT,H.SoCT FROM tblDMKH As C ,tblHDXuat AS H WHERE C.MaKH = H.MaKH AND H.SOCT ='" & CboSoCT.Text & "'"
Sql = "SELECT C.MaHH, H.TenHH, C.DVT,C.SL,C.DGVUSD,C.ThanhTien FROM tblDMHH AS H, tblHDXuatCT AS C WHERE C.MaHH= H.MaHH AND SoCT ='" & CboSoCT.Text & "'"
Else
sql1 = "SELECT C.TenNhaCC AS Ten,C.DiaChi,C.Tel,C.Email,H.TT,H.DienGiai,H.Makho,H.TyGia,H.NgayCT,H.SoCT FROM tblDMNhaCC As C ,tblHDNhap AS H WHERE C.MaNhaCC=H.MaNhaCC AND H.SOCT ='" & CboSoCT.Text & "'"
Sql = "SELECT C.MaHH, H.TenHH, C.DVT,C.SL,C.DGVUSD,C.ThanhTien FROM tblDMHH AS H, tblHDNhapCT AS C WHERE C.MaHH= H.MaHH AND SoCT ='" & CboSoCT.Text & "'"
End If
rs.Open Sql, conn
rs1.Open sql1, conn
Cr.SetTablePrivateData 0, 3, rs
Cr.ReportFileName = App.Path & "\Reports\rptPhieuNH.rpt"
Cr.Formulas(0) = "TenKH= '" & rs1.Fields("Ten") & "'"
Cr.Formulas(1) = "DienThoai='" & rs1.Fields("Tel") & "'"
Cr.Formulas(2) = "Email= '" & rs1.Fields("Email") & "'"
Cr.Formulas(3) = "DiaChi='" & rs1.Fields("DiaChi") & "'"
'Cr.Formulas(4) = "NguoiNhan= '" & txtTenNV.Text & "'"
Cr.Formulas(5) = "HTTT='" & rs1.Fields("TT") & "'"
Cr.Formulas(6) = "SoCT= '" & rs1.Fields("SoCT") & "'"
Cr.Formulas(7) = "NgayCT='" & rs1.Fields("NgayCT") & "'"
Cr.Formulas(8) = "DienGiai= '" & rs1.Fields("DienGiai") & "'"
Cr.Formulas(9) = "MaKho='" & rs1.Fields("MaKho") & "'"
'Cr.Formulas(10) = "TongTien= '" & TxtTongCong.Text & "'"
Cr.Formulas(11) = "TyGia='" & rs1.Fields("TyGia") & "'"
'Cr.Formulas(12) = "ThanhTienVND= '" & txtThanhTienVND.Text & "'"
'Tien = txtThanhTienVND.Text
'Cr.Formulas(13) = "TienVietChu='" & TienVND(Tien) & "'"
Cr.PrintReport
rs.Close
End Sub
Private Sub Form_Load()
CmdXemTruoc.Enabled = False
CmdInBC.Enabled = False
End Sub
Private Sub Option1_Click(Index As Integer)
Dim OptSelected As Long
Dim strSQL As String
OptSelected = Index
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QuanLyBanHang.mdb;Persist Security Info=False"
conn.Open
CboSoCT.Clear
If OptSelected = 0 Then
strSQL = "SELECT SoCT FROM tblHDXuat ORDER BY SoCT"
rs.Open strSQL, conn
rs.MoveFirst
Do Until rs.EOF
CboSoCT.AddItem (rs!SoCT)
rs.MoveNext
Loop
loai = "Xuat"
Else
strSQL = "SELECT SoCT FROM tblHDNhap ORDER BY SoCT"
rs.Open strSQL, conn
rs.MoveFirst
Do Until rs.EOF
CboSoCT.AddItem (rs!SoCT)
rs.MoveNext
Loop
loai = "Nhap"
End If
rs.Close
End Sub
Các file đính kèm theo tài liệu này:
- Xây dựng phần mềm quản lý kho tại công ty TNHH Quốc Minh.DOC