Tiêu đề: Lập chương trình quản lý kho bằng Access.
Về lập trình access mình cũng không biết nhiều nhưng mình có sưu tầm được một bài lập trình Access khá hay. Nay share cho các bạn tham khảo.
Đề bài: Trong phần xuất hàng có 1 textbox nhập mã hàng, cần so sánh textbox với hàng tồn kho, nếu có mã số đó thì chuyển sang mục khác, nếu không thì phải nhập lại và thông báo không có hàng. Tương tự, khi nhập số lượng xuất phải so sánh với số lượng tồn kho.
Đáp:
Có 2 vấn đề chính mà chúng ta cần để ý giải quyết:
1. Nhận biết thời điểm kiểm tra dữ liệu nhập. Nếu dùng điều khiển TextBox, bạn có thể khai báo hàm xử lý sự kiện KeyDown kết hợp với TextBox nhập liệu, trong hàm này bạn kiểm tra xem phím ấn có phải là phím Enter không (keycode=13), nếu phải thì sẽ kiểm tra tính đúng đắn của dữ liệu nhập.
2. Truy xuất database. Có nhiều cấp độ truy xuất database khác nhau mà bạn có thể dùng:
- Truy xuất trực tiếp vào cấu trúc vật lý file database. Đây là cách độc lập nhất, nhưng chẳng may đây là cách khó khăn và phụ thuộc vào công nghệ quản lý database, do đó tránh dùng nó.
- Truy xuất database bằng các lệnh của ngôn ngữ đặc dụng của hệ quản trị CSDL, thí dụ chúng ta có thể dùng FoxPro để viết đoạn code truy xuất database. Tuy cách này không đòi hỏi phải nắm vững cấu trúc vật lý file database, nhưng nó vẫn còn phụ thuộc vào hệ quản trị CSDL.
- Truy xuất thông qua giao tiếp ODBC (Open Database Connectivity). ODBC là giao tiếp truy xuất database chuẩn và độc lập với công nghệ quản lý database, nhờ đó code của ứng dụng không cần phải cập nhật lại mỗi khi database bị thay đổi công nghệ.
- Truy xuất bằng DAO hay ADO, đây là giao tiếp truy xuất database theo mô hình hướng đối tượng và dựa trên ODBC để code của ứng dụng độc lập với công nghệ quản lý database. Nếu viết ứng dụng trên Windows, chúng ta nên dùng ADO vì đây là giao tiếp truy xuất database cao cấp, an toàn, thân thiện nhất.
Thí dụ, để giải quyết vấn đề này, chúng ta có thể tạo 1 Form Access chứa 2 TextBox: Textbox nhập mã mặt hàng tên là txtMSMH và TextBox nhập số lượng xuất có tên là txtSLX. Hãy khai báo hàm xử lý sự kiện KeyDown trên từng TextBox (chọn textbox để hiển thị cửa sổ Properties của nó, chọn tab “Event” trên cửa sổ thuộc tính, duyệt tìm mục OnKeyDown rồi khai báo hàm xử lý sự kiện dạng “Code Builder”) rồi viết code như sau (đoạn code dưới đây chỉ để demo ý tưởng giải quyết vấn đề):
khai báo biến connection tương ứng với database
Private cn As ADODB.Connection
khai báo biến recordset chứa kết quả tìm kiếm
Private rs As ADODB.Recordset
Hàm khởi động form làm việc
Private Sub Form_Load()
dùng ADO connection kết hợp với database hiện hành
Set cn = CurrentProject.AccessConnection
tạo đối tượng ADO Recordset để dùng
Set rs = New ADODB.Recordset
End Sub
hàm xử lý sự kiện ấn phím trên textbox nhập MSMH
Private Sub txtMSMH_KeyDown(KeyCode As Integer, Shift As Integer)
kiểm tra có phải ấn phím Enter
If KeyCode <> 13 Then Exit Sub
nếu phải bắt đầu xử lý
With rs
nếu đang mở Recordset thì đóng lại
If .State = True Then .Close
Set .ActiveConnection = cn
khai báo câu truy vấn tìm mặt hàng có mã nhập
.Source = “SELECT * FROM DSHTonKho where MSMH = “ & txtMSMH.Text
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open
End With
kiểm tra có không
If rs.EOF = True Then
nếu không có thì xóa giá trị cũ và yêu cầu nhập lại
txtMSMH.Text = “”
MsgBox “Không có hàng có MSMH này. Hãy Nhập lại” thiết lập cursor nhập liệu trên TextBox nhập MSMH txtMSMH.SetFocus
Else
thiết lập cursor nhập liệu trên TextBox nhập số lượng xuất
txtSLX.SetFocus
End If
End Sub
hàm xử lý sự kiện ấn phím trên textbox nhập số lượng xuất
Private Sub txtSLX_KeyDown(KeyCode As Integer, Shift As Integer)
kiểm tra có phải ấn phím Enter
If KeyCode <> 13 Then Exit Sub
nếu phải bắt đầu kiểm tra
giả sử field thứ i trong record chứa số lượng tồn
If CInt(rs.Fields(i)) < CInt(txtSLX.Text) Then
MsgBox “Không đủ số lượng xuất cho mặt hàng này. Hãy nhập lại.”
xóa giá trị cũ và yêu cầu nhập lại
txtSLX.Text = “”
thiết lập cursor nhập liệu trên TextBox nhập số lượng xuất
txtSLX.SetFocus
End If
End Sub
Hi vọng giúp đc các bạn đang nghiên cứu về lập trình Access!
|||||||||||| Hãy cùng chia sẻ với bạn bè bằng cách ||||||||||||
Copy đường link dưới đây gửi đến nick yahoo bạn bè!
Lập chương trình quản lý kho bằng Access.
Trang 1 trong tổng số 1 trang
* Viết tiếng Việt có dấu, là tôn trọng người đọc. * Chia sẻ bài sưu tầm có ghi rõ nguồn, là tôn trọng người viết. * Thực hiện những điều trên, là tôn trọng chính mình.
-Nếu chèn smilies có vấn đề thì bấm A/a trên phải khung viết bài
Tiêu đề: Lập chương trình quản lý kho bằng Access.
Về lập trình access mình cũng không biết nhiều nhưng mình có sưu tầm được một bài lập trình Access khá hay. Nay share cho các bạn tham khảo.
Đề bài: Trong phần xuất hàng có 1 textbox nhập mã hàng, cần so sánh textbox với hàng tồn kho, nếu có mã số đó thì chuyển sang mục khác, nếu không thì phải nhập lại và thông báo không có hàng. Tương tự, khi nhập số lượng xuất phải so sánh với số lượng tồn kho.
Đáp:
Có 2 vấn đề chính mà chúng ta cần để ý giải quyết:
1. Nhận biết thời điểm kiểm tra dữ liệu nhập. Nếu dùng điều khiển TextBox, bạn có thể khai báo hàm xử lý sự kiện KeyDown kết hợp với TextBox nhập liệu, trong hàm này bạn kiểm tra xem phím ấn có phải là phím Enter không (keycode=13), nếu phải thì sẽ kiểm tra tính đúng đắn của dữ liệu nhập.
2. Truy xuất database. Có nhiều cấp độ truy xuất database khác nhau mà bạn có thể dùng:
- Truy xuất trực tiếp vào cấu trúc vật lý file database. Đây là cách độc lập nhất, nhưng chẳng may đây là cách khó khăn và phụ thuộc vào công nghệ quản lý database, do đó tránh dùng nó.
- Truy xuất database bằng các lệnh của ngôn ngữ đặc dụng của hệ quản trị CSDL, thí dụ chúng ta có thể dùng FoxPro để viết đoạn code truy xuất database. Tuy cách này không đòi hỏi phải nắm vững cấu trúc vật lý file database, nhưng nó vẫn còn phụ thuộc vào hệ quản trị CSDL.
- Truy xuất thông qua giao tiếp ODBC (Open Database Connectivity). ODBC là giao tiếp truy xuất database chuẩn và độc lập với công nghệ quản lý database, nhờ đó code của ứng dụng không cần phải cập nhật lại mỗi khi database bị thay đổi công nghệ.
- Truy xuất bằng DAO hay ADO, đây là giao tiếp truy xuất database theo mô hình hướng đối tượng và dựa trên ODBC để code của ứng dụng độc lập với công nghệ quản lý database. Nếu viết ứng dụng trên Windows, chúng ta nên dùng ADO vì đây là giao tiếp truy xuất database cao cấp, an toàn, thân thiện nhất.
Thí dụ, để giải quyết vấn đề này, chúng ta có thể tạo 1 Form Access chứa 2 TextBox: Textbox nhập mã mặt hàng tên là txtMSMH và TextBox nhập số lượng xuất có tên là txtSLX. Hãy khai báo hàm xử lý sự kiện KeyDown trên từng TextBox (chọn textbox để hiển thị cửa sổ Properties của nó, chọn tab “Event” trên cửa sổ thuộc tính, duyệt tìm mục OnKeyDown rồi khai báo hàm xử lý sự kiện dạng “Code Builder”) rồi viết code như sau (đoạn code dưới đây chỉ để demo ý tưởng giải quyết vấn đề):
khai báo biến connection tương ứng với database
Private cn As ADODB.Connection
khai báo biến recordset chứa kết quả tìm kiếm
Private rs As ADODB.Recordset
Hàm khởi động form làm việc
Private Sub Form_Load()
dùng ADO connection kết hợp với database hiện hành
Set cn = CurrentProject.AccessConnection
tạo đối tượng ADO Recordset để dùng
Set rs = New ADODB.Recordset
End Sub
hàm xử lý sự kiện ấn phím trên textbox nhập MSMH
Private Sub txtMSMH_KeyDown(KeyCode As Integer, Shift As Integer)
kiểm tra có phải ấn phím Enter
If KeyCode <> 13 Then Exit Sub
nếu phải bắt đầu xử lý
With rs
nếu đang mở Recordset thì đóng lại
If .State = True Then .Close
Set .ActiveConnection = cn
khai báo câu truy vấn tìm mặt hàng có mã nhập
.Source = “SELECT * FROM DSHTonKho where MSMH = “ & txtMSMH.Text
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open
End With
kiểm tra có không
If rs.EOF = True Then
nếu không có thì xóa giá trị cũ và yêu cầu nhập lại
txtMSMH.Text = “”
MsgBox “Không có hàng có MSMH này. Hãy Nhập lại” thiết lập cursor nhập liệu trên TextBox nhập MSMH txtMSMH.SetFocus
Else
thiết lập cursor nhập liệu trên TextBox nhập số lượng xuất
txtSLX.SetFocus
End If
End Sub
hàm xử lý sự kiện ấn phím trên textbox nhập số lượng xuất
Private Sub txtSLX_KeyDown(KeyCode As Integer, Shift As Integer)
kiểm tra có phải ấn phím Enter
If KeyCode <> 13 Then Exit Sub
nếu phải bắt đầu kiểm tra
giả sử field thứ i trong record chứa số lượng tồn
If CInt(rs.Fields(i)) < CInt(txtSLX.Text) Then
MsgBox “Không đủ số lượng xuất cho mặt hàng này. Hãy nhập lại.”
xóa giá trị cũ và yêu cầu nhập lại
txtSLX.Text = “”
thiết lập cursor nhập liệu trên TextBox nhập số lượng xuất
txtSLX.SetFocus
End If
End Sub
Hi vọng giúp đc các bạn đang nghiên cứu về lập trình Access!