Being no freeware, as you requested, I could recommend you Spectral Core's Full Convert Enterprise.
I've used it successfully in the past, too.
Update:
Since you clarified that you need a programmatic solution, I do recommend you do it manually:
- Open a connection to the MDB file through ADO.NET.
- Iterate all tables.
- Create a text file (CSV) for each table.
- For each table, iterate all rows.
- For each row, write a new line in the text file.
- For each row, iterate all columns.
- For each column, write the value to the text file in the current row.