Ammammata
2025-01-31 15:30:58 UTC
[metto anche qui, dopo aver postato su
microsoft.public.it.office.excel, visto che comunque di Access di
tratta]
tempo addietro ho scritto e usato con profitto un po' di codice VBA in
Access per aggiornare un file Excel
la routine definisce l'oggetto e lo apre senza problemi:
-------------------
Dim oExcel As Object ' Excel.Application
Dim oExcelWrkBk As Object ' Excel.Workbook
Dim oExcelWrSht As Object ' Excel.Worksheet
' Launch Excel
Set oExcel = CreateObject("Excel.Application")
Dim XlsxName, XlsxPath As String
'Start Excel
On Error Resume Next
Set oExcel = GetObject(, "Excel.Application")
If Err <> 0 Then
Err.Clear
On Error GoTo Error_Handler
Set oExcel = CreateObject("Excel.Application")
Else
On Error GoTo Error_Handler
End If
oExcel.ScreenUpdating = False
oExcel.Visible = False 'This is false by default anyway
XlsxName = "ReCalc"
XlsxPath = "c:\Sviluppo\QCT\Temp\" & XlsxName & ".xlsx" ' remember
to create Temp folder
Set oExcelWrkBk = oExcel.Workbooks.Open(XlsxPath)
Set oExcelWrSht = oExcelWrkBk.Sheets(1)
-------------------
a un certo punto eseguo queste istruzioni:
oExcelWrSht.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) =
DBSelect![UserQCT]
oExcelWrSht.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) =
DBSelect![Distributor]
oExcelWrSht.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0) =
DBSelect![SourceManuf]
sono le prime tre di una serie
per quel che ricordo , per accodare a eventuali dati già esistenti,
parto dal basso della prima colonna Rows.Count (1048576) e torno su
fino alla prima cella occupata End(xlUp) per poi scrivere in quella
subito sotto Offset(1, 0)
l'errore di Access è "Object required"
ho migliorato la routine di errore e adesso ottengo:
Error number 424
Error source RecalcPrintSelection
Error description Object required
ovviamente non dice altro :(
una veloce ricerca con Google sul supporto di MS dice che c'è un
oggetto sconosciuto
Nota Bene:
oExcelWrSht è corretto, sembra che manchi una k ma all'inizio è stato
definito proprio così, vedi sopra
e poi, come detto, ha sempre funzionato :( ma oggi no
se avete un indizio lo accetto volentieri
se pensate che sia meglio spostarsi sul gruppo di access ditelo che
vado di corsa
grazie
microsoft.public.it.office.excel, visto che comunque di Access di
tratta]
tempo addietro ho scritto e usato con profitto un po' di codice VBA in
Access per aggiornare un file Excel
la routine definisce l'oggetto e lo apre senza problemi:
-------------------
Dim oExcel As Object ' Excel.Application
Dim oExcelWrkBk As Object ' Excel.Workbook
Dim oExcelWrSht As Object ' Excel.Worksheet
' Launch Excel
Set oExcel = CreateObject("Excel.Application")
Dim XlsxName, XlsxPath As String
'Start Excel
On Error Resume Next
Set oExcel = GetObject(, "Excel.Application")
If Err <> 0 Then
Err.Clear
On Error GoTo Error_Handler
Set oExcel = CreateObject("Excel.Application")
Else
On Error GoTo Error_Handler
End If
oExcel.ScreenUpdating = False
oExcel.Visible = False 'This is false by default anyway
XlsxName = "ReCalc"
XlsxPath = "c:\Sviluppo\QCT\Temp\" & XlsxName & ".xlsx" ' remember
to create Temp folder
Set oExcelWrkBk = oExcel.Workbooks.Open(XlsxPath)
Set oExcelWrSht = oExcelWrkBk.Sheets(1)
-------------------
a un certo punto eseguo queste istruzioni:
oExcelWrSht.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) =
DBSelect![UserQCT]
oExcelWrSht.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) =
DBSelect![Distributor]
oExcelWrSht.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0) =
DBSelect![SourceManuf]
sono le prime tre di una serie
per quel che ricordo , per accodare a eventuali dati già esistenti,
parto dal basso della prima colonna Rows.Count (1048576) e torno su
fino alla prima cella occupata End(xlUp) per poi scrivere in quella
subito sotto Offset(1, 0)
l'errore di Access è "Object required"
ho migliorato la routine di errore e adesso ottengo:
Error number 424
Error source RecalcPrintSelection
Error description Object required
ovviamente non dice altro :(
una veloce ricerca con Google sul supporto di MS dice che c'è un
oggetto sconosciuto
Nota Bene:
oExcelWrSht è corretto, sembra che manchi una k ma all'inizio è stato
definito proprio così, vedi sopra
e poi, come detto, ha sempre funzionato :( ma oggi no
se avete un indizio lo accetto volentieri
se pensate che sia meglio spostarsi sul gruppo di access ditelo che
vado di corsa
grazie
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........