:: Quên mật khẩu ::

Gửi bài mới Trả lời chủ đề này
<b>-» Devil_nhok_x «-</b>
Lập chương trình quản lý kho bằng Access.
Wed Aug 13, 2008 2:22 pm


khonkhothat
Ma cũ
Status:
Ma cũ
Nam
Bài gửiTiê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.Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang
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
Permissions in this forum:Bạn không có quyền trả lời bài viết
Quảng cáo rao vặt 24h :: 

-
<-------------------------------->
|
Bookmarks

Lập chương trình quản lý kho bằng Access.

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down
Wed Aug 13, 2008 2:22 pm
khonkhothat
Ma cũ

Cấp bậc thành viên
Danh vọng:
13%/1000%

Tài năng:30%/100%

Liên lạc

Thông tin thành viên
» Nam
» Tổng số bài gửi: 13
» Age: 30
» Hệ thống điểm chất lượng:
0 / 1000 / 100

» Hệ thống cảnh cáo:
0 / 1000 / 100

» Registration date: 13/08/2008
» Hiện giờ đang:

Bài gửiTiê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!

Chữ ký của thành viên



Trả lời nhanh
Trang 1 trong tổng số 1 trang
Powered by: phpBB2 - Copyright ©2000 - 2010, GNU General Public License.
Skin Halloween HDviet.Us.To- Rip by Ligerv
Free forum | © phpBB | Free forum support | Liên hệ | Report an abuse | Create your own free blog