Acredito que o uso do Access para pequenas e médias aplicações ainda é a melhor solução, tendo em vista a rápida produtividade e fácil manutenção. Entendo, por experiência própria, que até um milhão de registros por base de dados o access dá conta sem engasgar muito (trabalho com o Access 2000). É importante incluir na rotina do seu programa um evento para compactação e reparação periódica da base de dados para que ela não tenha o perigo de corromper.
Um dos grandes trunfos para se dar bem com o access é usar estratégias para não inchar muito o banco de dados. Exemplo: se a movimentação do seu cliente (supermercado) é muito grande, basta criar um arquivo .mdb para cada exercício; assim, seu tamanho será limitado àquela quantidade de registros. Na hora de fazer alguma consulta ou inserir algum registro, basta informar o exercício a que se refere a operação e abrir o .mdb correspondente. Além dessa forma, existem muitas outras, basta usar a criatividade..
Agora, se você verificar que o access não vai dar conta da quantidade de registros a serem manipulados; aí, recomendo o MySql que trabalha muito bem com o VB. Há algumas semanas, andei fazendo testes com as bases de dados Access, MySql e Firebird (continuação do Interbase). Concluí, pelo menos nessa pesquisa - com as devidas limitações profissionais, que o MySql é mais enxuto e mais rápido que o Firebird, vez que executou as mesmas operações em tempo muito inferior. Outro fato interessante é que a base de dados do MySql não incha tanto quanto a base do Firebird. Depois de executadas as mesmas operações de inclusão, deleção e atualização nas duas bases, a base do Firebird ficou mais ou menos 8 (oito) vezes maior que a base do MySql.
Em suma, se eu fosse ter que escolher entre MySql e Firebird/Interbase, escolheria o MySql. Cada profissional pode se adaptar à ferramenta que acha melhor no seu dia-a-dia.
Um abraço