Me estaba casi empezando a imaginar que iban por ahí los tiros cuando he vuelto a leer el post
Para evitarme problemas de este tipo, suelo definir las fechas como campos numéricos (equivalentes a Long para sólo fechas o equivalentes a Double para horas o fechas y horas). Si sólo vas a acceder a la base de datos con clientes en VB no habría ningún problema con esto, y te ahorras comprobaciones de formatos.
Por otra parte, seguramente el gestor de base de datos que estés utilizando tenga una función de formato que puedas utilizar directamente en la SQL. De esta manera, es el servidor de BD el que hace el trabajo sucio de los formatos (debería estar optimizado para ello) y aceleras así un poco el código en VB. Al menos, Acces e Informix tienen una función análoga a Format (llamada igual, además), y si no recuerdo mal, MySQL también.