Newsgroup: it.comp.lang.visual-basic
Titolo: Importazione da Excel

Effettuo regolarmente un importazione di un foglio Excel in un database
Access attraverso il seguente codice:
    Set Db = OpenDatabase(sExcelPath, True, False, "Excel 5.0")
    Call Db.Execute("Select * into [;database=" & sAccessDBPath & "]." &
sAccessTable & _
        " FROM [" & sSheetName & "$]")
Tutto funziona regolarmente tranne che senza apparente motivo e qualche
campo di qualche record viene "saltato" restituendo blank.
Qualcuno può darmi qualche indicazione per evitare il problema ?
Grazie a tutti !


Il foglio Excel dimensiona i campi della tabella usando la prima linea di
valori.
Questo fa sì che, se ad esempio un campo nella prima linea è numerico, nella
tabella tale colonna sarà dimensionata come numerica.
Se, però, la cella in excel era solo casualmente un numero, ma il campo
potrebbe essere anche testuale, le celle con il testo vengono ignorate.
Quello che puoi fare, è ad esempio inserire nella prima riga del foglio
excel una serie di valori che dimensionino correttamente i campi della
tabella.
Oppure, ed è la soluzione probabilmente più bella, crei la tabella prima
dell'importazione, poi anzichè un select into fai un insert con una select
al posto dei valori.
Ciao
Alberto

 ha scritto nel messaggio
news:l%p4a.130870$ZE.37...@twister2.libero.it...


 sempre agli stesi record.
Non ci siamo capiti.
Se ho capito bene, tu vuoi esportare un foglio di excel in una tabella di
access, giusto?
E vuoi farlo mediante un select into, giusto?
Bene: allora, il select into non rispetta la tabella access preesistente, ma
ne crea una nuova. Per determinare se una colonna di access deve essere
numero, stringa, data, boolean, ecc..., valuta la prima riga di dati del
foglio excel.
Se nella prima riga c'è una cella con un numero, nella tabella di access ci
sarà un campo numerico.
Se però, nella stessa colonna di excel della cella vista prima, ad un certo
punto c'è un testo, questo non è ovviamente compatibile con il formato del
campo di destinazione, ma oramai la struttura della tabella target è già
stata creata, e quindi, non potendo più modificarla, il dato viene scartato.
Guardando la struttura della tabella risultante, e quali dati mancano,
potrai individuare con semplicità se questo è o meno il problema.
Ciao
Alberto

 ha scritto nel messaggio
news:wyr4a.130760$YG2.3...@twister1.libero.it...


 foglio.
Può essere.
I dati che mancano di che tipo sono?
Testo, numero, date...?
Ciao
Alberto

 Alberto
Ciao e Grazie ancora.

 Sono formato numerico
Prova a sbottonarti.
Non è che, ad esempio, tu li interpreti come numerici ma in realtà sono
stringhe (cosa comunissima, in Excel)?
Oppure, non è che le prime righe contengono valori bassissimi, per cui
Access dimensiona come integer, poi dopo ci sono valori alti e quindi non
entrano nell'integer?
Però, detto francemente: io ci ho provato in tutti i modi, ma tu
oggettivamente di informazioni non ne dai proprio...
Non ti ho certo chiesto i conti correnti dei clienti.
Se vuoi risolvere il problema, non puoi costringere ad andare avanti per
tentativi, ipotizzando possibili problemi senza avere un minimo di
informazioni.
Ad esempio, prova a vedere se i dati che mancano hanno qualcosa di
particolare (sono più grandi, hanno il separatore delle migliaia, hanno
l'indicazione della valuta, ecc...)
Ciao
Alberto