Creare un report a partire da VBA

di il
8 risposte

Creare un report a partire da VBA

Ciao a tutti, spiego meglio: tramite codice VBA vorrei scandire un database e, quando incontro un record che soddisfa un certo criterio, modificarne uno dei campi (per esempio ridurne il prezzo del 20%).
Nonostante la mia inesperienza, fino qua credo di farcela da solo.
Vorrei però, una volta che la scansione (con eventuali modifiche) è giunta al termine, mi si presentasse l'anteprima di un report contenente, appunto, le modifiche fatte.

Ho trovato altrove dei suggerimenti che però implicano la presenza di una maschera, ma io non ne ho alcun bisogno, almeno credo....
Mi date una manina a "legare" una variabile del codice con un campo del report? Poi dovrei riuscire ad arrangiarmi.
Grazie fin d'ora.

8 Risposte

  • Re: Creare un report a partire da VBA

    aldobz ha scritto:


    ...
    Mi date una manina a "legare" una variabile del codice con un campo del report? Poi dovrei riuscire ad arrangiarmi.
    Dove si trova quella variabile? modulo di maschera, modulo di report, modulo generale? Come è dichiarata? Come è fatto quel report? Poche informazioni per una riposta più mirata.
  • Re: Creare un report a partire da VBA

    Ehhhh.... tu hai ragione, Phil. Il fatto è che, se non ho fornito maggiori informazioni, è perché non le ho. E' tutto da fare, e cercavo di farlo nella maniera più semplice possibile.
    Partendo dal presupposto che nella tabella io abbia 3 variabili, var1 (articolo), var2 (data inserimento) e var3 (prezzo), volevo fare in modo che se sono passati 3 mesi dall'inserimento dell'articolo, il suo prezzo venisse ridotto del 10%.
    All'interno del codice VBA non credo che incontrerò problemi. Ho già provato a visualizzare il contenuto di var1 con un MsgBox, e lo vedo.
    Vorrei quindi "passare" le variabili degli articoli interessati al ribasso prezzo ad un report che me li elenchi.
    Tutto qua, ma se chiedo aiuto qui, è perché non so come "passare" i dati da VBA al report.
  • Re: Creare un report a partire da VBA

    aldobz ha scritto:


    ...Partendo dal presupposto che nella tabella io abbia 3 variabili,
    In una tabella ci sono campi, record (e tante altre cose) ma non variabili. Visto che tiri in ballo VBA sai bene il significato che assume quella parola.
    volevo fare in modo che se sono passati 3 mesi dall'inserimento dell'articolo, il suo prezzo venisse ridotto del 10%.

    aldobz ha scritto:


    All'interno del codice VBA non credo che incontrerò problemi. Ho già provato a visualizzare il contenuto di var1 con un MsgBox, e lo vedo.
    Quindi c'è già del codice: pubblicalo. Non so a cosa serve visualizzare in una MsgBox però... vabbè iniziamo con qualcosa.

    aldobz ha scritto:


    volevo fare in modo che se sono passati 3 mesi dall'inserimento dell'articolo, il suo prezzo venisse ridotto del 10%....
    Questa cosa come la fai, con una query di update?

    aldobz ha scritto:


    Vorrei quindi "passare" le variabili degli articoli interessati al ribasso prezzo ad un report che me li elenchi.
    Perché non semplicemente una query di selezione con il criterio di cui sopra e poi su quella creare il report?

    aldobz ha scritto:


    Tutto qua, ma se chiedo aiuto qui, è perché non so come "passare" i dati da VBA al report.
    Non capisco questa necessità. Forse la faccio troppo semplice con la query di selezione di cui sopra?
  • Re: Creare un report a partire da VBA

    Mi sa che hai ragione. Non avevo proprio pensato che una query potesse fare al caso mio. Ehhhh..... l'inesperienza, brutta bestia.
    Avevo utilizzato il MsgBox solo per "vedere" se ero capace di leggere il contenuto dei campi. Intendevo fare tutto in VBA perché di Access so poco o niente, mentre una minima esperienza di programmazione in VB ce l'ho.
    Però mi convinco sempre più che la strada della query sia quella giusta. Dovrò solo capire come "dirle" che, se il criterio data è soddisfatto, deve ridurmi il prezzo del 10% e, come non bastasse, arrotondarlo ai 5 euro superiori (ove necessario).
    Si può con una query?
  • Re: Creare un report a partire da VBA

    aldobz ha scritto:


    ...Intendevo fare tutto in VBA perché di Access so poco o niente, mentre una minima esperienza di programmazione in VB ce l'ho.
    Ok, però stai lavorando su un database quindi devi conoscere come funziona.

    aldobz ha scritto:


    Però mi convinco sempre più che la strada della query sia quella giusta. Dovrò solo capire come "dirle" che, se il criterio data è soddisfatto, deve ridurmi il prezzo del 10% e, come non bastasse, arrotondarlo ai 5 euro superiori (ove necessario).
    Si può con una query?
    Sì, con una query di update abbastanza semplice per la riduzione del 10%, da integrare eventualmente con una funzione per l'arrotondamento ai 5 euro superiori, cosa che forse ti è addirittura più facile del resto, se mastichi vba. A questo punto crea direttamente una funzione che fa sia la riduzione sia l'arrotondamento.
    Poi (in teoria prima) devi imparare come si fanno le query di aggiornamento, se non le conosci.
  • Re: Creare un report a partire da VBA

    Molto bene, ti ringrazio dei suggerimenti. Dovendo ricorrere a VBA per la riduzione del prezzo e per l'arrotondamento, avevo inteso fare il tutto scrivendo un po' di codice, ma se mi dici che mi facilito la vita con una query di aggiornamento, andrò a vedere come si fa e come la si usa.
    Intanto grazie.
  • Re: Creare un report a partire da VBA

    aldobz ha scritto:


    ... come non bastasse, arrotondarlo ai 5 euro superiori (ove necessario).
    Siccome la maggiorparte dell'acqua calda è già stata scoperta, sono andato a cercarla già pronta

    Qualcosa di più generale sempre in materia di arrotondamenti: ** e visto che qualche minima esperienza di programmazione vb ce l'hai aggiungo http://community.visual-basic.it/lucianob/archive/2005/02/07/5175.aspx
  • Re: Creare un report a partire da VBA

    Ciao Phil, sono tornato qui per postare la soluzione, e vedo che la hai già postata tu.
    Io, volendo ridurre del 50%, ho semplicemente scritto, in "Aggiorna a", "Round(([Prezzo]/2+2,49)/5)*5".
    Miracolo fatto.
    Ma la prima parte della soluzione sta nella scelta di avvalermi di una query di aggiornamento che tu, nonostante il tuo cattivo carattere , mi hai consigliato.
    Grazie ancora.
Devi accedere o registrarti per scrivere nel forum
8 risposte