Formattazione file excel da access 2010

di il
2 risposte

Formattazione file excel da access 2010

Salve,

ho un piccolo tool che, partendo da una serie di tabelle, genera un unico tabellone restituendo alcune informazioni.
Questo tabellone deve essere esportato in excel

E fin qui tutto a posto.

Mi si chiede poi di formattare il file così ottenuto, impostando colori, allineamenti, anche il freeze del foglio e cosi via.

Un collega mi ha persino fornito il codice funzionante per una macro direttamente in excel, ma ovviamente non funziona in access.
Ho cercato un po' in giro, sono riuscito ad aprire un foglio excel con createobject e excel.application, ma poi non ho la più pallida idea su come intervenire sul foglio e non riesco a trovare documentazione in merito, neanche sull'help di access stesso.

Cosa strana, ho trovato negli help questa dichiarazione
Dim xlSheet As Excel.WorkSheet ma non me la accetta neanche in debug (mancanza di librerie o riferimenti?)

potete darmi qualche dritta?
studiarmi un help sulla sintassi non mi spaventa, ma non riesco proprio neanche a trovarlo

Grazie in anticipo

A.

2 Risposte

  • Re: Formattazione file excel da access 2010

    La macro in Excel funziona perfettamente anche da Access ma sull'oggetto Excel...
    Quindi devi aprire un oggetto EXCEL, esportare il contenuto, poi applichi la Formattazione grafica.

    Quì trovi un esempio discreto di come si affronta il problema:
    https://stackoverflow.com/questions/14400818/formatting-outputted-excel-files-from-access-using-vba

    In quegli esempi che si appoggiano a tecnica EarlyBinding serve tu vada ad inserire in Access i Rifeirmenti alle Librerie di Excel, cosa che poi per chi sviluppa in Access non è una buona cosa diventando un Vincolo di dipendenza dalla VERSIONE di EXCEL... quindi se poi sposti il tuo applicativo da chi ha una versione diversa(Inferiore) non funziona...
    In questo caso si usa LATEBINDING.... fai qualche ricerca per capire di cosa parlo.
  • Re: Formattazione file excel da access 2010

    Grazie per la risposta

    ho lavorato sull'esempio che mi hai indicato
    Intanto ho scoperto la libreria da includere nei riferimenti, per il discorso excel

    ho poi provato a seguire l'esempio, non mi da più errore, ma sembra non avere effetto
    Dim xlApp As Excel.Application
        Dim xlBook As Excel.Workbook
        Dim xlSheet As Object
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = GetObject(x & ".xlsb")
        Set xlSheet = xlBook.Worksheets(1)
        
        With xlSheet
            .Rows("1:1").Font.Bold = True
            .Range("A1") = "PIPPO"
    Qui per esempio non mi setta nè il grassetto nè mi scrive qualcosa in A1

    Guardando gli esempi ho visto che c'era anche un metodo save
    ho aggiunto allora alla fine
    xlBook.Save
        xlBook.Close
    ma a questo punto succede una cosa strana, ovvero quando cerco di aprire il file, mi resta l'applicazione excel aperta senza il file dentro
    E' come se fosse rimasto appeso da qualche parte e non più accessibile da altre applicazioni

    tieni presente che in fondo c'è sempre il set ... = nothing delle variabili coinvolte

    Qualche idea?
    Possibile che non esistano help per queste cose?

    Grazie

    A.
Devi accedere o registrarti per scrivere nel forum
2 risposte