Vì bạn sử dụng Oracle, bạn nên sử dụng một biến liên kết thay vì SQL động và sau đó đặt giá trị trong bộ sưu tập tham số của đối tượng lệnh. Nó không chỉ ngăn SQL Injection mà còn tối ưu hóa tốt hơn truy vấn của bạn.
Ngoài ra, có vẻ như Câu lệnh SQL của bạn thiếu khoảng trắng trước mệnh đề order by. Điều đó có thể dễ dàng gây ra lỗi của bạn. Xem bên dưới - chưa được kiểm tra, nhưng sẽ cung cấp cho bạn ý tưởng.
SQL = "SELECT A.cust_ky, A.incid_id, A.OPEN_TS, A.CLOSE_TS, A.REC_UPD_TS, B.wrkgp_id, A.CURR_AGNT_KY, A.incid_ttl_dn " _
& "FROM (MAINTBLS.INCID_FAB A INNER JOIN MAINTBLS.DEPTMNT B ON A.curr_wrkgp_ky=B.wrkgp_ky) " _
& "WHERE B.wrkgp_id= :wrkgp And (A.open_fg = 1 OR A.pend_fg = 1) " _
& "ORDER BY A.cust_ky, A.curr_agnt_ky ASC"
With cmd
.ActiveConnection = conn
.CommandText = SQL
.CommandType = adCmdText
.Parameters.Append .CreateParameter(, adVarChar, adParamInput, wrkgp)
End With