No entiendo porqué utilizas un bucle para cargar el DataGrid si éste es un control enlazado a datos:
Código:
Set grid = cnt.Execute("Select * from cliref where id='" & codigo.Text & "'")
Set DataGrid1.DataSource = grid
todo lo demás sobra
Nota Si el campo id es numérico (no de texto) debes quitarle las comillas simples:
Set grid = cnt.Execute("Select * from cliref where id=" & codigo.Text )