Stampare n copie da casella di testo

di il
11 risposte

Stampare n copie da casella di testo

Ciao a tutti del forum vorrei un consiglio su un report
Vi spiego :
In una maschera riempiendo i dati vado a cliccare su un pulsante che mi stampa un report
Adesso in questo report ho una casella di testo che mi fa la somma ,ecco io vorrei che mi stampasse tante copie quanto è il valore contenuto nella casella di testo

11 Risposte

  • Re: Stampare n copie da casella di testo

    Leggi:
    http://access.mvps.org/access/reports/rpt0001.ht
    http://forum.masterdrive.it/microsoft-office-access-vba-23/stampa-pi-copie-report-46290/
  • Re: Stampare n copie da casella di testo

    Ciao inanzitutto grazie per avermi risposto ho letto quello che mi hai postato
    ho usato il codice di alex
    Public Function StampaRep(NomeReport As String, _
                              Optional ViewMode As AcView = acViewPreview, _
                              Optional WhereCond As String = vbNullString, _
                              Optional WinMode As AcWindowMode = acDialog, _
                              Optional Ncopie As Integer = 1)
        If NomeReport = "" Then Exit Function
        If Ncopie < 1 Then Exit Function
        DoCmd.OpenReport NomeReport, ViewMode , , WhereCond, WinMode
        DoCmd.SelectObject acReport, NomeReport, False
        'Stampa il Numero di Copie del report passato
        DoCmd.PrintOut , , , , Ncopie
        DoEvents
        DoCmd.Close acReport, NomeReport
    End Function
    poi lo richiamo tramite pulsante
    Call StampaRep("nomereport", acViewPreview, "nomecampo=" & Me!IDmaschera, acHidden, 5)
    ma non riesco ad ottenere ciò che voglio sicuramente sbaglio io , nel nomecampo ho messo una casella di testo che fa la somma volta per volta
    ma lui stampa sempre 5 copie
  • Re: Stampare n copie da casella di testo

    peter17 ha scritto:


    ...
    poi lo richiamo tramite pulsante
    Call StampaRep("nomereport", acViewPreview, "nomecampo=" & Me!IDmaschera, acHidden, 5)
    ....
    ma lui stampa sempre 5 copie
    Perché sei stato tu a dirgli di stampare 5 volte, che è il parametro NCopie, l'ultimo della funzione. Al suo posto devi indicare il riferimento alla casella di testo che contiene il numero di copie da stampare, che però si trova nel report che devi ancora aprire... mmm... un cane che si morde la coda?
    A questo punto suggerisco di usare il sistema indicato nel secondo link suggerito da willy55
    DoCmd.SelectObject acReport, "nomereport", True
    DoCmd.PrintOut , , , , Reports![nomecasella].Value
  • Re: Stampare n copie da casella di testo

    Con il codice appena inserito mi da errore di run-time
    impossibile trovare l'oggetto "pincopallino" a cui viene fatto riferimento nell'argomento nome oggetto
  • Re: Stampare n copie da casella di testo

    peter17 ha scritto:


    con il codice appena inserito mi da errore di run-time
    Sicuramente me n'ero dimenticato un pezzo
    DoCmd.PrintOut , , , , Reports![NomeReport]![nomecasella].Value
    Spero che ora pincopallino sia contento.
  • Re: Stampare n copie da casella di testo

    Mi dava errore che il report risultava non aperto o inesistente ,ho risolto cosi:
    DoCmd.OpenReport "report", acPreview
    DoCmd.SelectObject acReport, "report", True
    DoCmd.PrintOut , , , , Reports![report]![nomecasella].Value
    grazie
    pincopallino è contentissimo

    potete modificare in RISOLTO
  • Re: Stampare n copie da casella di testo

    Mah... a cosa serviranno le Funzioni scritte bene... inutili... o forse... serve rifletterci.
  • Re: Stampare n copie da casella di testo

    @Alex ha scritto:


    Mah... a cosa serviranno le Funzioni scritte bene... inutili... o forse... serve rifletterci.
    Mea culpa @Alex. Siccome sono quello che ha suggerito il sistema "DoCmd.PrintOut" e precisando che non ho fatto prove su prove, come si può in questo caso specifico chiamare la funzione indicando il parametro NCopie che non è ancora disponibile perché quel valore è contenuto in una casella di testo del report? Se non aprendolo in anteprima ma allora... aperto lo è già via andare con DoCmd.PrintOut.
  • Re: Stampare n copie da casella di testo

    Chiediamoci perchè è su una casella di testo in un Report... e se questo sia corretto...

    Se quel report deve essere stampato X volte si recupera il Valore e lo si invia alla Funzione... che poi, per motivi di visualizzazione serva anche averlo nel Report è tutt'altra faccenda.
  • Re: Stampare n copie da casella di testo

    @Alex ha scritto:


    Chiediamoci perchè è su una casella di testo in un Report... e se questo sia corretto...
    ah beh, su questo concordo in pieno. Se il numero di copie deve/può essere preso un'altra fonte è ovvio che la tua funzione torna ad essere applicabile perfettamente.
  • Re: Stampare n copie da casella di testo

    Philcattivocarattere ha scritto:


    @Alex ha scritto:


    Chiediamoci perchè è su una casella di testo in un Report... e se questo sia corretto...
    ah beh, su questo concordo in pieno. Se il numero di copie deve/può essere preso un'altra fonte è ovvio che la tua funzione torna ad essere applicabile perfettamente.
    Il numero di Copie NON PUO' essere inseribile/gestibile da un REPORT, non è uno strumento di INTERFACCIA ma di STAMPA/VISUALIZZAZIONE.
    Il Numero di Copie deve essere gestibile da una Form(per la VALIDAZIONE del dato, ed i conseguenti eventi/conseguenze/messaggi/azioni da attuare in caso di Anomalia...), ed eventualmente VISUALIZZABILE nel REPORT.

    Se questi criteri di base sono chiari(perchè sono assoluti e non opinabili), quello che fa l'utente deve far riflettere PRIMA di applicare altri concetti... l'uso della Funzione poi è questione di avere o meno chiari i concetti OOP e sapere che scrivere Funzioni di questo tipo evitano di SPARPAGLIARE codice replicato in giro... ma è solo ottimizzazione di idee, quello fatto inzialmente invece è un GROSSO errore concettuale.
Devi accedere o registrarti per scrivere nel forum
11 risposte