Report che genera "#Errore" e "#Tipo!"

di il
9 risposte

Report che genera "#Errore" e "#Tipo!"

Salve, e scusate se torno da queste parti in cerca di aiuto.
Parliamo di Access 2013, sotto Win7/Win10.
Ho un report che, fra varie informazioni, stampa un prezzo. Tutto bene.
Dal momento che ho dovuto inserire in database un prezzo ribassato, avrei bisogno che il report continui a stampare il valore del prezzo ma, in presenza di articoli col prezzo ribassato, mi stampi quest'ultimo al posto del prezzo originario.

Da osservare che nel database ho definito il prezzo ribassato esattamente come quello già presente (tipo dati = valuta), e che nel report, nell'origine di controllo che prima conteneva "Prezzo", ho messo "=IIf([Prezzoribassato] Is Null;[Prezzo];[Prezzoribassato])".
Siccome il mio skill in Access è molto vicino allo zero, sono andato per tentativi sostituendo a "Is Null" ">0" e altre cose simili, tutti miseramente naufragati.
Nel caso più fortunato mi ha stampato il valore del prezzo scontato (ove presente) e assolutamente nulla dove invece avrebbe dovuto stampare il prezzo originario (presente su ogni articolo).
In tutti gli altri casi stampa "#Errore" oppure "#Tipo!".
Mi par di capire che sia questione di formattare adeguatamente il valore che va in stampa. Ho provato sia precedendolo con "val" piuttosto che con "str", ma niente da fare.
Dopo molte ore di inutili tentativi, ho deciso di chiedere un aiuto qui, sperando che qualcuno si prenda 5 minuti.
Grazie fin d'ora.

9 Risposte

  • Re: Report che genera "#Errore" e "#Tipo!"

    Vedi impiego della funzione IsNull:
    https://support.office.com/it-it/article/Funzione-IsNull-f963233b-1c1e-4b0c-8bc3-3e8c0ea67c61
    https://www.techonthenet.com/access/functions/advanced/isnull.php
    http://dba.stackexchange.com/questions/66498/if-is-null-then-single-else-keep-the-value-of-the-field
  • Re: Report che genera "#Errore" e "#Tipo!"

    Prova così:
    =IIf(IsNull([Prezzoribassato]) = True;[Prezzo];[Prezzoribassato])
  • Re: Report che genera "#Errore" e "#Tipo!"

    Grazie a entrambi del vostro intervento.
    Mentre, seguendo il consiglio di Willy55, mi stavo riguardando l'impiego della funzione IsNull (da notare che io utilizzavo la "Is Null" con lo spazio), ho visto il suggerimento di Osvaldo e lo ho voluto mettere in pratica.
    Il risultato è uno dei tanti che avevo raggiunto io nelle mie prove: in caso di prezzo ribassato, il report lo stampa correttamente. Quando il prezzo ribassato non esiste, al posto del prezzo pieno mi esce "#Errore".
    Non so più cosa pensare... ma sono sempre più convinto che si tratti di un errore nel tipo di dati.

    Per scrupolo aggiungo che, non disponendo io qui della stampante etichette Dymo, ho "dirottato" la stampa su un PDFcreator, ma non credo proprio che stia qui il problema.
  • Re: Report che genera "#Errore" e "#Tipo!"

    Io proverei a creare prima una query (bisognerebbe vedere un po' di coerenze campi) aggiungendo il campo con l'espressione (giusta). Poi farei poggiare il report sulla query.
    Potresti mostrare tutti i campi tabella/e che dovrebbero figurare nel report finale?
  • Re: Report che genera "#Errore" e "#Tipo!"

    Dunque, mi sono accorto di una cosa: dopo che nel report, nell'origine di controllo al posto di Prezzo ho messo "=IIf(IsNull([Prezzoribassato]) = True;[Prezzo];[Prezzoribassato])" o sintassi analoghe, nella casella di testo del report è comparo un triangolino verde che, nella fattispecie, significa "controllo con riferimento al controllo stesso", in altre parole "riferimento circolare". Ma anche fosse, che male c'è a fare un test sulla presenza di Pippo e se presente stamparlo, altrimenti stampare Pluto?

    Non mi sono scoraggiato per così poco. Siccome se c'è un prezzo scontato, c'è anche una data nella quale è stato effettuato il calo del prezzo, ho modificato il test, scrivendo =IIf(IsNull([DataRibassoPrezzo]) = True;[Prezzo];[Prezzoribassato]). Mi dà comunque "riferimento circolare"!!
  • Re: Report che genera "#Errore" e "#Tipo!"

    aldobz ha scritto:


    nella casella di testo del report è comparo un triangolino verde che, nella fattispecie, significa "controllo con riferimento al controllo stesso", in altre parole "riferimento circolare".
    Vuol dire che a quella casella di testo hai la proprietà "Nome controllo" uno di quei nomi campo che compaiono nell'espressione IIf. Prova a dargli un nome diverso e vedrai che scompare il problema del riferimento circolare.
  • Re: Report che genera "#Errore" e "#Tipo!"

    Osvaldo, è esattamente come dici!! Il "nome elemento" era "Prezzo", e la cosa non gli piaceva. Seguendo il tuo consiglio, lo ho cambiato. Improvvisamente non c'è più il riferimento circolare, ma la cosa più importante è che adesso FUNZIONA !!!!!
    Grazie, grazie, grazie !!!!!
  • Re: Report che genera "#Errore" e "#Tipo!"

    Ciao Aldobz, io sono un principiantissimo ed ho lo stesso problema del riferimento circolare che hai risolto, ma non riesco a capire come.
    potresti gentilmente spiegarmi cos'hai fatto per correggere l'errore ?

    il mio script è il seguente:
    =IIf(IsNull([Scuola Doppio Comando pacchetto])=Vero;([Scuola Doppio Comando]);([Scuola Doppio Comando])+([Scuola Doppio Comando pacchetto]))
    Grazie
  • Re: Report che genera "#Errore" e "#Tipo!"

    pigei ha scritto:


    Ciao Aldobz, io sono un principiantissimo ed ho lo stesso problema del riferimento circolare che hai risolto, ma non riesco a capire come.
    potresti gentilmente spiegarmi cos'hai fatto per correggere l'errore ?

    il mio script è il seguente:
    =IIf(IsNull([Scuola Doppio Comando pacchetto])=Vero;([Scuola Doppio Comando]);([Scuola Doppio Comando])+([Scuola Doppio Comando pacchetto]))
    Grazie
    Secondo te sara ancora in attesa di risposta dopo 1 anni...?
    Come da regolamento eviterei di rinnovare 3D così datati.
    Magari apri un nuovo 3d inserendo un link a questo datato.
Devi accedere o registrarti per scrivere nel forum
9 risposte