L'unico modo e' creare una o piu' classi fornitrici di dati da usare nei vari eseguibili, in questo modo centralizzi la gestione del DB e la connessione viene gestita in un unico punto.

Pero' 2 cose mi risultano un po' strane:

1- un EXE VB da 20MB e' parecchio grosso, specie se la grafica e' ridotta all'essenziale; ammesso che non faccia anche la maionese, mi sa' sarebbe meglio dare un'occhiata alla quantita'/qualita' del codice scritto...magari ottimizzandolo riduci le dimensioni e addirittura incrementi le prestazioni.

2- gestire vari EXE da VB non e' complicato ma non e' proprio una passeggiata, specie se il prg chiamante e il prg chiamato interagiscono tra loro: penso ad esempio alla gestione ordini-stampa-fatturazione e via di seguito.

In sostanza, il mio punto di vista e':
prima di lanciarsi nella frammentazione del codice, dai un'occhiata a come e' possibile ottimizzarlo, togli tutto cio' che c'e' di grafico (sfondi,bmp e quant'altro se c'e'), analizza eventuali ridondanze di codice, centralizza parti di codice in funzioni/sub pubbliche, utilizza file di risorse per caricare certi dati piuttosto che altri ecc.