Newsgroup: it.comp.appl.access
Titolo: Importazione dati da una tabella di un db esterno

Ciao a tutti,
Il problema che ho è il seguente:
Ho un database principale nel quale vorrei importare i record da una tabella
di un Db esterno sempre di access.
Il Db esterno mi viene inviato mensilmente ed ha sia il nome del file sia
quello della tabella che la posizione sull'hard disk variabile.
Quello che vorrei fare è selezionare il file con il percorso, creare una
query che mi elenchi le tabelle del Db esterno e quindi creare una query di
accodamento che mi accodi i record in una tabella del Db principale.
E' giusta la procedura da me proposta?
Se la procedura è corretta seleziono il file (già fatto) creo una query che
mi elenchi le tabelle del db esterno (già fatto) tranne che non riesco
proprio a dare alla query l'origine del database da me selezionato
precedentemente.
Come posso fare in una query a dare come database origine il campo di una
casella di testo contenente il percorso del File?
E poi come faccio a dare l'origine del file nella query di accodamento?
Scusate la descrizione del problema un pò macchinosa.
Grazie a tutti
Andrea
--------------------------------
Inviato via 
http://usenet.libero.it

 casella di testo contenente il percorso del File?
SELECT
FROM Tab IN 'c:\pippo.mdb';
Antonio


Non mi sono spiegato bene!
La sintassi della query sono riuscito a crearla correttamente cosi come la
esponi tu, il problema è che vorrei dare come origine del file un campo di
testo su una maschera.
Esempio:
SELECT
FROM Tab IN 'Forms!Importazione!PosizioneFile';
Dove PosizioneFile è il percorso del file (C:\Pippo.mdb).
Ma la sintassi non è corretta infatti mi da errore.
Io volevo sapere qual'è la sintassi giusta?
Grazie ancora


 Io volevo sapere qual'č la sintassi giusta?
SELECT
FROM Tab IN '" & Forms!Importazione!PosizioneFile & "';"
Antonio


Ti ringrazio molto ma continua a darmi errore, ti invio di seguito la
sintassi della query, puoi cortesemente controllare cosa io continui a
sbagliare?
SELECT MSysObjects.Name
FROM MSysObjects IN '" & Forms!Importazione!Posizionefile & "'
WHERE (((MSysObjects.Type)=1));
Ti ringrazio ancora
Ciao


 WHERE (((MSysObjects.Type)=1));
Ma stai cercando di guardare nella Msysobjects di un database remoto?
Perchč?
Antonio


Esattamente!
Perchč devo importare dei record di una tabella di un db che mi viene
inviato mensilmente e successivamente aggiornarli ed accodarli.
Visto che devo automatizzare la procedura tramite maschere per fare in modo
che chiunque riesca a farlo pensavo di selezionare il file .mdb, selezionare
la tabella e con una query di accodamento accodare i dati in una tabella
temporanea del mio db per poi aggiornare i record e accodarli
definitivamente.
Ma sta benedetta query non vuole funzionare.
Cosa sbaglio?


 definitivamente.
Ma il nome della tabella lo devi aver recuperato e messo in qualche
variabile, come fai per il path.
Se nome_tab č la variabile, la stringa SQL diventa
"SELECT " & nome_tab & " FROM " & nome_tab & " IN '" &
Forms!Importazione!Posizionefile & "'
Antonio

 Antonio
Io seleziono con una casella combinata il nome della tabella del database
remoto proprio con questa query.
SELECT MSysObjects.Name
FROM MSysObjects IN 'C:\pippo.mdb'
WHERE (((MSysObjects.Type)=1));
La suddetta query mi fa vedere tutte le tabelle del Db pippo.mdb, ma il
problema mio č che l'origine del file puň variare, cosě invece di
'C:\pippo.mdb' predefinito volevo inserire il collegamento ad una casella di
testo dove viene aggiornata la posizione del file pippo.mdb attuale (
Forms!Importazione!Posizionefile )caricandola facendo richiamare la finestra
di dialogo per la selezione di un file.
Spero di essere stato chiaro stavolta.
Ti ringrazio


 di dialogo per la selezione di un file.
La semplicità della risposta mi fa sospetare di non aver capito il problema
appieno.
Il nome della tabella ce l'hai dentro la combo. Sai recuperare con un
dialogo il nuovo percorso del database remoto. Userai quindi il codice
quello solito, che si trova sul sito comune per il riallegamento delle
tabelle collegate, che lancia una finestra di dialogo e restituisce il path
del database selezionato.
Questo path è in una variabile, no?
Alla fine del codice che lancia il dialogo, ripreparerai la SELECT della
combo utilizzando la variabile e scrivendola quindi nella proprietà
Rowsource della combo stessa!
Mi pare non serva, ma caso mai fai anche un requery della combo.
Altra soluzione: allega la tabella MSysObjects al tuo database. Quando fai
la procedura con la finestra di dialogo, cambia la proprietà connect della
tabella (e fai il refreshlink) cosicchè non devi intervenire mai sulla combo
che avrà una semplice query su una tabella allegata (che è come se fosse
locale)
Devi comunque fare il requery della combo
Antonio


Il nome della tabella lo dovrei avere nella combo ma mancando il
percorso del database di origine nella query non riesco a visualizzare la
tabella del db remoto.
Fondamentalmente io sto solo cercando di inserire un parametro
(Forms!Importazione!Posizionefile) al posto del Database Origine nelle
proprietà della query che sembra non accettare parametri esterni se non il
percorso del file predefinito (C:\pippo.mdb).
La query da te proposta andava bene, sempre se giustamente compilata da me,
ma purtroppo non mi accettava il parametro
"Forms!Importazione!Posizionefile" .
SELECT MSysObjects.Name
FROM MSysObjects IN '" & Forms!Importazione!Posizionefile & "'
WHERE (((MSysObjects.Type)=1));
Cosi come l'ho composta non vuole funzionare come devo fare?
Grazie ancora


 WHERE (((MSysObjects.Type)=1));
 Ma tu questa l'hai scritta cosģ, nella rowsource e non l'hai passata via
codice?
Passala via codice e scrivi la stringa nella proprietą rowsource
Antonio

 Antonio
Scusa hai ragione mi ero intestardito cercando di far funzionare la query e
non ho proprio pensato di passarla via codice.
Funziona benissimo.


 Funziona benissimo.
Puff... pant...
Antonio