Newsgroup: it.comp.lang.visual-basic
Titolo: Recordset -> HTML

Ho la necessità di salvare un recordset ADO in un file HTML, fornendo a più
utenti la possibilità di vedere in forma di tabella i dati contenuti.
ADODB.Recordset offre la possibilità di salvare su file XML o ADTG, e per
altre cose mi andrebbe benissimo.
Per creare il file HTML, con una tabella con tutti i dati, dovrei creare una
funzioncina che cominci a scrivere secondo la sintassi HTML, quindi i vari
<table> .... ecc..., inserendo i valori uno ad uno.
Qualcuno conosce un modo più furbo e rapido di arrivare allo stesso
risultato?
Ciao
Alberto

 <table> .... ecc..., inserendo i valori uno ad uno.
Non dovrebbe prenderti troppo tempo: crei l'intestazione... poi fai un loop
sul recordset, ed infine "chiudi" la tabella. Dovrebbero essere poche righe
di codice ammenochè non ti serva qualcosa di speciale...

 risultato?
se r è un oggetto recordset, la seguente istruzione ti crea una tabella in
html con i dati della query SQL.
tabella="<table><tr><td>" & _
r.GetString(, , "</td><td>", "</td></tr>" & vbCrLf & "<tr><td>") & _
"</td></tr></table>"
Saluti,
Luca Barbetta kck/skd


Grazie mille.
In realtà, nel frattempo stavo creando e testando una mia funzione.
Non ho usato GetString, che ho provato, perchè non mi consente di settare
l'allineamento delle celle in funzione del tipo del campo.
Quello che ho creato è qui sotto, se dovesse servire a qualcuno.
Ciao
Alberto
Public Function Esporta_Su_HTML(ByRef ADO_RS As ADODB.Recordset, ByVal
Titolo As String, ByVal Nome_File As String, Optional ByVal Introduzione As
String = vbNullString) As Long
Dim fil As Integer
Dim Linea As String
Dim FLD As ADODB.Field
On Error GoTo Errore
Esporta_Su_HTML = -1
If Not CBool(ADO_RS.State And adStateOpen) Then Exit Function
Esporta_Su_HTML = -2
If ADO_RS.BOF And ADO_RS.EOF Then Exit Function
fil = FreeFile()
Close
Esporta_Su_HTML = -3
Open Nome_File For Output As #fil
'Inserimento Righe Inizio
Linea = "<html><head><title>" & Titolo & "</title></head><body>" & vbNewLine
& Introduzione & vbNewLine & "<table border=""1"">"
Print #fil, Linea
Esporta_Su_HTML = -4
ADO_RS.MoveFirst
'Scrittura titoli di colonna
Linea = "<tr>"
For Each FLD In ADO_RS.Fields
        Linea = Linea & "<td>" & FLD.Name & "</td>"
Next FLD
Linea = Linea & "</tr>" & vbNewLine
Print #fil, Linea
Esporta_Su_HTML = 0
Do While Not ADO_RS.EOF
    Linea = "<tr>"
    For Each FLD In ADO_RS.Fields
        Select Case FLD.Type
            Case adChar, adVarChar, adBoolean
                Linea = Linea & "<td align=""center"">"
            Case adNumeric, adDecimal, adCurrency
                Linea = Linea & "<td align=""right"">"
            Case Else
                Linea = Linea & "<td>"
        End Select
        If Trim(CStr(FLD.Value)) = vbNullString Then
            Linea = Linea & "-</td>"
        Else
            Linea = Linea & CStr(FLD.Value) & "</td>"
        End If
        Esporta_Su_HTML = Esporta_Su_HTML + 1
    Next FLD
    Linea = Linea & "</tr>" & vbNewLine
    Print #fil, Linea
    ADO_RS.MoveNext
Loop
'Inserimento Righe Finali
Linea = "</table></body></html>"
Print #fil, Linea
Close
Exit Function
Errore:
Close
Esporta_Su_HTML = -99
End Function

Dimenticavo:
Esporta_Su_HTML = -99
l'ho tolto.
Ciao
Alberto

 ha scritto nel messaggio
news:a96c96$ou9$1...@newsreader.mailgate.org...
| 'Scrittura titoli di colonna
| Linea = "<tr>"
| For Each FLD In ADO_RS.Fields
|         Linea = Linea & "<td>" & FLD.Name & "</td>"
| Next FLD
| Linea = Linea & "</tr>" & vbNewLine
i titoli di colonna si fanno con <th> se proprio si
vuole fare i pignoli...
per il resto :) ok
io avrei pensato a esporre un evento che ti dice
quale colonna e/o riga sta esportando cosi' magari
in caso di valori che devi segnalare con colori strani
gli butti la sintassi (che scrivi in una stringa che
ti passa per l'evento e poi se la riprende) cosi'
sarebbe + fico.
io faccio questo per l'rtf e posso comporre tabelle
con source da db o includere immagini nelle celle dove
mi pare :)
--
[ Penguin At Work ]
-> 
http://web.tiscali.it/penguinatwork/
-> aka Fustino Di Dixan while working

"Fustino di Dixan" <acer...@penguinAtWork.it> ha scritto nel messaggio
news:a96ee0$1upv$1...@phobos.ibnetwork.net...
| in caso di valori che devi segnalare con colori strani
| gli butti la sintassi (che scrivi in una stringa che
| ti passa per l'evento e poi se la riprende) cosi'
| sarebbe + fico.
ma che stringa e stringa... volevo dire
che chiami una routine (che fa parte dell'oggetto)
che sa #nfile e quindi scrive cio' che gli dici
... e lo fa scrivendo di conseguenza nel punto
dove il file e' arrivato, cioe' nella cella !
poi, oh, sono opinioni.
al mio collega una cosa cosi' non piace anche se
io la trovo comoda perche' molto flessibile.


 vuole fare i pignoli...
Grazie.
Vado subito a modificare la cosa.
Non conosco l'HTML. Avevo preso Frontpage, creato una tabella, aperto col
notepad e interpretato la sintassi, poi ho creato la function.
Dal post di LordRayden, che mi diceva di non avere altre idee, a quando ho
postato la funzione, potrai vedere che non ho avuto molto tempo per
studiarmi l'Html, scrivere la funzione, inserirla in una applicazione di
prova e testarla.
Ciao
Alberto

 ha scritto nel messaggio
news:a96fdv$sqr$1...@newsreader.mailgate.org...
| Non conosco l'HTML. Avevo preso Frontpage, creato una tabella, aperto col
| notepad e interpretato la sintassi, poi ho creato la function.
ok, ok... mica ti ho detto cosa stai facendo.
era solo a titolo informativo.
una strada vale l'altra e la differenza visiva
e' nulla.
| Dal post di LordRayden, che mi diceva di non avere altre idee, a quando ho
| postato la funzione, potrai vedere che non ho avuto molto tempo per
| studiarmi l'Html, scrivere la funzione, inserirla in una applicazione di
| prova e testarla.
vai tranquillo, mica non ti cronometro :p !!


Avevo dimenticato le faccine :-)))
Voleva essere una precisazione, a puro titolo informativo. Ho anzi
apprezzato il tuo consiglio, tant'è che l'ho già messo nella function!
Ciao
Alberto