Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Help] Trích xuất dữ liệu
#21
- Báo lỗi do kết nối query của bạn có thêm tham số điều kiện. Để OpenRecordset là 1 Query có điều kiện phải làm cách khác chứ không Open như Table (thuần tuý Select Query không có đk thì mở được, không báo lỗi).
- Để OpenRecordset là 1 Query có điều kiện thì có 2 cách:
Cách 1: Chạy Query bằng câu lệnh SQL. Cách này thường dùng.
- Bạn để ý cách truyền tham số sau dấu "&".
- Tại sao có lệnh rs.MoveFirst? Vì Query này của bạn có thể trả về nhiều dòng, do vậy để cập nhật tất cả các dòng bạn phải cho con trỏ di chuyển về dòng đầu tiên của Recordset, sau đó update, sau đó di chuyển qua dòng kế tiếp (rs.MoveNext) và update. Lặp lại hoạt động này cho đến khi đến dòng cuối của Recordset thì ngưng (rs.EOF).
- Có trường hợp Recordset trả về không có dòng nào thì chương trình sẽ báo lỗi do vậy thêm dòng lệnh If rs.RecordCount>0...
 
Mã PHP:
Dim rs As DAO.RecordsetstrSQL As String
   strSQL 
"SELECT Nhaphoso.SoQD, Nhaphoso.NgayKetqua, Nhaphoso.Nguoicocong, Nhaphoso.Nguoihuonghangthang, Nhaphoso.Nguoihuongmotlan, Nhaphoso.Xa, Nhaphoso.Huyen, Nhaphoso.LoaiHS, Nhaphoso.Doituong, Nhaphoso.NguoiGQ, Nhaphoso.Ngaynhan, Nhaphoso.GhichuKQ " _
           
"FROM Nhaphoso " _
           
"WHERE Nhaphoso.SoQD Is Not Null AND Nhaphoso.Doituong = '" & [Forms]![frmlocloaihoso]![cbolocdoituongtg] & "' AND Nhaphoso.Ngaynhan BETWEEN #" & [Forms]![frmlocloaihoso]![txtngaydau] & "# And #" & [Forms]![frmlocloaihoso]![txtngaysau] & "#"
   Set rs CurrentDb.OpenRecordset(strSQLdbOpenDynaset)
   If rs.RecordCount 0 Then
       rs
.MoveFirst
   Else
       Exit Sub
   End 
If
   With rs
       Do Until 
.EOF
           
.Edit
           
!GhichuKQ = !GhichuKQ "-" Me.txtngaydau
           
.Update
           
.MoveNext
       Loop
   End With
   rs
.Close
   Set rs 
Nothing 

Cách 2: sử dụng Query đã tạo sẳn (như "qrybaocaotheothoigian" của bạn). 
- Vì Query này có lấy 2 tham số từ form nên khi OpenRecordset từ query này phải khai báo lại tham số điều kiện.
Mã PHP:
Dim rs As DAO.Recordsetqdf As QueryDefprm As Parameter
    Set qdf 
CurrentDb.QueryDefs("qrybaocaotheothoigian")
   For Each prm In qdf.Parameters
       prm
.Value = Eval(prm.Name)
   Next
   Set rs 
qdf.OpenRecordset(dbOpenDynaset)
   If rs.RecordCount 0 Then
       rs
.MoveFirst
   Else
       Exit Sub
   End 
If
   With rs
       Do Until 
.EOF
           
.Edit
           
!GhichuKQ = !GhichuKQ "-" Me.txtngaydau
           
.Update
           
.MoveNext
       Loop
   End With
   rs
.Close
   Set rs 
Nothing 
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn maidinhdan


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Help] Thiết kế form nhập và lưu trữ dữ liệu theo yêu cầu brianhuynh 16 626 20-10-16, 10:54 PM
Bài mới nhất: brianhuynh
  Xóa tất cả các dữ liệu ChiMai 3 146 15-10-16, 02:47 PM
Bài mới nhất: cpucloi
  [Help] Nhờ tạo form lưu hóa đơn nhập, hóa đơn xuất, hàng nhập hàng xuất không cần tính tồn laxx_xxal 1 133 22-09-16, 02:35 PM
Bài mới nhất: Nguyen Hoang Diep
  Hướng Dẫn Cách lưu (back up database) dữ liệu! danhxetnghiem 20 2,919 07-08-16, 04:40 PM
Bài mới nhất: maidinhdan
  [Help] Nhờ các bạn phục hồi dữ liệu tringuyen 2 130 21-07-16, 06:54 PM
Bài mới nhất: zinzin8x

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ơ