Ciao a tutti, ho bisogno di esportare i dati di una tabella access in un file excel tramite vb5. Ho cercato nel forum ma non sono riuscito a trovare una risposa precisa al mio problema. Volevo sapere:
1) se è possibile visualizzare il file una volta riempite le celle;
2) se è possibile in qualche modo pulire le celle del foglio excel prima di scriverci i miei dati dentro, in quanto si accavallano i dati attuali con quelli salvati al precedente accesso.
3) fare in modo che il programma funzioni su tutti i pc indiferentemente dalla versione di excel installata.
Di seguito il codice che ho usato:
codice:
On Error GoTo Errore
If VerifyFile(App.Path & "\stampe.xls") Then
'imposto la variabile oggetto FileExcel con il nome del file xls
Set FileExcel = Excel.Workbooks.Open(App.Path & "\stampe.xls")
Else
MsgBox "Impossibile eseguire il programma" & _
vbCrLf & "Il file " & App.Path & "\stampe.xls" & " non è stato trovato.", vbOKOnly
End If
'imposto la variabile oggetto FoglioExcel con il nome del foglio da leggere
Set FoglioExcel = FileExcel.Worksheets("Inventario")
Dim Riga
Dim Giacenza
Dim SqlString
Riga = 4: Giacenza = 0
'eseguo la query di ordinamento
SqlString = "select magazzino.* from magazzino order by descrizione_art"
With Data1_Mag
.RecordSource = SqlString
.Refresh
End With
With Data1_Mag.Recordset
.MoveFirst
Do Until .EOF
If !quantita_art = 0 And ExcelDiv = 1 Then GoTo 20
Riga = Riga + 1
'imposto la variabile oggetto CellaFoglioExcel
Set CellaFoglioExcel = FoglioExcel.Range("A" & Riga)
CellaFoglioExcel = !Codice_art
Set CellaFoglioExcel = FoglioExcel.Range("B" & Riga)
CellaFoglioExcel = !descrizione_art
Set CellaFoglioExcel = FoglioExcel.Range("C" & Riga)
CellaFoglioExcel = !quantita_art
Set CellaFoglioExcel = FoglioExcel.Range("d" & Riga)
CellaFoglioExcel = !PREZZOCAR_ART
Set CellaFoglioExcel = FoglioExcel.Range("e" & Riga)
CellaFoglioExcel = !PREZZOSCAR_ART
Set CellaFoglioExcel = FoglioExcel.Range("f" & Riga)
CellaFoglioExcel = !PREZZOCAR_ART * !quantita_art
Giacenza = Giacenza + (!PREZZOCAR_ART * !quantita_art)
20
.MoveNext
Loop
End With
Riga = Riga + 2
Set CellaFoglioExcel = FoglioExcel.Range("D" & Riga)
CellaFoglioExcel = "Tot. Giacenza € "
Set CellaFoglioExcel = FoglioExcel.Range("F" & Riga)
CellaFoglioExcel = Format(Giacenza, "###,###.00") 'giacenza totale
Set FoglioExcel = file
'provvedo a stampare il file excel
Set FoglioExcel = FileExcel.Worksheets("Inventario")
'FoglioExcel.PrintOut
Set FoglioExcel = Nothing
FileExcel.Close
ExcelDiv = 0
Exit Sub
Errore:
MsgBox "Errore " & err.Number & vbCrLf & err.Description
Set FoglioExcel = Nothing
FileExcel.Close
End Sub