Giúp lỗi Run-time error 3075 của câu lệnh SQL khi tạo report theo checkboxes (2 người xem)

  • Thread starter Thread starter namktkt
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

namktkt

Thành viên mới
Tham gia
7/9/14
Bài viết
3
Được thích
0
Chào các bạn,

Mình đang tạo Report theo các tuỳ chọn của Checkbox, mọi thứ ok chỉ đến câu lệnh chạy SQL tạo Query thì bị lỗi Run-time error 3075 / Syntax error in query expression 'SELECT * FROM tblCC1 WHERE VDNo In(7,8,)'

Lỗi này khá lạ vì khi mình giả lập chính xác câu lệnh này trên 1 query mới thì vẫn chạy ra kết quả. bạn nào có kinh nghiệm vụ này giúp mình với. Cảm ơn.

------------------
Private Sub cmdOpenRpt_Click()


Dim fonctionQryString As String
Dim lngLoopNum As Long
Dim strControlName As String
Dim strValueList As String
For lngLoopNum = 1 To 4
Select Case lngLoopNum
Case 1
strControlName = "7"
Case 2
strControlName = "8"
Case 3
strControlName = "9"
Case 4
strControlName = "10"
End Select
If Me.Controls("ckbVD" & strControlName) = True Then
strValueList = strValueList & strControlName & ","
End If
Next
If Len(strValueList) > 0 Then
fonctionQryString = "SELECT * FROM tblCC1 WHERE VDNo IN(" & strValueList & ")"
Else
MsgBox "You must check a Fonction Checkbox"
End If


DoCmd.OpenReport "qryCC1Report", acViewPreview, , fonctionQryString


End Sub
 
Chào các bạn,

Mình đang tạo Report theo các tuỳ chọn của Checkbox, mọi thứ ok chỉ đến câu lệnh chạy SQL tạo Query thì bị lỗi Run-time error 3075 / Syntax error in query expression 'SELECT * FROM tblCC1 WHERE VDNo In(7,8,)'

Lỗi này khá lạ vì khi mình giả lập chính xác câu lệnh này trên 1 query mới thì vẫn chạy ra kết quả. bạn nào có kinh nghiệm vụ này giúp mình với. Cảm ơn.

------------------
Private Sub cmdOpenRpt_Click()


Dim fonctionQryString As String
Dim lngLoopNum As Long
Dim strControlName As String
Dim strValueList As String
For lngLoopNum = 1 To 4
Select Case lngLoopNum
Case 1
strControlName = "7"
Case 2
strControlName = "8"
Case 3
strControlName = "9"
Case 4
strControlName = "10"
End Select
If Me.Controls("ckbVD" & strControlName) = True Then
strValueList = strValueList & strControlName & ","
End If
Next
If Len(strValueList) > 0 Then
fonctionQryString = "SELECT * FROM tblCC1 WHERE VDNo IN(" & strValueList & ")"
Else
MsgBox "You must check a Fonction Checkbox"
End If


DoCmd.OpenReport "qryCC1Report", acViewPreview, , fonctionQryString


End Sub
Tôi nghĩ ngay chổ tôi tô màu đỏ, bạn cần xử lý lại chuổi truy vấn, nó sẽ dư 1 dấu phẩy ở cuối.

Bạn thử tạm chỉnh như sau. Xin lỗi tôi chưa test
[GPECODE=sql]
...........
strValueList = strValueList & strControlName & ","
End If
Next
strValueList = Left(strValueList, Len(strValueList) - 1)
...........
[/GPECODE]
 
Cám ơn bạn. Mình thử lại thì thấy query chạy ok rồi.
Mặc dù Report hiện ra đang bị lỗi #Name? nhưng lỗi mình sẽ xem lại bên source Report.
Thanks.
 
Web KT

Bài viết mới nhất

Back
Top Bottom