Newsgroup: it.comp.appl.access
Titolo: [?] Automazione importazione tabelle da altro db

Approfitto nuovamente:
Access97.
Ho la necessita' di creare un pulsante di una maschera che:
1-Apra la finestra di database di un altro db Access
2-Consenta all'utente di selezionare una delle tabelle presenti
3-'Ricordi' (Assegni ad una variabile?) la scelta
4-Importi sul db corrente la tabella selezionata cambiandogli il nome
Dopo sforzi clamorosi penso di avere quasi capito  come si ottiene l'ultimo
punto (per la verita' lo so fare se la tabella da importare e' sempre la
stessa):
DoCmd.TransferDatabase acImport, "Microsoft Access", _
    "C:\Percorso\Altrodb.mdb", acTable, "AltraTabella", "NuovaTabella"
 e pensavo, dopo avere ottenuto la variabile (?) contenente il nome della
tabella selezionata, di modificarla:
DoCmd.TransferDatabase acImport, "Microsoft Access", _
    "C:\Percorso\Altrodb.mdb", acTable, Variabile, "NuovaTabella"
....e gia' non so se cosi' puo' funzionare. Sopratutto pero' non so come
fare per i punti 1-2-3
Se qualcuno potesse darmi almeno un indirizzo, poi studio volentieri. Dato
che il mio mestiere e' un altro (per cui mi mancano le basi) la cosa piu'
difficile per me e' sapere cosa cercare sull'help.
Grazie a tutti.
Ciao, Franck.
--
"Vorrei dimenticare, ma non ricordo cosa"

4-Importi sul db corrente la tabella selezionata cambiandogli il nome
se ti serve solo consentire ad un utente di scegliere una tabella da
importare non credo che sia necessario aprire la finestra del db.  ti
basta dimensionare una variabile oggetto database su quel database ed
elencare i componenti della collezione tabledefs, cioe' i nomi delle
tabelle, e magari presentarle in una listbox.
ad esempio:
dim altrodb as database
dim tdf as tabledefs
dim elencotabelle as string
set altrodb =
dbengine.workspaces(0).opendatabase("c:\percorso\altrofile.mdb")
for each tdf in altrodb.tabledefs
	elencotabelle=elencotabelle & 
tdf.name
 & ";"
next tdf
me.listboxtabelle.rowsource=elencotabelle
me.listboxtabelle.requery
verranno elencate anche le tabelle nascoste e di sistema, che non e'
opportuno siano mostrate.  se vedi sull'help tabledef dovresti vedere
anche la proprieta' necessaria a skipparne l'accodamento del nome in
elencotabelle.
altra cosa che potresti fare e' accedere alla tabella di sistema
(appunto...) msysobject del db remoto.  in essa sono elencati tutti
gli oggetti del db, compresi le tabelle.  mi pare che trovi qualche
indicazione su come usare msysobject sul sito comune.
il problema semmai è come ricavare il nome del db in modo da usarlo
come stringa per il settaggio della variabile database.
dovresti comunque trovare, sempre sul sito comune, un esempio di come
usare una chiamata alle api per aprire una dialog box standard di
navigazione tra file.
--
make it idiot proof and someone will make a better idiot.
--
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/


Access è già configurato per questa attività:
Menu File, Carica dati esterni, Importa
Ciao, Davide

elencotabelle.
Grazie per i suggerimenti. Seguendo le indicazioni di lbo ho fatto tutto
(naturalmente dopo essere impazzito sull'help in linea per circa una
settimana). Il problema piu' tosto e' stato proprio skippare le tabelle
nascoste e di sistema: sull'help non ho capito praticamente nulla. Alla fine
la soluzione era facile: bastava mettere dopo 'for each tdf......' un
if tdf.attributes = 0
chiudendo l'if prima di next tdf (non si sa mai che a qualcuno possa
servire).
Grazie ancora, lbo.
