Il giorno finale del mese lo ottieni cosi'
gg = Day(DateSerial(anno, mm + 1, 0))
Per quanto riguarda il formato, utilizza mm/gg/aaaa ... fidati.
Non hai avuto problemi perche' il primo gennaio (1/1) e il trentuno gennaio (31/1) non possono essere equivocati e il motore del db ne tiene conto. Ma nel caso di date ambigue (pensa al 10 dicembre o al 5 giugno ...) il db deve decidere qual e' il giorno e quale il mese; se scrivi all'italiana 10/12, il sistema che opera con il formato americano decidera' che hai indicato 12 ottobre; nell'altro caso, tu intenderai 5/6 e il sistema lo comprenderà come 6 maggio ...