Newsgroup: it.comp.lang.visual-basic
Titolo: [Vb +Excel] passare valori a datagrid

Ciao a Tutti!!!!
Ho un foglio excel dove c'è una prima riga con i nomi delle colonne ad
esempio Società, Piano, Interno ecc, la seconda riga ha un asterisco,
dalla terza in poi ho una serie di valori per ogni colonna.
Ho la necessità di leggere solo le colonne con l'asterisco e poi
visualizzarle con il contenuto di ogni colonna in una datagrid.
Il mio problema è come faccio a passare le colonne asteriscate con i
valori che mi servono alla datagrid?
Non posso salvare su una tabella del database i valori, poichè questa sarà
poi una scelta dell'utente.
Ma se non posso popolare a mano la datagrid come posso fare?
Qualcuno mi può aiutare?
Grazie mille in anticipo!!!!
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 visualizzarle con il contenuto di ogni colonna in una datagrid.
da un post di lupo:
http://www.connectionstrings.com/index.asp
pare che si possano usare i file di excel come fonte dati per una
connessione ado.
c'è anche un esempio di come costruire la source del recordset.
oppure, come sempre, puoi usare una grid che possa essere caricata
"manualmente", come la flexgrid.
-- 
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 c'è anche un esempio di come costruire la source del recordset.
Grazie Sergio;-)
Dunque quello che ho visto su questo sito l'avevo provato prima e
funziona, ma il mio problema è come faccio nella select a dirgli di
prendere solo le colonne che nella seconda riga del foglio hanno
l'asterisco? 


 l'asterisco?
uhm...
puoi identificare in qualche modo la riga che contiene gli asterischi?
se si, una prima volta carichi tutte le colonne, verifichi quelle che hanno
gli asterischi, chiudi e riapri andando a prendere solo le colonne che ti
interessano.
č un po' che non lavoro con questi oggettini, ma alla fine potresti avere
una cosa di questo genere:
<metacodice>
apri il recordset con un select * from foglio1$
posizioni il recordset al record che ti interessa
costruisci la query che comprende solo le colonne che ti servono piů o meno
cosě:
 ssql = "select "
 for each oggettofield in recordset.fields
    if oggettofield.value = "*" then
        ssql = ssql & "[" & 
oggettofield.name
 & "],"
    end if
 next
chiudi il recordset e lo riapri con la nuova query.


 chiudi il recordset e lo riapri con la nuova query.
dunque se passo alla select i nomi delle colonne del foglio excel funziona
(ad esempio solo Società,Piano), ma ora il problema è che alcuni nomi di
queste colonne sono scritte con gli spazi e andata a capo....la query
viene fuori così:
select Società,Piano,Interno,Sup.BOX,Superf. indirette,Superf.
Indirette2,Terrazzi al 45%,Terrazzi al 54%,Sup.  Conv.le,7,8,Prezzo       
 Conv.le,Prezzo,Prezzo         Totale,,Prenot.,CMP,5 rate      
5/10/15/20/25       mesi da i.l.
from `listino$`
quando la passo all'adodc (devo usare qsto controllo anche se non mi
piace) genera errore: "Errore di sintassi (operatore mancante)
nell'espressione della query 'Balconi e         Terrazzi'" .
Ho provato a sostituire l'andare a capo con uno spazio e poi a trimmare
gli spazi ma non funziona....come potrei fare?


 capo....
Per gli a capo non so, per gli altri in genere basta racchiudere il nome del
campo fra parentesi quadre

 campo fra parentesi quadre
Ciao Lupo!
non mi funziona cmq :-( 
grazie lo stesso!


 grazie lo stesso!
Prova allora a recuperare tutto (select *) e poi a lavorare con gli "indici"
di colonna, piů o meno cosě:
recodset.fields(0)
recodset.fields(1)
etc.

 from `listino$`
credo che più che gli a capo, il problema sia dovuto ai caratteri che non
possono essere utilizzati come nome di campo.
alcuni consigli e domande:
1) hai provato, dopo aver aperto il foglio completo, a fare un ciclo sulla
collection field del recordset (adodc1.recordset, nel tuo caso), per vedere
quale è la proprietà name con cui vengono visti?
2) nella stringa di connessione prova a mettere HDR=no, in questo modi i
campi sono nominati F1, F2 eccetera, e non dovresti avere problemi a
gestirli; certo che dovresti cambiare la dicitura in testa alle colonne
della grid...
3) carica comunque tutto, associa il recordset completo alla datagrid, e poi
azzera la larghezza delle colonne che non vuoi vedere.


 3) carica comunque tutto, associa il recordset completo alla datagrid, e poi
azzera la larghezza delle colonne che non vuoi vedere.
Bella idea!
Dunque l'ultima tua proposta l'ho presa in considerazione e per ora mi sta
bene, oggi pomeriggio parlo con il capoprogetto per avere l'approvazione o
no di qsta scelta.
Ora però ho un problemino, se apro un foglio da excel e poi da vb cerco di
caricare la datagrid con lo stesso, si genera un errore: "il modulo di
gestione microsoft jet nn è in grado di aprire il file.
Il file è già aperto con accesso esclusivo da un altro utente o è
necessario disporre dell'autorizzazione per visualizzare i dati."
Cercando nei vecchi 3D ho letto che il file excel non deve essere aperto
durante l'esecuzione della routine, ma se è vero allora bisogna chiuderlo
da codice?
Sto impazzendo con qsta gestione di Excel!!! :(


 Sto impazzendo con qsta gestione di Excel!!! :(
č che, secondo me, forse state utilizzando uno strumento non adatto.
queste cose vanno fatte appoggiandosi a dei database, non a excel.
chiudere il file excel da programma non dovrebbe essere impossibile, se č
aperto sulla stessa macchina, altrimenti la vedo durissima.
