|
Đó hỏi: Tôi là một giáo viên hoàn toàn tự học lập trình. Tôi muốn viết một chương trình quản lý học sinh bằng VB6, trong đó có nhập hình tự động. Xin chỉ giúp.
|
| <thpt_bctamnong@> |
|
Đây trả lời: Giả sử database có tên HocSinh.MDB, bảng dữ liệu chứa thông tin về học sinh có tên tbHocSinh, có cấu trúc MaHocSinh (Text, 3), TenHocSinh (Text, 25), HinhAnh (kiểu OLE Object nếu được tạo trong Access; hoặc kiểu Binary nếu được tạo trong Visual Data Manager của VB). Bạn nên chứa tập tin ảnh theo cách sau:
- Phần đầu tên tập tin trùng với Mã học sinh. Phần đuôi là .BMP hoặc .JPG. Ví dụ: ảnh của học sinh lớp 10A3 có mã học sinh 10A3_001 sẽ được lưu dưới tên tập tin là 10A3_001.JPG.
- Các tập tin đặt trong một thư mục riêng để dễ quản lý. Trong ví dụ này, tôi sử dụng cùng thư mục chứa database.
Trong VB6, tạo mới một project có kiểu Standard EXE, chọn mục Components trên trình đơn Project. Trên hộp thoại Components, chọn trang Controls, đánh dấu chọn mục Microsoft ADO Data Control 6.0 (OLEDB). Trên form Form1 mặc định, vẽ một ADO control có tên Adodc1 với các thuộc tính như sau:
|
|
- ConnectionString:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:Chuong_Can_ChipVB6NhapHinhAnhTuDongVaoTableHocSinh.mdb;Persist Security Info=False
- CommandType: adCmdTable
- RecordSource: tbHocSinh
Vẽ tiếp hai text box có tên txtMaHocSinh (thuộc tính DataSource = Adodc1; DataField = MaHocSinh) dùng để nhập dữ liệu cho field MaHocSinh và txtTenHocSinh (thuộc tính DataSource = Adodc1; DataField = TenHocSinh) dùng để nhập dữ liệu cho field TenHocSinh. Vẽ tiếp một image control có tên imgHinhAnh (thuộc tính DataSource = Adodc1; DataField = HinhAnh) dùng để nhập dữ liệu cho field HinhAnh.
Bạn thiết kế thêm hai nút lệnh có tên cmdHinh và cmdThem. Form có dạng như hình 1. Bạn gõ vào đoạn mã 1.
Mỗi lần nhập thông tin học sinh, khi bấm nút lệnh cmdHinh, chương trình tự động kiểm tra mã học sinh, nếu tập tin khác rỗng thì tìm kiếm tập tin hình ảnh tương ứng, nếu tìm thấy thì chèn hình vào field HinhAnh.
|
|
Đoạn mã 1
|
|
‘ Xài chung cho toàn bộ form:
Dim rs As ADODB.Recordset
Dim b() As Byte, f As Long, fn As String
Private Sub Form_Load()
Set rs = Adodc1.Recordset
End Sub
Private Sub cmdHinh_Click()
If IsNull(txtMaHocSinh) Then
MsgBox "Mã học sinh không được để trống"
Exit Sub
End If
Dim cPathTapTinAnh As String, cTapTinAnh As String
cPathTapTinAnh = App.Path & "" & txtMaHocSinh & ".JPG"
cTapTinAnh = UCase(txtMaHocSinh & ".JPG")
If UCase(Dir(cPathTapTinAnh)) <> cTapTinAnh Then
MsgBox "Học sinh này chưa có ảnh !"
Exit Sub
End If
f = FreeFile()
fn = cPathTapTinAnh
Open fn For Binary Access Read As #f ‘ Mở file hình ảnh
ReDim b(FileLen(fn) - 1)
Get #f, , b() ‘ Đọc hình ảnh từ file đưa vào bộ nhớ
Close #f
rs!HinhAnh = b() ‘ Cập nhật hình ảnh vào field
rs.Update
End Sub
Private Sub cmdThem_Click()
rs.AddNew ‘ Thêm mẩu tin mới
txtMaHocSinh.SetFocus
End Sub
|
|

Hình 1: Form cần thiết kế
|
| CHƯƠNG CAN CHÍP |
|
0 Góp ý:
Gởi góp ý mới
<< Trở về