i db mdf le apri/crei/modifichi con visual studio.
la differenza (poi ce ne sono altre) più grossa che ho riscontrato fino ad ora è nell'uso del provider, cioè:
access system.data.oledb, oledbcommand, oledbconnection ecc...
sqlserver system.data.sqlclient, sqlcommand, sqlconnection ecc...

in uno oledb e nell'altro sql. io uso access per ragioni di compatibilità ma ho sql express installato e devo dire che dal punto di vista del database non è affatto male, poi ci sarebbe anche MySQL in alternativa che è parecchio usato e hai la possibilità (più reale) di usare lo stesso db per applicazioni diverse senza impazzire dato che lo puoi trovare in host senza dare via un rene.

ora detto questo c'è un tool che si chiama MSSMA, Microsoft SQL Server Migration Assistant 2008 for Access, di cui mi sembra si sia parlato anche in altri post che consente di creare un processo e fare un "mischione" e tirarne fuori quello che vuoi creando un progetto apposta in wizard.

Poi i dBase si aprono con Jet4.0, ho controllato anche se non ho provato. Anche ADO.NET dovrebbe essere in grado di farlo:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=TuoDB.mdb;Extended Properties=DBASE III"

SELECT * INTO Tabella IN 'TuoDB.mdb' FROM TuoFile.dbf

Oppure se access 12:

"Provider=Microsoft.Jet.ACE.12.0;Data Source=TuoDB.accdb;Extended Properties=DBASE III"

SELECT * INTO Tabella IN 'TuoDB.accdb' FROM TuoFile.dbf

Non vorrei dire una cavolata e non vorrei sbagliarmi, non mi è mai capitato quello che intendi, di solito o uso access con data base 1997-2000 o più raramente sqlserver.

Se non sei obbliato ad avere un formato dbf per forza ti consiglio di fare copia e incolla in access senza includere nulla, così vai sul sicuro come compatibilità e come sbattimento.