Ciao a tutti, volevo un'informazione relativa all'esportazione di un database access come file .csv
Qualcuno potrebbe postarmi lo script, oppure dirmi dove reperire informazioni?
Grazie, ciao![]()
Ciao a tutti, volevo un'informazione relativa all'esportazione di un database access come file .csv
Qualcuno potrebbe postarmi lo script, oppure dirmi dove reperire informazioni?
Grazie, ciao![]()
Ho questo piccolo esempio:
codice:<% Response.ContentType = "application/msexcel" 'INTESTAZIONE strXls = chr(34) & "Nome" & chr(34) & "," strXls = strXls & chr(34) & "Acquisti" & chr(34) & "," & VbCrlf Set conn = Server.CreateObject("ADODB.Connection") sql = "SELECT * FROM Clienti ORDER BY id DESC" dsnpath = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)}; " dsnpath = dsnpath & "DBQ=" & Server.MapPath("DBUtenti.mdb") conn.open dsnpath Set rs = Server.CreateObject("ADODB.Recordset") Set Rs=Conn.Execute(SQL) Do Until RS.EOF strXls = strXls & chr(34) & rs("Nome") & chr(34) & "," strXls = strXls & chr(34) & rs("Cognome") & chr(34) & "," & VbCrlf rs.MoveNext loop set rs = Nothing conn.Close Set conn = Nothing 'INVIO AL BROWSER Response.write strXls %>![]()
Grazie mille!Ora me lo studio per bene, ciao!!!!Originariamente inviato da michele.santoro
Ho questo piccolo esempio:
codice:<% Response.ContentType = "application/msexcel" 'INTESTAZIONE strXls = chr(34) & "Nome" & chr(34) & "," strXls = strXls & chr(34) & "Acquisti" & chr(34) & "," & VbCrlf Set conn = Server.CreateObject("ADODB.Connection") sql = "SELECT * FROM Clienti ORDER BY id DESC" dsnpath = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)}; " dsnpath = dsnpath & "DBQ=" & Server.MapPath("DBUtenti.mdb") conn.open dsnpath Set rs = Server.CreateObject("ADODB.Recordset") Set Rs=Conn.Execute(SQL) Do Until RS.EOF strXls = strXls & chr(34) & rs("Nome") & chr(34) & "," strXls = strXls & chr(34) & rs("Cognome") & chr(34) & "," & VbCrlf rs.MoveNext loop set rs = Nothing conn.Close Set conn = Nothing 'INVIO AL BROWSER Response.write strXls %>![]()
![]()
Ma questo me lo salva in un file .csv? Cioè, ci devo aggiungere l'FSO giusto? Mi salvo sul file i valori del recordset?
![]()
un file csv lo tratti come un normale file di testo usando ";" separatore di colonna e il VbCrLf come separatore di riga.
lo salvi sul server come file.csv con FSO
codice:'una volta creato il recordset a tuo piacimento.... testo_csv = "" 'Crea l'intestazione con i nomi dei campi i = 0 For i = 0 To rs.Fields.Count - 1 testo_csv = testo_csv & " & rs.Fields(i).name & ";" next testo_csv = testo_csv & VbCrLf 'ora aggiungiamo il contenuto del recordset i = 0 do while not rs.eof For i = 0 To rs.Fields.Count - 1 testo_csv = testo_csv & " & rs.fields(i).value & ";" Next testo_csv = testo_csv & VbCrLf rs.movenext loop 'ora creare il file csv path = server.mappath("/cartella_con_permessi/csv/") nome = "FileCSV.csv" completo = path & nome Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.CreateTextFile(completo) file.WriteLine(testo_csv) file.Close Set file = Nothing Set fso = Nothing
Originariamente inviato da saltodifondi
un file csv lo tratti come un normale file di testo usando ";" separatore di colonna e il VbCrLf come separatore di riga.
lo salvi sul server come file.csv con FSO
codice:'una volta creato il recordset a tuo piacimento.... testo_csv = "" 'Crea l'intestazione con i nomi dei campi i = 0 For i = 0 To rs.Fields.Count - 1 testo_csv = testo_csv & " & rs.Fields(i).name & ";" next testo_csv = testo_csv & VbCrLf 'ora aggiungiamo il contenuto del recordset i = 0 do while not rs.eof For i = 0 To rs.Fields.Count - 1 testo_csv = testo_csv & " & rs.fields(i).value & ";" Next testo_csv = testo_csv & VbCrLf rs.movenext loop 'ora creare il file csv path = server.mappath("/cartella_con_permessi/csv/") nome = "FileCSV.csv" completo = path & nome Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.CreateTextFile(completo) file.WriteLine(testo_csv) file.Close Set file = Nothing Set fso = Nothing
Grazie, hai chiarito i miei dubbi, ciao![]()
![]()
Response.ContentType = "application/msexcel"
'INTESTAZIONE
strXls = chr(34) & "account" & chr(34) & ","
strXls = strXls & chr(34) & "matricolautente" & chr(34) & ","
strXls = chr(34) & "cognomeutente" & chr(34) & ","
strXls = strXls & chr(34) & "nomeutente" & chr(34) & ","
strXls = chr(34) & "siglafunzioneaziendale" & chr(34) & ","
strXls = strXls & chr(34) & "societàdiappartenenza" & chr(34) & ","
strXls = chr(34) & "riferimentoTelecomperilpersonaleesterno" & chr(34) & ","
strXls = strXls & chr(34) & "profilofunzionale" & chr(34) & ","
strXls = chr(34) & "note1" & chr(34) & ","
strXls = strXls & chr(34) & "hostnamedbname" & chr(34) & ","
strXls = chr(34) & "nome_sistema" & chr(34) & ","
strXls = strXls & chr(34) & "data_caricamento" & chr(34) & "," & VbCrlf
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\mdb\Gestione_PI_Tickets.mdb"
set rs = server.createobject("ADODB.recordset")
sql1 = "select * from DB_UTENZE ORDER BY db_utenze.nome_sistema;"
Set rs = Server.CreateObject("ADODB.Recordset")
Set Rs=Conn.Execute(SQL)
Do Until RS.EOF
strXls = chr(34) & "account" & chr(34) & ","
strXls = strXls & chr(34) & "matricolautente" & chr(34) & ","
strXls = chr(34) & "cognomeutente" & chr(34) & ","
strXls = strXls & chr(34) & "nomeutente" & chr(34) & ","
strXls = chr(34) & "siglafunzioneaziendale" & chr(34) & ","
strXls = strXls & chr(34) & "societàdiappartenenza" & chr(34) & ","
strXls = chr(34) & "riferimentoTelecomperilpersonaleesterno" & chr(34) & ","
strXls = strXls & chr(34) & "profilofunzionale" & chr(34) & ","
strXls = chr(34) & "note1" & chr(34) & ","
strXls = strXls & chr(34) & "hostnamedbname" & chr(34) & ","
strXls = chr(34) & "nome_sistema" & chr(34) & ","
strXls = strXls & chr(34) & "data_caricamento" & chr(34) & "," & VbCrlf
rs.MoveNext
loop
set rs = Nothing
conn.Close
Set conn = Nothing
'INVIO AL BROWSER
Response.write strXls
%>
Ho provato questo questo script ma mi dà come risultato :
"nome_sistema","data_caricamento",
quindi a parte non mi da tutte le intestazioni ,a mon mi fà vedere i dati.
come devo fare
<%
Response.ContentType = "application/msexcel"
'INTESTAZIONE
strXls = chr(34) & "account" & chr(34) & ","
strXls = strXls & chr(34) & "matricolautente" & chr(34) & "," & VbCrLf
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\mdb\Gestione_PI_Tickets.mdb"
set rs = server.createobject("ADODB.recordset")
sql1 = "select * from DB_UTENZE"
rs.open sql1, objconn, 3, 3
Do Until RS.EOF
strXls = strXls & chr(34) & rs("account") & chr(34) & ","
strXls = strXls & chr(34) & rs("matricolautente") & chr(34) & "," & VbCrlf
rs.MoveNext
loop
path = server.mappath("../mdb/csv/")
nome = "FileCSV.csv"
completo = path & nome
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.CreateTextFile(completo)
file.WriteLine(testo_csv)
file.Close
Set file = Nothing
Set fso = Nothing
rs.close
set rs=nothing
'chiudo e distruggo la connessione
objConn.close
set objconn=nothing
'INVIO AL BROWSER
Response.write strXls
%>
adesso funziona...ma un ultima cosa, vorrei mettere coem separatore il punto è virgola, come si fà ed infine non mi salva mi da errore su questo pezzo:
path = server.mappath("../mdb/csv/")
nome = "FileCSV.csv"
completo = path & nome
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.CreateTextFile(completo)
file.WriteLine(testo_csv)
file.Close
Set file = Nothing
Set fso = Nothing
l'errore è il seguente:
Tipo di errore:
Errore di run-time di Microsoft VBScript (0x800A004C)
Impossibile trovare il percorso
/esporta_csv.asp, line 33
il path è c:\mdb\csv