Un if como tal ocupa bastante poco, en este caso me parece que es un tanto redundante ya que oRS.EOF se comprueba en el Do, hace mucho que no programo en VB, pero fijate si asi te funciona bien:
Código:
Do While not oRS.EOF
SQL=SQL&oRS("column_name")&", "
oRS.MoveNext
loop
SQL=SQL&oRS("column_name")&") VALUES("
oRS.MoveNext
Deberia ser mas eficiente; de cualquier manera en este caso es mucho mas costoso hacer el EOF que el if en si mismo.