-
11-23-2009, 08:20 AM #1Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Không chạy được query trong ACCESS!
Các bác PRO xem giúp em đoạn code này, sao em chạy không được:
Mã:Sub DSKH() Dim DB As Database Dim QR1 As QueryDef Dim tbl2 As Recordset Dim sql As String Set DB = CurrentDb Set QR1 = DB.CreateQueryDef QR1.sql = " select count(sohd) as slhd, maso, sum(sotien) as sotien from table1 group by maso;" DB.Execute "select qr1.maso, tblKH.ten, qr1.sotien, qry.slhd into tbl2 from QRA left join tblKH on qr1.maso=tblKH.maso;" Set DB = Nothing End Sub
View more random threads:
- [Help] Về refresh dữ liệu trong access 2007
- mong các anh chị chỉ dùm về date
- xuất table access sang nhiều sheet excell
- Help me: Lọc dữ liệu qua 2 combobox.???
- Hướng dẫn Treeview
- Link table từ MDB có password
- Chuyên đề ứng dụng : Thiết kế chương trình Sổ Quỹ Tiền Mặt(Phần 1 - Table và Form)
- Kiểm tra trùng lặp khóa chinh trong Access
- Lấy dữ liệu và xóa từ bảng động
- Kiểu ngày tháng trong access
-
11-23-2009, 12:31 PM #2Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Không chạy được query trong ACCESS!
Gửi bởi haquocquan
-
11-23-2009, 02:46 PM #3Silver member
- Ngày tham gia
- Sep 2015
- Bài viết
- 16
Ðề: Không chạy được query trong ACCESS!
Gửi bởi LoveBlue
Set QR1 = currentdb.CreateQueryDef
QR1.sql = " select count(sohd) as slhd, maso, sum(sotien) as sotien from table1 group by maso;"
-
11-24-2009, 08:35 AM #4Silver member
- Ngày tham gia
- Nov 2015
- Bài viết
- 2
Ðề: Không chạy được query trong ACCESS!
Gửi bởi haquocquan
Và nó chỉ được nhìn thấy ở trong đoạn sub ấy, tức là chỉ thấy được đối với lúc đang chạy nó.
Nó không tạo ra query lưu trong data.
Mà ở câu sau đó:
DB.Execute "select ... from QR1 left join tblKH on ..."
Thì máy sẽ gửi câu sql đó cho ODBC thực hiện và ODBC không thấy table hay query nào tên QR1 cả.
Hoặc là bạn phải lưu sẵn 1 query QR1 trên data.
Hoặc là bạn gửi trực tiếp câu lệnh:
Ví dụ:
....
Dim mysql as string
mysql = " [select count(sohd) as slhd, maso, sum(sotien) as sotien from table1 group by maso]."
mysql = "select qr1.maso, tblKH.ten, qr1.sotien, qry.slhd into tbl2 from " _
& mysql & " As QR1 left join tblKH on qr1.maso=tblKH.maso;"
DB.Execute mysql
....
-
11-24-2009, 03:24 PM #5Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Không chạy được query trong ACCESS!
Gửi bởi muontennguoi
-
11-24-2009, 03:57 PM #6Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Không chạy được query trong ACCESS!
Gửi bởi muontennguoi
Khi chúng ta khai báo một biến kiểu QueryDef, nó có thể được gán với một query có sẵn trong database hoặc có thể được tạo mới, ...
1. Gán với một query sẵn có:
Dim qr As DAO.QueryDef
Set qr = CurrentDB.QueryDefs("queryname")
2. Tạo mới một query:
Dim qr As DAO.QueryDef
CurrentDB.QueryDefs.Add("queryname", "sql text")
Do vậy, code của haquocquan thiếu một phần quan trọng là khi CreateQueryDef không cho nó một cái tên. Ngoài ra tbl2 của bạn không cần thiết trong đoạn này. Đoạn code đó có thể chỉnh lại một chút như sau:
Mã:Sub DSKH() Dim DB As Database Dim QR1 As QueryDef ' Dim tbl2 As Recordset Dim sql As String Set DB = CurrentDb Dim daco As Boolean For Each qr1 In CurrentDb.QueryDefs If qr1.Name = "qrA" Then daco = True Exit For End If Next If daco Then Set qr1 = CurrentDb.QueryDefs("qrA") qr1.SQL = "select count(sohd) as slhd, maso, sum(sotien) as sotien from table1 group by maso" Else Set qr1 = CurrentDb.Createquerydefs("qrA", "select count(sohd) as slhd, maso, sum(sotien) as sotien from table1 group by maso") End If DB.Execute "select qr1.maso, tblKH.ten, qr1.sotien, qry.slhd into tbl2 from QRA left join tblKH on qr1.maso=tblKH.maso" Set DB = Nothing End Sub
-
11-24-2009, 06:13 PM #7Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 1
Ðề: Không chạy được query trong ACCESS!
Ý em là: em không tạo query trong MDB, em muốn nó là một câu lệnh nhưng sẽ lấy được dữ liệu từ đó như là lấy dữ liệu từ một query.
Cám ơn các bác PRO nhiều.
Tôi tạo lại, các bác PRO xem giúp nhé:
Mã:Sub DSKH() Dim DB As Database Dim sql As String Set DB = CurrentDb SQL = "([select count(sohd) as slhd, maso, sum(table1.sotien) as sotien from table1 group by maso]. as qr1)" DB.Execute "select qr1.maso, tblKH.ten, qr1.sotien, qr1.slhd into tbl2 from "& SQL &" left join tblKH on qr1.maso=tblKH.maso;" Set DB = Nothing End Sub
Râu rồng – Thuật ngữ tiếng Anh là laugh line/smile line là nếp nhăn khoé miệng được hình thành theo thời gian và được nhìn thấy rõ nhất khi chúng ta cười. Râu rồng sẽ xuất hiện càng ngày càng rõ...
Râu rồng - Mối đe dọa nghiêm trọng với dung nhan của các cô