Protože používáte Oracle, měli byste místo dynamického SQL použít proměnnou vazby a poté nastavit hodnotu v kolekci parametrů objektu příkazu. Nejen, že zabrání SQL Injection, ale lépe optimalizuje váš dotaz.
Také to vypadá, že ve vašem příkazu SQL chybí mezera před klauzulí order by. To může snadno způsobit vaši chybu. Viz níže – netestováno, ale mělo by vám dát představu.
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