Newsgroup: it.comp.appl.access
Titolo: Collegare al db fogli excel variabili

Ciao a tutti.
Ho bisogno di estrapolare da un file di excel solamente 2 colonne su
una media di 10 presenti, per poter accodare poi i dati su una tabella
collegata ad un BE fisso.
Il problema è che il file excel cambia in continuazione, sia nel nome
che nel contenuto, nonchè nel path.
Vorrei fare in modo che l'utente apra una finestra di navigazione
dalla quale, semplicemente facendo doppio click sul file che gli
interessa, crei la tabella collegata e che poi, anche in un secondo
momento, possa selezionare le colonne da accodare (questa fase è già
operativa, manca solo la possibilità di selezionare solo le 2 colonne)
al BE.
Spero di essere stato chiaro e sopratutto che esista una soluzione a
questo problema.
Grazie per qualsiasi intervento.

 ha scritto nel messaggio 
news:c7fa373e-8daa-4a75...@x69g2000hsx.googlegroups.com...

[risposta]
Sul sito comune (
www.sitocomune.com
) trovi tutti gli esempi, da riadattare e 
assemblare, per risolvere il problema...
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggionews:c7fa373e-8daa-4a75...@x69g2000hsx.googlegroups.com...

Ciao e grazie dell'intervento.
Ho scaricato proprio dal sitocomune la soluzione di Vincenzo Turturro
1.10 (Effettuare in maniera del tutto automatica l'aggiornamento delle
tabelle allegate ad un FE); necessita del modulo BrowseFolder() che
dovrebbe essere presente nel sito ma non sono riuscito a trovarlo.
Comunque sia credo di averlo trovato da un'altra parte, ma il codice
di Vincenzo continua a darmi un errore (prevista variabile o routine),
per cui non riesco nemmeno ad aprire la finestra di navigazione.
Se riuscissi a fare questo potrei in un secondo momento fare in modo
che cerchi i file excel; resta comunque il fatto che non ho trovato
niente che mi dia la possibilità di creare la tabella allegata
selezionando solo le colonne del file excel che mi interessano.
Tieni presente che non sono molto ferrato in materia; di solito riesco
a personalizzare un codice già creato, a patto che la modifica sia
semplice e che abbia capito bene quello che leggo.
Grazie e ciao.

Ciao e grazie dell'intervento.
Ho scaricato proprio dal sitocomune la soluzione di Vincenzo Turturro
1.10 (Effettuare in maniera del tutto automatica l'aggiornamento delle
tabelle allegate ad un FE); necessita del modulo BrowseFolder() che
dovrebbe essere presente nel sito ma non sono riuscito a trovarlo.
Comunque sia credo di averlo trovato da un'altra parte, ma il codice
di Vincenzo continua a darmi un errore (prevista variabile o routine),
per cui non riesco nemmeno ad aprire la finestra di navigazione.
Se riuscissi a fare questo potrei in un secondo momento fare in modo
che cerchi i file excel; resta comunque il fatto che non ho trovato
niente che mi dia la possibilità di creare la tabella allegata
selezionando solo le colonne del file excel che mi interessano.
Tieni presente che non sono molto ferrato in materia; di solito riesco
a personalizzare un codice già creato, a patto che la modifica sia
semplice e che abbia capito bene quello che leggo.
Grazie e ciao.
[risposta]
Sezione General
5.42 API - Commondialog e Browser for folder attraverso #56 MsAccess.exe
5.5 Usare le API di Windows in MSAccess - Parte I: le Common Dialog.
Comunque puoi provare a leggere direttamente il contenuto dei file excel con 
ADODB:
'---
Dim rs As ADODB.Recordset, connstr As String
Dim campo As Integer, nomeFile as string, nomeFoglio as string
nomeFile = CurrentProject.path & "\" & "nomeFile.xls"
nomeFoglio = "Foglio1$"
Set rs = CreateObject("ADODB.recordset")
connstr = "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & nomeFile & 
";DriverID=278"
rs.Open "SELECT * FROM " & Chr$(34) & nomeFoglio & Chr$(34), connstr
Do While Not rs.EOF
    For campo = 0 To rs.Fields.Count - 1
        Debug.Print rs(campo)
    Next
    rs.MoveNext
Loop
Set rs = Nothing
'---
Ciao.
-- 
Sergio MAZZA 


Ciao e grazie delle dritte.
Ho fatto in modo che all'avvio vengano automaticamente cancellate
tutte le tabelle collegate e si ricreino quelle che rimandano a file
dal nome e percorso invariabili.
Ho utilizzato la 5.5 di cui mi accennavi per aprire la finestra di
navigazione, l'ho variata in modo tale che vada già sul desktop
indipendentemente dal pc usato e selezioni solamente file excel; al
doppio click sul file che mi interessa, riporta path del file su una
casella di testo dalla quale grazie ad un codice che ho trovato qui
sul  forum e successivamente adattato creo la tabella collegata.
Ora mi manca solo la possibilità di selezionare i campi che desidero
accodare alla tabella mdb fissa.
Tieni conto che i file excel che collego sono variabili e che l'mdb in
cui dovrei riversare i dati non cambia mai; i dati da passare sono
nome e telefono, ma sui fogli excel possono essere in qualsiasi
colonna, mentre sull'mdb ha posizione e nome fissi.
Mi manca così poco; non vorrei arenarmi proprio a questo punto.
Grazie e ciao.
P.S. Associando il codice che mi hai postato ad un tasto su una form e
variando percorso e nome file in base alle mie esigenze, premendo poi
il tasto non succede niente.

 ha scritto nel messaggio 
news:6e7c7404-3267-4476...@d21g2000prf.googlegroups.com...
Ciao e grazie delle dritte.
Ho fatto in modo che all'avvio vengano automaticamente cancellate
tutte le tabelle collegate e si ricreino quelle che rimandano a file
dal nome e percorso invariabili.
Ho utilizzato la 5.5 di cui mi accennavi per aprire la finestra di
navigazione, l'ho variata in modo tale che vada già sul desktop
indipendentemente dal pc usato e selezioni solamente file excel; al
doppio click sul file che mi interessa, riporta path del file su una
casella di testo dalla quale grazie ad un codice che ho trovato qui
sul  forum e successivamente adattato creo la tabella collegata.
Ora mi manca solo la possibilità di selezionare i campi che desidero
accodare alla tabella mdb fissa.
Tieni conto che i file excel che collego sono variabili e che l'mdb in
cui dovrei riversare i dati non cambia mai; i dati da passare sono
nome e telefono, ma sui fogli excel possono essere in qualsiasi
colonna, mentre sull'mdb ha posizione e nome fissi.
[risposta]
Se nel file excel non è identificata la colonna da importare (es. con il 
nome alla prima riga) la vedo dura; sei costretto a importare i dati in una 
tabella temporanea e poi con una query selezionare i campi da importare 
nella tabella.
Mi manca così poco; non vorrei arenarmi proprio a questo punto.
Grazie e ciao.
P.S. Associando il codice che mi hai postato ad un tasto su una form e
variando percorso e nome file in base alle mie esigenze, premendo poi
il tasto non succede niente.
[risposta]
Dipende da cosa hai scritto nel codice...
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggionews:6e7c7404-3267-4476...@d21g2000prf.googlegroups.com...

Io di fatto creo la tabella temporanea, perchè collego l'intero file
excel al mio database.
Ora, avendo questa tabella con i nomi dei campi variabili, secondo te
è possibile tramite query o codice accodare solo 2 di questi campi ad
un'altra tabella avente però i nomi dei campi fissi?
Per quanto riguarda il tuo codice sicuramente avrò sbagliato qualcosa;
d'altronde ti avevo già avvisato che non sono molto ferrato
sull'argomento.
Ciao.

 ha scritto nel messaggio 
news:8fbc56d7-7210-48bb...@l32g2000hse.googlegroups.com...
Io di fatto creo la tabella temporanea, perchè collego l'intero file
excel al mio database.
Ora, avendo questa tabella con i nomi dei campi variabili, secondo te
è possibile tramite query o codice accodare solo 2 di questi campi ad
un'altra tabella avente però i nomi dei campi fissi?
[risposta]
Certo che puoi ma devi sapere prima di eseguire la query quali campi, di 
quelli "variabili", devi scrivere in quelli "fissi".
Per quanto riguarda il tuo codice sicuramente avrò sbagliato qualcosa;
d'altronde ti avevo già avvisato che non sono molto ferrato
sull'argomento.
[risposta]
E' probabile; ma non riesco a capire se ti interessa capire cosa o hai 
abbandonato la soluzione per la strada intrapresa ora.
Per essere chiari, non cambia (quasi) nulla; con il codice indicato leggi 
(ed eventualmente importi i dati) direttamente il file excel senza prima 
collegarlo/importarlo in access.
Quindi salteresti un passo; ma rimane sempre il "problema" dei campi che non 
sono nominati e in posizioni diverse nel file excel.
Ma non ti conviene prima spostare solo le colonne che devi importare o 
nominarle?
Ciao.
[risposta]
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggionews:8fbc56d7-7210-48bb...@l32g2000hse.googlegroups.com...

Ciao.
In effetti la strada che mi avevi offerto col tuo codice l'ho subito
abbandonata, anche perchè come dici proprio tu, resta il fatto che non
si possono selezionare le colonne interessate.
Ho già creato la query di accodamento che mi prende i campi che mi
interessa, a patto che abbiano un determinato nome.
Credo sia l'unica soluzione disponibile; devo solo abituare chi lavora
sui file excel a scrivere nella prima riga le intestazioni di colonna
e dare il nome giusto alle colonne da esportare.
Grazie mille dei consigli.
Ciao