Newsgroup: it.comp.appl.access
Titolo: Collegare tabelle access senza installare access.

Carissimi spero che questo mio messaggio, postato dopo un lungo ed
imperdonabile periodo di silenzio, vi trovi tutti in splendida forma.
Ecco dopo gli sproloqui andiamo al sodo!
Mi è stato sottoposto un problema che vi rigiro essendo di certo fuori
dalla mia portata.
Devo realizzare un programmino: exe, batch, vbs, vb o chissà cosa
altro che mi permetta di modificare il path delle tabelle collegate di
un database access.
Per ragioni a me oscure sulla macchina non è possibile installare il
runtime e risolvere il problema con una normale procedura di relink.
Occorre necessariamente agire con un programmino esterno.
Una applicazione sviluppata in 
dot.net
 accede, tra le altre cose, ad
un database mdb. Tale database (db A) contiene a sua volta delle
tabelle collegate che puntano solo ad alcune (forse 3) tabelle di un
secondo mdb (db B).
Ciò che deve essere modificabile da questo programmino che devo creare
è il percorso di queste 3 tabelle a cui punta il Database A. perchè il
database B può essere posizionato in diverse cartelle a seconda delle
esigenze e dei dati che conterrà.
Non avendo alcuna esperienza di Visual Basic puro e nella speranza di
essermi spiegato correttamente, chiedo a voi tutti indicazioni o
suggerimenti.
Un caro saluto.
matteo

matteo
Con una cosa del genere in uno script .Vbs io ci sono riuscito.
'---------------------------------------------------------------------------
Set Catalogo = CreateObject("ADOX.Catalog")
Set Tabella = CreateObject("ADOX.Table")
Catalogo.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;User 
ID=tuouser;password=tuapassword;Data Source=tuopath\tuofile.mde;Mode=Share 
Deny None;Extended Properties='';Jet OLEDB:System 
database=tuopath\tuodb.MDW;Jet OLEDB:Registry 
Path=SOFTWARE\Microsoft\Office\10.0\Access\Jet\4.0;Jet OLEDB:Database 
Password='';Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet 
OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet 
OLEDB:New Database Password='';Jet OLEDB:Create System Database=False;Jet 
OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on 
Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet 
OLEDB:SFP=False"
Set Tabella = Catalogo.Tables("TuaTabella")
Set Prop = Tabella.Properties("Jet OLEDB:Link Datasource")
Prop.value = "nuovopath\nomefile.mdb"
Set Mioset = Nothing
Set Catalogo = Nothing
'--------------------------------------------------------
ora la cosa piu complicata � inserire la giusta connessione.
Devi avere l'accortezza di cambiare ed inserire i dati giusti nei campi:
Source -> ci metti il nome del db da trattare (pu� essere sia .mdb che .mde)
Jet OLEDB:System database -> ci metti l'eventuale tuo database di sistema 
per le password
User ID  ->  nome utente (se usi un .mdw diverso dallo standard access)
password   -> la password  (se usi un .mdw diverso dallo standard access)
Good Work
Bye :o) 

 ha scritto nel messaggio 
news:92bbc4cf-0e6d-4aa7...@k30g2000yqf.googlegroups.com...
Carissimi spero che questo mio messaggio, postato dopo un lungo ed
imperdonabile periodo di silenzio, vi trovi tutti in splendida forma.
Ecco dopo gli sproloqui andiamo al sodo!
Mi � stato sottoposto un problema che vi rigiro essendo di certo fuori
dalla mia portata.
Devo realizzare un programmino: exe, batch, vbs, vb o chiss� cosa
altro che mi permetta di modificare il path delle tabelle collegate di
un database access.
Per ragioni a me oscure sulla macchina non � possibile installare il
runtime e risolvere il problema con una normale procedura di relink.
Occorre necessariamente agire con un programmino esterno.
Una applicazione sviluppata in 
dot.net
 accede, tra le altre cose, ad
un database mdb. Tale database (db A) contiene a sua volta delle
tabelle collegate che puntano solo ad alcune (forse 3) tabelle di un
secondo mdb (db B).
Ci� che deve essere modificabile da questo programmino che devo creare
� il percorso di queste 3 tabelle a cui punta il Database A. perch� il
database B pu� essere posizionato in diverse cartelle a seconda delle
esigenze e dei dati che conterr�.
Non avendo alcuna esperienza di Visual Basic puro e nella speranza di
essermi spiegato correttamente, chiedo a voi tutti indicazioni o
suggerimenti.
Un caro saluto.
matteo
----------  RISPOSTA  --------------
Ma il programma scritto in 
dot.net
 pu� essere modificato ?
Se la risposta � s�, perch� non prevedere che il percorso delle tabelle B 
sia sempre definito in un file di tipo txt, modificabile a piacimento ?
Ciao
Antonio

 Antonio
Ragazzi intanto grazie mille per la risposta.
Ora proverò a vedere come implementare questa soluzione e vi faccio
sapere.
buone vacanze a chi parte.
M

 Antonio
Ciao antonio, rileggo ora la tua domanda, non lo so se si può
modificare.
Purtroppo non lo sviluppo io, io ho solo fornito l'estrazione dati da
un gestionale in un mdb e la struttura delle tabelle in esso
contenute.
Nulla di più!
sorry ...


Ecco la soluzione semplificata al massimo.
Studierò se del caso i vbscript e gli oggetti adox.
Grazie a tutti.
matteo
'--------------------------------------------------------------------------
-
Set Catalogo = CreateObject("ADOX.Catalog")
Set Tabella = CreateObject("ADOX.Table")
Catalogo.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;User
ID=Admin;password=;Data Source=c:\documenti\flavio\DBFE.mdb;"
Set Tabella = Catalogo.Tables("Tabella1")
Set Prop = Tabella.Properties("Jet OLEDB:Link Datasource")
Prop.value = "c:\documenti\flavio\db1.mdb"
