Tìm trong:Webe-CHÍP

Bộ gõ (kiểu Vni/Telex/Viqr)Tắt (Alt+T)Mở (Alt+M)

 
Trang chủ ĐÓ HỎI, ĐÂY TRẢ LỜI TT 348

Nhập hình ảnh tự động trong VB6

Đó 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_Chip\VB6\NhapHinhAnhTuDongVaoTable\HocSinh.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

Sử dụng chức năng Label trong Gmail

Đó hỏi: Chức năng nhãn (Label) trong Gmail có tác dụng gì? Xin hướng dẫn cách dùng.
<htindung@>
Đây trả lời: Chức năng Label trong Gmail dùng để giúp người dùng phân loại thư để sau đó có thể nhanh chóng truy cập vào từng nhóm thư cùng nhãn. Cách sử dụng như sau:
1. Tạo: đánh dấu chọn thư cần phân loại > mở danh sách tác vụ (More Actions) rồi chọn New label > gõ tên cho nhóm phân loại này > bấm OK.

2. Sửa tên: Bấm mục “Sửa đổi nhãn” (Edit labels) trong khung Labels bên trái màn hình Gmail > bấm mục “đổi tên” (Rename) > nhập tên mới và bấm OK

3. Xóa: Bấm mục “Sửa đổi nhãn” trong khung Labels bên trái màn hình Gmail > bấm mục “xóa” (Delete) > bấm OK để xác nhận. Chú ý: việc xóa nhãn không làm thư trong nhóm đó bị xóa.
4. Để gỡ bỏ thư khỏi 1 nhãn, bạn mở thư rồi bấm nút “Xóa nhãn”.
Lê Hoàn.

[Đầu trang]