Condividi tramite

passaggio dati Access Excel

Anonimo
2017-01-09T10:57:38+00:00

Buongiorno,

dovrei passare i dati da un database Access (Office 365 home) ad un foglio Excel (stessa versione del programma), per fare dei grafici.

Sono 595.580 records. Se seleziono esporta su Excel mi viene fuori una finestra che mi avvisa che ho selezionato un numero di record maggiore di quello che è possibile copiare negli appunti.

Questo mi succede sia su un PC con 8 GB di ram che su uno con 64 GB di ram.

E' un limite"fisico" del programma o è questione di memoria disponibile?

Grazie

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2017-01-09T18:38:39+00:00

ciao Nicolo,

credo tu sia incappato in questo :

https://support.microsoft.com/it-it/kb/924681

problema riproducibile anche con Access 2010 pro.

prova con questa mini automazione, personalizzando il nome della tabella, e il path di destino.

Copia tutto in un modulo standard e lancia la sub export, che una volta perfezionata esporta la tabella in Excel la salva e ti mostra il file esportato.

Testato su 1,000,000 di righe, tutto ok e Access 2010 pro, non Home, che non possiedo, ma credo funzioni ugualmente...

Facci sapere.

Ciao, Sandro.

Option Compare Database

Option Explicit

Private XlsClass           As Object

Public Sub export()

On Error GoTo errorHandler

    If Not isXLSRunnning() Then Exit Sub

    Dim wbk                As Object

    Dim wsh                As Object

    Const strWkPath = "f:"                      ' <<< personalizzare

    Const strWkName = "tabella1.xlsx"    ' <<< personalizzare

    Const strTbl = "tabella1"

    Const cStrClass = "Excel.Application"

    DoCmd.TransferSpreadsheet transferType:=acExport, _

                              spreadSheettype:=acSpreadsheetTypeExcel12Xml, _

                              tableName:=strTbl, _

                              FileName:=strWkPath & strWkName, _

                              hasFieldNames:=-1

    Set wbk = XlsClass.Workbooks.Open(strWkPath & strWkName)

    Set wsh = wbk.worksheets.Item(1)

    With XlsClass

            .Visible = True

            AppActivate .Caption

           .ScreenUpdating = False

           .Calculation = -4135  ' xlManual

        With wsh

            .Cells.EntireColumn.AutoFit

        End With

        .ScreenUpdating = True

        .Calculation = -4105     'xlAutomatic

        .displayAlerts = True

         wbk.Save

    End With

exitErrorHandler:

    Set wsh = Nothing

    Set wbk = Nothing

    Set XlsClass = Nothing

    Exit Sub

errorHandler:

    With Err

            MsgBox "ERR#" & CStr(.Number) _

                & vbNewLine & .Description _

                , vbOKOnly Or vbCritical

     End With

     Resume exitErrorHandler

End Sub

Private Function isXLSRunnning() As Boolean

     On Error Resume Next

     Set XlsClass = GetObject(, "Excel.Application")

     Err.Clear

    If XlsClass Is Nothing Then

         Set XlsClass = CreateObject("Excel.Application")

         XlsClass.Visible = False

     End If

     If Err <> 0 Then

         MsgBox "qualcosa non va...." & _

             Err.Description, vbCritical, "Warning"

         isXLSRunnning = False

     Else

         isXLSRunnning = True

     End If

 End Function

La risposta è stata utile?

0 commenti Nessun commento

7 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2017-01-09T19:36:03+00:00

    Adesso forse capisco, per "Pro" intendevi "Personal"...?

    A mio parere la sola differenza è il numero di installazioni possibili, non il prodotto. In termini di prodotti Office non ho mai sentito parlare di limiti di versione.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-01-09T19:30:54+00:00

    ciao Francesco,

    forse hai ragione nessuna differenza, ma nelle versioni di office ci sono diverse release, che forse impattano in qualche modo.

    Qualche anno fa avevo notato una differenza in access 2003 non ricordo esattamente cosa fosse e quale fosse rispetto ad un'altra.... :-((, ma creava un malfunzionamento.... ma ho rimosso tutto...

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-01-09T19:16:51+00:00

    Scusa la mia ignoranza Sandro, quale è la diferenza tra Access Pro e Home? Pensavo ci fosse una sola versione...

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2017-01-09T18:21:21+00:00

    Ciao Nicolò,

    Il limiti di Excel li puoi trovare qui: https://support.office.com/en-us/article/Excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3?ui=en-US&rs=en-US&ad=US

    Riprodurre il tuo errore su 600.000 record è un po' difficile, ma avendo un DB Access, se non hai problemi di tempo e vuoi studiare un pochino, ti suggerisco di dare un occhiata a Power BI https://powerbi.microsoft.com.

    È un software di Microsoft, puoi integrarlo ad Access con delle connessioni che non ti obbligherebbero ad esportare i dati. In più è molto probabile che presto sarà integrato direttamente in Access. La tua soluzione finale sarebbe molto più evolutiva. Su Internet trovi anche un libro gratuito per cominciare : https://blogs.msdn.microsoft.com/microsoft_press/2016/06/16/free-ebook-introducing-microsoft-power-bi/

    La risposta è stata utile?

    0 commenti Nessun commento