Sì sì, come accrocchio non è male...
Per leggere e scrivere sul file di access credo che tu abbia comunque bisogno di installarlo come dsn in odbc, che è una cosa piuttosto banale. Fatto quello usi la tua libreria o adodb e non dovresti avere grosse difficoltà. Anzi, usando adodb hai il vantaggio dell'astrazione: se domani passi a mysql cambi il dirver adodb e sei a posto. Accedere direttamente al file mdb... beh, può darsi che esista una libreria in php per farlo, ma onestamente non lo farei nemmeno come accrocchio, specialmente in produzione. Se lavori in remoto idem, ma *devi* avere un tunnel, e senza shell sul web server non puoi farlo.
Io comunque non butterei via l'idea di gestire tutta la parte web da un lato e quella db dall'altro. L'ipotesi di sincronizzare due db, per quanto orribile, penso sia la più pratica e flessibile, o almeno io l'avevo pensata così in un caso simile: applicazione web a mio gusto con il suo db + accrocchio di sync sull'host con il db locale, utilizzando la connessione solo in un senso per ogni tabella (o "leggi dalla A" o "scrivi sulla B") la sincronizzazione dovrebbe essere affidabile - chiaro che se vuoi aggiornare sul web i dati di un ordine modificandoli dall'host con il db access la cosa è ben più complessa.
Si potrebbe creare un db di access vuoto e collegare le tabelle ordini ed articoli dal db di produzione. Crei una macro che apra una query di questo tipo per accodare sulla tabella degli ordini i contenuti di un file di testo: http://www.sitocomune.com/queries/queries021.htm e butti lì anche una macro che esporti in maniera più o meno automatica il csv degli articoli da uploadare sul sito - sul Sitocomune dovresti trovare qualcosa di già pronto.
Utilizzando quel miracolo di cURL si potrebbe tirare su un wrapper all'applicativo access in batch dos tipo (vado a memoria, la sintassi avrà qualche errore):
@echo off
:: cambiamo nella dir di lavoro
cd c:\sync
:: scarichiamo il csv degli oridini generato direttamente da uno script php
::creato ad hoc e lo salviamo nella directory di lavoro come ordini.csv
curl -O http://miosito.com/genera_csv_ordini.php -o ordini.csv
::chiamiamo syncdb.mdb da riga di comando facendo eseguire una
::macro che lancia la query di accodamento sulla tabella ordini locali
access syncdb.mdb /x macro_importazione_ordini
::chiamiamo la macro che genera il csv degli articoli da importare sul web
access syncdb.mdb /x macro_esportazione_articoli
:: postiamo il csv degli articoli tramite uno script php che genera
:: una semplice pagina contenente un form di upload ed un tasto
:: submit (OK)
curl -F
[email protected] -F press=OK http://miosito.com/upload_csv_articoli.php
:: finito. Lanciamo l'applicativo vero e proprio
c:\programma_noioso_e_mediocre_in_vb.exe
dove gli script genera_csv_ordini.php e upload_csv_articoli.php altro non fanno che sanitizzare i dati in entrata ed uscita e normalizzarli per il db dell'applicativo web o del db access.
Poi se funziona tutto a dovere metterai in sicurezza il batch con i vari breakpoint del caso e la gestione degli errori, magari chiuderai l'accesso (almeno in upload) al web con utente e password .htaccess (che cURL dovrebbe gestire senza problemi) e blinderai le pagine dall'accesso dei bot dei motori di ricerca.
E' un po' grezzo perchè (per mia fortuna) è rimasto solo un prototipo, però perdendoci un paio d'orette dovresti essere in grado di rendere il batch "trasparente" prima dell'avvio dell'applicativo locale.
Che ne pensi? :stordita: