puoi modifcare la query mettendo il count e poi ti leggi il recordset

Query:

SELECT count(codice) as n FROM utenti WHERE codice = '" & X & "' ", cn, 1)

Prima di chiudere il recordset con la close lo leggi

codice:
While Not rs.EOF
rs.MoveNext

if rs("n") = 0 then msgbox ("codice non trovato")
else
...
end if

Wend

Ma ti serve in vb 6 o vb.net? La sintassi che usi è vb6 in net al posto del recorset c'è il datareader