Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Giúp em chỉnh lại lệnh tìm kiếm
#1
Em tạo 1 nút tìm kiếm trên form với câu lệnh như bên dưới, em muốn khi nó tìm thấy thông tin thì di chuyển đến record chứa thông tin đó, hiển thị số liệu trên form, nhưng làm không được, anh/chị giúp em. Cám ơn nhiều!
Private Sub tim_Click()
On Error GoTo Loi:
Dim macc As String
Dim bnhanvien As Recordset

macc = Me.macc
Set bnhanvien = CurrentDb.OpenRecordset("Select * From bnhanvien Where Macc = '" & macc & "'")
bnhanvien.FindFirst ("MAcc = '" & macc & "'")
If bnhanvien.NoMatch Then
MsgBox "Khong tim thay Khach hang" & " " & MAKH & " co mavt " & mavt, vbInformation, "Thong bao!"
bnhanvien.Close
Exit Sub
Else
If MsgBox ("DA TIM THAY THONG TIN KHACH HANG " & MAKH & " BAN CO MUON xem KHONG?", vbInformation + vbYesNo, "Thong bao") = vbYes Then
Me.Form.RecordSource = "SELECT * FROM bnhanvien WHERE macc like ('me.macc'=macc)"
Me.bnhanvienQuery.Requery


End If
End If
Loi:
Select Case Err:
Case 94
MsgBox "Ban vui long dien day du thong tin", vbInformation, "Thong bao"
Exit Sub
Case 13
MsgBox "nhap sai kieu du lieu", vbInformation, "Thong bao"
Exit Sub
End Select
End Sub
Chữ ký của audition Xin chào, mình là audition, Tham gia http://thuthuataccess.com/forum từ ngày 08-02 -12.
Reply
Những người đã cảm ơn
#2
- Tớ góp ý xíu nhé :
+ Khi cần hiển thị một record của 1 table lên Form tớ nghĩ không cần thiết tạo 1 nút đâu. Bạn thiết lập Record Source của Form lấy dữ liệu từ table bạn mún lấy record. Khi đó bạn tạo các textbox lần lượt các field mà bạn mún hiển thị trên form ( tất nhiên là Control source của textbox lấy dữ liệu từ các field tương ứng nhé. Cái này chắc bạn bít rùi nhỉ). Sau đó bạn mún tìm theo mã thì cứ nhập mã mà ô textbox tương ứng khi tab ra thì nếu record đã tồn tại thì sẽ hiển thị ra ngay ^^! còn đvới những record chưa tồn tại thì xử lý 1 xíu ^^! như là hiển thị thông báo chẳng hạn !
+ Trém mình nhẹ xíu ^^!

Chữ ký của hoanglonglangtu Chiều tắt nắng trên con đường quen thuộc
Mưa rơi buồn qua ngõ vắng không em
Từng hạt ngọc rơi đùa qua kẽ lá
Những giọt tràn đầy ngõ ngách tâm tư
Em có biết chiều nay anh vẫn nhớ
Ở nơi nào em có nhớ chăng anh

Trên đời có quá nhiều chữ nếu,đáng tiếc là đều đã qua,việc đã xảy ra,hối hận cũng vô dụng
ღღღღღTài sản của hoanglonglangtu (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#3
Câu select của bạn ở trên thì thế này, ở dưới gán cho form thì phát biểu thế kia làm sao form nó hiểu.

Ở diễn đàn đã có rất nhiều bạn làm về form tìm kiếm. Sao bạn không tham khảo bài viết các bạn đó.
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Hạ Vàng
#4
HI, cám ơn đã hướng dẫn. Nhưng cái nút đó mình tìm tại form nhập liệu luôn, record source đã gán sẵn chỉ cần tìm thấy thì nó di chuyển đến record đó như nút next vậy đó. Ví dụ khi tìm thấy thì chạy lệnh để di chuyển đến mẫu tin là điều kiện tìm kiếm
DoCmd.GoToRecord , , "điều kiện tìm kiếm"
Chữ ký của audition Xin chào, mình là audition, Tham gia http://thuthuataccess.com/forum từ ngày 08-02 -12.
Reply
Những người đã cảm ơn
#5
- Mình không hỉu ý bạn lắm. Mạo muội nói thế này nhé :
* Ở Form nhập liệu bạn có thể làm như mình nói lần trước,ví dụ Form bạn nhập liệu cho table NhanVien gồm các field MaNV (key), TenNV, NamSinh, Tren form gồm các textbox MaNV, TenNV, NamSInh với các Control Source tương ứng bạn nhập vào ManV chẳng hạn khi có record sẵn thì Form sẽ load mẫu tin có sẵn, khi chưa có sẽ xử lý 1 chút để thêm vào mẫu tin mới lun ( để chặt chẽ 1 xíu thì bạn thiết kế nhập liệu MANV trước để tránh gây lỗi ngoài lề ). Mình đưa ra 1 ví dụ xử lý nhé :
+ Đối với textbox MaNV : ở event Exit ( ở đây tên textbox MaNV la UserID nhé )
Private Sub UserID_Exit(Cancel As Integer)
If DCount("UserID", "NhanVien", "MaNV='" & UserID & "'") = 0 Then
If (MsgBox ("Nhan vien chua ton tai, ban muon them nhanvien moi hay khong ", vbYesNo, "Thong Bao") = vbYes) Then
{ Bạn mún xử lý j thì tùy ^^! }
End If
End If
End Sub
Thân !
Chữ ký của hoanglonglangtu Chiều tắt nắng trên con đường quen thuộc
Mưa rơi buồn qua ngõ vắng không em
Từng hạt ngọc rơi đùa qua kẽ lá
Những giọt tràn đầy ngõ ngách tâm tư
Em có biết chiều nay anh vẫn nhớ
Ở nơi nào em có nhớ chăng anh

Trên đời có quá nhiều chữ nếu,đáng tiếc là đều đã qua,việc đã xảy ra,hối hận cũng vô dụng
ღღღღღTài sản của hoanglonglangtu (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#6
Không phải, ý em nói là tại form đó em làm 1 nút tìm kiếm, khi nhấn vào ô macc là T01 chẳng hạn rồi bấm nút tìm, nếu tìm thấy thì nó hiển thị tất cả thông tin của mã T01 lên chính cái form đó luôn
Chữ ký của audition Xin chào, mình là audition, Tham gia http://thuthuataccess.com/forum từ ngày 08-02 -12.
Reply
Những người đã cảm ơn
#7
- Cách mình hướng dẫn cho bạn giúp bạn không cần tới nút tìm kiếm và làm cho Form linh hoạt hơn, dễ dàng cho người dùng, nhưng đó là góp ý thui ^^!.
- Còn bạn mún sửng dụng button cũng ok, nhưng bạn nói rõ hơn về hiển thị toàn bộ nội dung của record là ntn, bạn mún hiển thị trên form với các field đó bằng Control nào. Mình đưa thêm 1 ý kiến nữa nhé:
* Nếu sử dụng button như bạn nói, đầu tiên bạn tạo 1 table có cấu trúc tương tự như table bạn cần lấy dữ liệu (table mới tạo không có record nào nhé), tạo 1 form (record source là table bạn mới tạo) với các control tương ứng sao cho phù hợp với các field đề hiển thị thông tin tốt nhất ( ví dụ filed ID thì chọn text, Field có data là True/false hay 0 -1 thì checkbox chẳng hạn ), bạn mún hiển thị bnhiu fields tùy thích nhé.
* Sau đó vào form của bạn Add subform là Form bạn mới tạo vào.
+ Ở đây mình ví dụ Table NhanVien cho Form chính (VD Frm_Main) của bạn, mình tạo thêm table aNhanVien, Form Frm_sb. Từ Frm_Main add subform Frm_sb.
+ Ở Frm_Main, tạo event cho button Btn_Search ( Giả sử bạn nhập mã NV cho textbox UserID nhé )
Private Sub Btn_Search_Click()
Dim msql
Docmd.RunSQL "Delete * from aNhanVien"
If DCount("UserID", "aNhanVien", "UserID='" & USerID & "'") = 0 Then
Msgbox "Find Not Found"
Exit sub
Else
msql=" Insert into aNhanVien select * from NhanVien where ( UserID=" & UserID & ");"
Docmd.RunSQL msql
End If
End Sub
Chữ ký của hoanglonglangtu Chiều tắt nắng trên con đường quen thuộc
Mưa rơi buồn qua ngõ vắng không em
Từng hạt ngọc rơi đùa qua kẽ lá
Những giọt tràn đầy ngõ ngách tâm tư
Em có biết chiều nay anh vẫn nhớ
Ở nơi nào em có nhớ chăng anh

Trên đời có quá nhiều chữ nếu,đáng tiếc là đều đã qua,việc đã xảy ra,hối hận cũng vô dụng
ღღღღღTài sản của hoanglonglangtu (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Hạ Vàng , audition
#8
[font=Times New Roman][size=medium]

Chào bạn!
Nếu bạn muốn tìm trực tiếp trên Form nhập liệu thì minh góp ý như thế này nhé:

Dim str As String
str = InputBox("Nhap ma kh can tim")
If str = "" Then Exit Sub
MaKH.SetFocus
DoCmd.FindRecord str
If str <> MaKH Then
MsgBox "Tim khong thay"
End If

Ban hay thế hàm InputBox bằng Txtbox nhé!

Còn mình đang viết 1 nút Tìm linh hoạt hơn vidu: khi mình nhập vào txtbox 1 chữ "a", khi nhna61 vào nút tìm thì ở dưới Form_sub hiển thị danh sách các khách hàng có tên chứa chữ "a" ra hết luôn, nhưng mình chưa làm được!

Nếu bạn nào làm được thì hãy giúp mình nhé!

Email của mình là: minhloitn@gmail.com
Cảm ơn trước nhé!
Chữ ký của minhloitn Xin chào, mình là minhloitn, Tham gia http://thuthuataccess.com/forum từ ngày 11-10 -11.
Reply
Những người đã cảm ơn
#9
nhờ mọi người kiểm tra hộ
minh co đoạn code này không biết lổi chổ nào mình tạo út in trên fom vb trong file excel nhưng khi nhấn nốt in trêm fom nó cứ đúng in không thấy ghì




File đính kèm
.zip   Danh_muc tai lieu trinh.zip (Kích cỡ: 223.84 KB / Tải về: 14)
Chữ ký của vuthao32 Xin chào, mình là vuthao32, Tham gia http://thuthuataccess.com/forum từ ngày 12-03 -12.
Reply
Những người đã cảm ơn
#10
hj, minhloitn
Nếu bạn mún tìm như vậy thì cách này ở trên của mình giúp đc đấy :
* Nếu sử dụng button như bạn nói, đầu tiên bạn tạo 1 table có cấu trúc tương tự như table bạn cần lấy dữ liệu (table mới tạo không có record nào nhé), tạo 1 form (record source là table bạn mới tạo) với các control tương ứng sao cho phù hợp với các field đề hiển thị thông tin tốt nhất ( ví dụ filed ID thì chọn text, Field có data là True/false hay 0 -1 thì checkbox chẳng hạn ), bạn mún hiển thị bnhiu fields tùy thích nhé.
* Sau đó vào form của bạn Add subform là Form bạn mới tạo vào.
+ Ở đây mình ví dụ Table NhanVien cho Form chính (VD Frm_Main) của bạn, mình tạo thêm table aNhanVien, Form Frm_sb. Từ Frm_Main add subform Frm_sb.
+ Ở Frm_Main, tạo event cho button Btn_Search ( Giả sử bạn nhập mã NV cho textbox UserID nhé )
Private Sub Btn_Search_Click()
Dim msql
Docmd.RunSQL "Delete * from aNhanVien"
If DCount("UserID", "NhanVien", "UserID='" & USerID & "'") = 0 Then
Msgbox "Find Not Found"
Exit sub
Else
msql=" Insert into aNhanVien select * from NhanVien where ( UserID like " & UserID & ");"
-- Bạn mún tìm mã có chữ "a" thì bạn nhập ở textbox (userID) là *a hay *a* hay a* tùy theo kiểu bạn mún hay tìm theo tên thì bạn đổi câu lệnh Insert lại là đc
Docmd.RunSQL msql
Frm_sb.Requery
End If
End Sub
Chúc may mắn !!
Chữ ký của hoanglonglangtu Chiều tắt nắng trên con đường quen thuộc
Mưa rơi buồn qua ngõ vắng không em
Từng hạt ngọc rơi đùa qua kẽ lá
Những giọt tràn đầy ngõ ngách tâm tư
Em có biết chiều nay anh vẫn nhớ
Ở nơi nào em có nhớ chăng anh

Trên đời có quá nhiều chữ nếu,đáng tiếc là đều đã qua,việc đã xảy ra,hối hận cũng vô dụng
ღღღღღTài sản của hoanglonglangtu (View All Items) ღღღღღ
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Help] K biết là lỗi hay gì cần trợ giúp. nhocdevill11 2 67 08-12-16, 05:02 PM
Bài mới nhất: nhocdevill11
  [Hỏi] File chạy chậm vì trong quá trình design phải chỉnh sửa và test thử nhiều. toancvp 4 265 29-07-16, 11:36 PM
Bài mới nhất: toancvp
  [Help] Nhờ anh em trong diễn đàn giúp mình thiết kế chương trình báo dịch hàng ngày vinhpaint 1 258 21-06-16, 09:15 AM
Bài mới nhất: zinzin8x
  [Help] ai giúp mình code lại sql này thành access với li_95 0 133 24-04-16, 05:59 PM
Bài mới nhất: li_95
  [HỎI] Không chạy được tìm kiếm truy vấn 9xconduongtoidi 3 228 01-04-16, 10:47 AM
Bài mới nhất: 9xconduongtoidi

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ