Esporta report pdf cliente e nome personalizzato

di il
44 risposte

44 Risposte - Pagina 2

  • Re: Esporta report pdf cliente e nome personalizzato

    Monster88 ha scritto:


    Ciao OsvaldoLaviosa, grazie mille per la paienza nelle spiegazioni;
    nel mio caso il report che prende i dati dalla query non ha un campo "chiave primaria".
    Il database fa un lavoro molto semplice:
    1 - Importa un file di excel dove ci sono i campi Tessera, OraRif, Data, LitriInterni, Km, Pompa, Veicolo
    2 - Da questi campi con una query con criterio data filtro i dati per "Data" scusa il giro di parole
    3 - Genero un report per ogni veicolo e sotto vengono elencati in una tabella i campi Tessera, OraRif, Data, LitriInterni, Km, Pompa, ordinati per tessera e data
    4 - Dovrebbe esportare un pdf per ogni veicolo della data scelta nella query

    L'unico Id presente è nella tabella Importa dati e si riferisce a quanto importato dal foglio excel,
    Posso esimermi da utilizzare una "chiave primaria"?
    No. In Access, come ti ha già detto @Alex, devi rispettare le regole di NORMALIZZAZIONE. Noi finora ti abbiamo risposto ritenendo implicito tu avessi impostato il database in questa direzione. Non affrontare Access con la stessa "superficialità" di Excel. Le due applicazioni sono "logicamente" molto differenti.

    Monster88 ha scritto:


    Ultima domanda, quando avrò "finito" è possibile mandarvi il database e chiedere un vostro giudizio?
    In questo caso il database come posso inviarlo? in allegato al messaggio non lo accetta.
    Detto così non è nello spirito del forum. Potresti invece descrivere testualmente tutte le tabelle con relativi nomi campo e relazioni e chiedere (magari nella sezione Progettazione database) se va bene oppure necessitano ulteriori correzioni. In alternativa puoi allegare una immagine della Finestra Relazioni. Per altri ulteriori SINGOLI dubbi puoi aprire nuove discussioni specifiche. Ti raccomando anch'io di studiare da solo almeno le basi di Access, requisito minimo richiesto dalle regole generali del forum.
  • Re: Esporta report pdf cliente e nome personalizzato

    Ciao a tutti, sono di nuovo qui, purtroppo o per fortuna.
    Allora, ho rifatto completamente da capo il database seguendo le prime 3 regole di normalizzazione.
    Le tabelle sono anagrafica soci, anagrafica tessere, rifornimenti, ogni tabella ha un campo primario.
    Ho creato una query chiamata query1 con criterio [Data inizio] con i campi IDTessera (chiave esterna della tabella anagrafica tessere), data, litri, IDCisterna (chiave esterna della tabella anagrafica cisterne), IDCliente (chiave esterna della tabella anagrafica soci).
    Ho lanciato la query e funziona.
    Poi ho creato una maschera ReportGiornaliero con pulsante Export PDF Singoli, ho inserito il codice con le dovute modifiche che riporto qui sotto:
    
    Private Sub cmdexport_Click()
    
    Dim DBCorrente As DAO.Datatbase
    Dim variabile As DAO.Recordset   
    Set DBCorrente = CurrentDb
    Set variabile = DBCorrente.OpenRecordset("Query1", dbOpenDynaset)
    Do Until variabile.EOF
            DoCmd.OpenReport "ReportGiornaliero", , , "[IDCliente] = " & variabile![IDCliente]
        DoCmd.OutputTo acOutputReport, "ReportGiornaliero", acFormatPDF, "C:\Users\Luca Masenelli\Desktop\SYNC GOOGLE DRIVE\CTF SERVICES\test stampa\" & Format(Reports![ReportGiornaliero]![IDCliente]) & ".pdf", True
        DoCmd.Close "ReportGiornaliero" 
        variabile.MoveNext
    Loop
    variabile.Close
    DBCorrente.Close 
    End Sub
    
    Quando visualizzo la maschera e clicco sul pulsante mi esce "Errore di compilazione: Tipo definito dall'utente non definito"
    Ho controllato sul web e ho trovato che in VBA -> Strumenti -> Riferimenti devo spuntare la casella Microsoft DAO 3.6 Object Library ma mi esce un'altro "Errore caricamento DLL" cosi ho continuato a cercare, io utilizzo Access 2016 e in un'altra pagina ho trovato che devo spuntare la casella Microsoft Office 16.0 Access database engine Object Library, ma questa è già spuntata.
    Ho continuato a cercare e ho trovato questo link https://support.microsoft.com/it-it/help/833220/error-in-loading-dll-error-message-when-you-run-a-microsoft-access-wiz provato ma non funziona. Nel percorso non ho la cartella DAO e non funziona utilizzando esegui.

    Così ho disinstallato tutto e reinstallato tutto, ma non funziona lo stesso.

    Riuscite ad aiutarmi?
  • Re: Esporta report pdf cliente e nome personalizzato

    Se stai sviluppando un progetto ACCDB i riferimenti a DAO 3.6 non devi usarli, serve ACEDAO ...
    Microsoft Office 16.0 Access database engine Object Library

    Dao 3.6 serve se sviluppi in modalità A2003 quindi MDB.
    Per il resto mi pare ci sia molta confusione... e quel codice anche se apparentemente corretto... è carente dei controlli minimi che si devono fare, come già suggerito, oltre alla gestione errori.
  • Re: Esporta report pdf cliente e nome personalizzato

    Scusami Alex, ma come già indicato nella precedente
    Microsoft Office 16.0 Access database engine Object Library, ma questa è già spuntata.
    e non funzione.
    Inoltre ho riletto le vostre varie risposte e non riesco a capire cosa intendi per i "controlli minimi che si devono fare", mentre per la gestione degli errori non abbiamo proprio parlato, mi puoi dare qualche indicazione in più?

    Grazie mille
  • Re: Esporta report pdf cliente e nome personalizzato

    Programmare richiede sapere un minimo di basi su come si fa... diventa complicato fare lezioni in un forum.

    La gestione errori dovrebbe essere la prima cosa da imparare quando si scrive codice, la seconda è quella dinfare debug.
    Saper gestire gli errori è un grossa parte di saper programmare Bene, perché gli errori spesso non sono solo quelli non voluti ma anche e soprattutto quelli conosciuti e che aiutano alla gestione.

    GESTIONE ERRORI
    https://answers.microsoft.com/it-it/msoffice/forum/msoffice_excel-mso_other-mso_2013_release/excel-le-basi-per-gestire-le-eccezioni-gli-errori/fe6e94b9-4656-43fb-911a-192825211ab4

    DEBUG
    http://forum.masterdrive.it/access-79/access-debug-44533/

    VERIFICA RECORDSET
    http://forum.masterdrive.it/microsoft-office-access-vba-23/controllo-recordset-22958/

    Detto questo non risolverai il tuo problema che ritengo banale a sapere come stanno le cose...
    Se vorrai/potrai metti a disposizione un piccolo file da testare... altrimenti è complicato anche solo aiutarti non sapendo cosa escludere...
  • Re: Esporta report pdf cliente e nome personalizzato

    Ciao Alex,
    come da te suggerito vorrei allegare il mio file .accdb ma non riesco ad allegarlo, come faccio a metterlo a disposizione?
  • Re: Esporta report pdf cliente e nome personalizzato

    Usa un sito gratuito di File-sharing o OneDrive... quello che riesci.
  • Re: Esporta report pdf cliente e nome personalizzato

    Spero che funzioni: https://drive.google.com/file/d/1bCft1-Sb3dptk2yzdPC-6V2CTm1bdAqd/view?usp=sharing
  • Re: Esporta report pdf cliente e nome personalizzato

    Controlla il tuo codice, in quanto nel post precedente vi è un evidente errore, di sintassi, nella riga:
    
    Dim DBCorrente As DAO.Datatbase
    
    vi è una "t" nella parola chiave "Database".
  • Re: Esporta report pdf cliente e nome personalizzato

    Stesso ERRORE nel DB allegato...!

    Devi abituarti ad inserire il FLAG nelle OPZIONI del VBEditror che obbliga alla dichiarazione delle Variabili e di conseguenza fare sempre DEBUG con il COMPILE..!

    Dal Menù---[Strumenti]--->[Opzioni]--->2°CheckBox [Dichiarazione di Variabili obbligatoria]=SPUNTATO

    Questo inserirà nei NUOVI Moduli [Option Explicit], su quelli esistenti lo devi inserire a mano...!
    Poi sempre dal Menù VBEditor ---> [DEBUG]--->[Compila NomeProgetto]
  • Re: Esporta report pdf cliente e nome personalizzato

    Ciao Alex,
    grazie mille intanto per tutto l'aiuto che mi stai dando, ma forse sono veramente carente in tutto.
    Ho corretto

    willy55 ha scritto:


    Controlla il tuo codice, in quanto nel post precedente vi è un evidente errore, di sintassi, nella riga:
    
    Dim DBCorrente As DAO.Datatbase
    
    vi è una "t" nella parola chiave "Database".
    Qui non capisco cosa intendi per

    @Alex ha scritto:


    Questo inserirà nei NUOVI Moduli [Option Explicit], su quelli esistenti lo devi inserire a mano...!
    Poi ho un nuovo errore che mi dice Errore Runtime 3061 preavviso 1.
    Senza stare a tediarti ogni problema che mi viene fuori riesci ad indicarmi da dove partire per formarmi un minimo e fare domande più mirate senza farti perdere tempo inutilmente?
    Grazie
  • Re: Esporta report pdf cliente e nome personalizzato

    Quell'errore esce in quanto nella Query1 hai un Parametro che chiami [Data Riferimento]che NON FORNISCI...!
    Se per prova lo elimini STAMPA correttamente, se invece ti serve devi farglielo RILEVARE da una textBox in maschera...!

    Per farti le basi non hai altro che acquistare qualche libro di cui si è già parlato e c'è da qualche parte un 3D dedicato che puoi cercare... poi devi LEGGERE...LEGGERE e LEGGERE la guida in linea.
  • Re: Esporta report pdf cliente e nome personalizzato

    Grazie mille di tutto.
    Nei prossimi giorni provo e vi faccio sapere. Grazie ancora
  • Re: Esporta report pdf cliente e nome personalizzato

    Buona sera Alex, ho avuto il tempo di testare il tuo suggerimento solo ora.
    Con il database che ti ho inviato ho fatto il test eliminando il criterio come da te indicato e adesso
    Private Sub cmdexport_Click()
    
    Dim DBCorrente As DAO.Database
    Dim variabile As DAO.Recordset
    Set DBCorrente = CurrentDb
    Set variabile = DBCorrente.OpenRecordset("Query1", dbOpenDynaset)
    Do Until variabile.EOF
            DoCmd.OpenReport "Report1", , , "[IDCliente] = " & variabile![IDCliente]
        DoCmd.OutputTo acOutputReport, "Report", acFormatPDF, "C:\Users\Luca Masenelli\Desktop\test stampa\" & Format(Reports![Report]![IDCliente]) & ".pdf", True
        DoCmd.Close "Report"
        variabile.MoveNext
    Loop
    variabile.Close
    DBCorrente.Close
    End Sub
    Mi viene fuori un errore in allegato oltre a chiedermi il nome del file che non dovrebbe.

    Prima di questo però ho fatto questo test

    Avendo la necessità di rilevare la data ho creato una Maschera con una TextBox, il tasto ok e il tasto annulla.
    In un precedente test avevo creato una macro che al clik di un pulsante mi apriva la maschera dove inserivo la [Data Riferimento] e cliccando su ok mi generava il report richiesto.
    Ora dovendo rilevare tale data ho pensato di inserire il comando
    DoCmd.RunMacro "Macro1"
    Così ho pensato di fare il test precedente per capire che dati mi generava e provare con il
    Set
    a impostare il valore facendo aprire e chiudere la maschera.

    Spero di essermi spiegato, puoi aiutarmi?
    Allegati:
    23896_19893d846a9e4879c0b617bf0e75235a.png
    23896_19893d846a9e4879c0b617bf0e75235a.png
  • Re: Esporta report pdf cliente e nome personalizzato

    E' chiaro, anche dalla immagine postata, che l'errore è dovuto al nome del report (tieni presente che, fra le varie istruzioni, hai impiegato l'oggetto denominato "Report" e "Report1" e solo tu sai quale sia quello corretto).
Devi accedere o registrarti per scrivere nel forum
44 risposte