Newsgroup: it.comp.lang.visual-basic
Titolo: [HELP2] Come esporto in Excel specificando il formato celle di una colonna/campo ?

Se non avete tepo di leggere il seguito, rispondete alla domanda in subject
please !
Ho adattato il modulo ModVisData per far si' che la mia funzione di
esportazione funga con ADO invece di DAO cosi' ho messo insieme:
rsToDB e' una stringa con il path della destinatione, preso con un common
dialog
cosi' apro una nuova tabella:
    Case gnDT_EXCEL50, gnDT_EXCEL40, gnDT_EXCEL30
        sConnect = "] IN '" & rsToDB & "' '" & gsEXCEL50 & "'"
        DC.Open "DSN=Excel Files;DBQ=" _
        & rsToDB & ";DefaultDir=" & StripFileName(rsToDB) &
";DriverId=22;MaxBufferSize=2048;PageTimeout=5;"
    Case gnDT_TEXTFILE
        sDBName = StripFileName(rsToDB)
        sConnect = ".txt] IN '" & StripFileName(rsToDB) & "' '" &
gsTEXTFILES & "'"
        DC.Open "DSN=Text Files;DBQ=" _
        & sDBName & ";DefaultDir=" & sDBName _
        & ";DriverId=27;MaxBufferSize=2048;PageTimeout=5;"
E poi effettuo l'export con rsFrom come stringa di SELECT SQL:
  DE.ConnectionXX.Open
  DE.ConnectionXX.Execute "select * into [" _
    & StripOwner(sNewTblName) _
    & sConnect & " from (" & rsFrom & ")"
  DE.ConnectionXX.Close
StripOwner toglie il path e ritorna il filename.
Il punto cruciale e' la SELECT * INTO [tablename](.txt) IN (text or xls
file)
Tutto funziona bene, e sembra facile aggiungere altri formati tipo Paradox,
ma mi piacerebbe avere controllo sui file di uscita, per esempio vorrei
cambiare il delimitatore per i file di testo, e impostare il formato cella
per i file di uscita xls, infatti mi ritrovo i campi data esportati nel XLS
in celle in cui si legge la data ma non l'ora, ivviamente tutto ok se
imposto in Excel il formato celle su tipo di dato = data. Come faccio a
cambiare queste impostazioni (schema del db esportato) quando credo nuovi
file di testo e Excel in esportazione ?
--
mike...@triesterivista.it
http://www.interware.it/users/mike/
http://www.triesterivista.it/
--
mike...@triesterivista.it
http://www.interware.it/users/mike/
http://www.triesterivista.it/

 Se non avete tepo di leggere il seguito, rispondete alla domanda in
subject please !
Approfitto. ;-)
Forse ti puo` essere utile far girare le seguenti poche righe in un modulo
vb di excel (in italiano) per verificare come "reagiscono" gli automatismi
di formattazione:
Option Explicit
Sub Prova()
  With Excel.ActiveSheet
    .Range("A1").Formula = "1:00:00"
    .Range("A2").FormulaLocal = "1.00.00"
    .Range("A3").Value = "1.00.00"
    .Range("A4").Value = "1:00:00"
    .Range("A5").Formula = "1/13/2001"
    .Range("A6").FormulaLocal = "13/1/2001"
    .Range("A7").Value = "13/1/2001"
    .Range("A8").Value = "1/13/2001"
    .Range("A9").Formula = "1/13/2001 1:00:00"
    .Range("A10").FormulaLocal = "13/1/2001 1.00.00"
    .Range("A11").Value = "13/1/2001 1.00.00"
    .Range("A12").Value = "1/13/2001 1:00:00"
    .Range("A13").Value = "1.234,56"
    .Range("A14").Value = "1,234.56"
  End With
End Sub
Le stringhe che *non* vengono interpretate correttamente come Orario, Data o
Data e orario sono quelle assegnate alle celle A3, A7 e A11. Conclusione: da
codice assegna i valori con stringhe in formato americano. Vale anche per i
valori numerici, come puoi vedere nelle celle A13 e A14.

--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

 ha scritto nel messaggio
news:9ahk7t$4t2nt$1...@ID-52090.news.dfncis.de...


 ... avete un esempio VB ?
Se non si fa vivo nessuno, piu` tardi vedo cosa posso fare.


 puoi formattare la cella come ti pare ma sempre testo resta.
No, infatti se tento di formattarlo in SQL mi va come testo, ma se lo lascio
in tipo di dati "data" quello va ok. Allora io adesso voglio riaprire il
foglio excel creato con la query e cambiare il formato celle:
- come si fa ?
- poi il programma gira anche se sul sistema Excel non e' installato ?


 - poi il programma gira anche se sul sistema Excel non e' installato ?
No. Ovvero, ma io non ho verificato, installando le librerie che hai nei
riferimenti dovrebbe girare ma allora avresti problemi legali relativamente
alla licenza MS.


Mi correggo:
Option Explicit
Sub Main()
  With New Excel.Application
    With .Workbooks.Open("c:\progetti\northwind.xls")
      With .Worksheets("Ordini")
        .Range("A2").NumberFormat = "000,000.00"
      End With
      .Close False 'Io qui chiudo senza salvare...
                   'tu invece... no;-)
    End With
    .Quit
  End With
End Sub
--
