|
Tra cứu
bài thuốc bằng Access |
|
Đó hỏi: Tôi muốn viết một chương trình tra cứu
bài thuốc bằng Access giống như chương trình từ điển
Lạc Việt, trong đó có 2 textbox, một để nhập từ cần
tra bằng bàn phím, còn một để trình bày ý nghĩa của
từ cần tra và 1 listbox chứa danh sách từ dùng cho
những người thích dùng chuột. Làm cách nào để khi
nhập một ký tự nào đó vào ô textbox của từ cần tra
thì trong listbox xuất hiện một vệt sáng tại từ
giống (hoặc gần giống) với từ vừa nhập, và khi nhấn
phím Enter hoặc nhấp đúp chuột vào từ này thì nội
dung của từ xuất hiện ở textbox còn lại, đồng thời
từ này cũng xuất hiện ở ô textbox của từ cần tra? |
|
<tongthanhnguyen@> |
|
Đây
trả lời: Trong
Access, không thể dùng các hàm API
SendMessageByString và SendMessage cho một listbox
hoặc combobox như trong Visual Basic vì listbox
trong Access không có thuộc tính Hwnd. Tuy nhiên, có
một cách khác rất đơn giản: |
|
Bước
1: Tạo query có tên qryDanhSachBaiThuoc (hình 1).
Query này là danh sách tất cả các bài thuốc có trong
table tbBaiThuoc. Mỗi lần người sử dụng gõ từ cần
tra thì hàm DLookup sẽ dò tìm trong query để chọn ra
tên bài thuốc gần đúng nhất. |
|

Hình 1: Query cần thiết kế |
|
Bước
2: Tạo form có tên subfrmBaiThuoc với thuộc tính
Record Source là tbBaiThuoc (để lấy dữ kiện từ table
tbBaiThuoc) và chỉ có một textbox tên NDBaiThuoc với
thuộc tính Control Source là NDBaiThuoc (để lấy dữ
kiện từ field NDBaiThuoc). |
|
Bước
3: Tạo form có tên frmBaiThuoc (hình 2) có một
textbox tên txtTenBaiThuoc, một listbox tên
lstTenBaiThuoc với thuộc tính Row Source Type là
Table/Query, và thuộc tính Row Source là |
|

Hình 2: Form cần thiết kế |
|
SELECT tbBaiThuoc.TenBaiThuoc FROM tbBaiThuoc ORDER
BY
tbBaiThuoc.TenBaiThuoc; |
|
Vẽ
thêm một checkbox có tên chkChinhXac để người sử
dụng có thể chọn lựa cách thức tra từ có phân biệt
chữ thường, chữ hoa hay không. Cuối cùng, để người
sử dụng có thể bấm vào một mục trong listbox để hiển
thị nội dung trong khung kế bên, bạn vẽ một subform
có thuộc tính Source Object là subfrmBaiThuoc, thuộc
tính Link Child Fields là TenBaiThuoc và thuộc tính
Link Master Fields là lstTenBaiThuoc.
Bước 4: Với form frmBaiThuoc, trong cửa sổ
Properties, lần lượt chọn các tình huống On Open của
form và On Change của textbox txtTenBaiThuoc để gõ
vào các thủ tục như đoạn mã 1. Khi mở form
frmBaiThuoc, nó có dạng như hình 3. |
|
Đoạn
mã 1
Private Sub
Form_Open(Cancel As Integer)
chkChinhXac = False ‘ Mặc định chưa đánh dấu
chọn
End Sub
Private Sub txtTenBaiThuoc_Change()
Dim sTenBaiThuoc As Variant ‘ Phải là kiểu
Variant
If chkChinhXac Then
sTenBaiThuoc = DLookup("[TenBaiThuoc]",
"qryDanhSachBaiThuoc", _
"InStr(1,[TenBaiThuoc],Forms!frmBaiThuoc!txtTenBaiThuoc.Text,0)>0")
Else
sTenBaiThuoc = DLookup("[TenBaiThuoc]",
"qryDanhSachBaiThuoc", _
"InStr(1,[TenBaiThuoc],Forms!frmBaiThuoc!txtTenBaiThuoc.Text,1)>0")
End If
If Not IsNull(sTenBaiThuoc) Then
lstTenBaiThuoc.Value = sTenBaiThuoc
End If
End Sub |
|

Hình 3: Form lúc chạy |
|
CHƯƠNG CAN CHÍP |
|
Tự động
đăng nhập (auto-logon) Windows Vista |
|
Đó hỏi: Tôi muốn mỗi lần khởi động máy là
Windows Vista tự động log in, không phải mất công
nhập user name và password nhưng không biết cách
làm. e-CHÍP hãy giúp tôi. |
|
<batong@> |
|
Đây trả lời: Để Windows Vista tự động đăng nhập,
bạn làm theo các bước dưới đây.
1. Bấm Start > gõ netplwiz vào khung Start Search >
bấm Enter.
2. Trong cửa sổ User Account, bỏ dấu chọn mục Users
must enter a username and password to use this
computer > chọn account muốn cho đăng nhập tự động >
bấm nút Apply.
3. Trong hộp thoại Automatically Log On, nhập 2 lần
password giống nhau (nếu không có xác lập password
thì bỏ trống) > bấm OK 2 lần để thoát. |
|
 |
|
LÊ HOÀN |
|
[Đầu trang] |