Creazione alert per valore negativo

di il
12 risposte

Creazione alert per valore negativo

Ho una query "bilancio_movimenti" che somma in base alle scadenze tutti i movimenti dei vari prodotti in entrata ed uscita, restituendomi in questo modo un elenco di ogni articolo con le varie scadenze e con quanti pezzi ci sono ancora di quell'articolo e con quelle scadenze.

La query è formata da: ID_Articoli - bilancio ([sommadientra]+[sommadiesce]) - Scadenza

Vorrei che nel momento in cui uno di questi valori diventa negativo mi genera all'apertura del programma o di una maschera prestabilita un alert che mi avvisa di controllare i movimenti e di aprire un report degli errori (già creato).

Questo per segnalarmi che ad esempio se per l'articolo A con scadenze il 10-10-2020 ci sono -5 pezzi c'è un errore e da controllare gli ultimi movimenti!

Sono riuscito a fare una cosa simile con le scadenze ma non riesco con questo, riuscite a darmi qualche consiglio su come affrontare il problema?

Grazie

12 Risposte

  • Re: Creazione alert per valore negativo

    Usa la funzione DCOUNT in una funzione che esegui con MACRO AUTOEXEC che restituisce il numero di Records di quella Query.
    La funzione DCOUNT supporta il criterio è metterai Bilancio <0... a quel punto se il risultato della chiamata >0 generi un messaggio...
  • Re: Creazione alert per valore negativo

    @Alex ha scritto:


    Usa la funzione DCOUNT in una funzione che esegui con MACRO AUTOEXEC che restituisce il numero di Records di quella Query.
    La funzione DCOUNT supporta il criterio è metterai Bilancio <0... a quel punto se il risultato della chiamata >0 generi un messaggio...
    Si ho già provato a creare un codice in vba nell'evento di caricamento della maschera di avvio come per le scadenze con il dcount che si riferisce al bilancio, nella fattispecie in quelli in negativo e di richiamarmi con un alert, ma stranamente nn si apre nessun alert nonostante ci siano valori negativi e nn mi da nessun errore o debug

    Non appena torno ala postazione dove sto creando il progetto ti giro il codice che ho creato x vedere cosa sbaglio!
  • Re: Creazione alert per valore negativo

    Allora il codice che ho creato è il seguente:
    richiamato nel caricamento all'avvio della prima maschera
    Dim x As Integer
    x = DCount("[bilancio]", "[bilancio_movimenti]", "[bilancio]='<0'")
    If x < 0 Then
    If MsgBox("Attenzione ci sono " & x & "  prodotti in negativo. Vuoi visualizzarli?", vbYesNo, "AVVISO") = vbYes Then
    DoCmd.OpenReport "controllo_movimenti_qry", acViewPreview, acWindowmodenormal
    End If
    End If
    Praticamente il mio intento è quello di chiedere al database nella query "bilancio_movimenti" nella colonna "bilancio" se c'è un "bilancio" minore di 0 (quindi negativo)
    se ci sono "tot" (x) valori che sono minori di 0 allora mi avvisi e mi dai la possibilità di aprire il report riguardante i movimenti negativi!

    Non so se il mio ragionamento è giusto e se il codice è giusto o sono fuori strada!

    Nonostante ci sia più di un valore negativo non mi restituisce nessun messaggio, ne tanto meno errori di codice
  • Re: Creazione alert per valore negativo

    JovaDark ha scritto:


    ...
    ..
    x = DCount(... "[bilancio]='<0'")
    ...
    Ti sembra che quella sia una WHERE condition (senza la parola chiave WHERE) valida? stai chiedendo se il campo [bilancio] contiente i caratteri [<0] (letteralmente parentesi angolare aperta seguita da uno zero)
  • Re: Creazione alert per valore negativo

    Philcattivocarattere ha scritto:


    JovaDark ha scritto:


    ...
    ..
    x = DCount(... "[bilancio]='<0'")
    ...
    Ti sembra che quella sia una WHERE condition (senza la parola chiave WHERE) valida? stai chiedendo se il campo [bilancio] contiente i caratteri [<0] (letteralmente parentesi angolare aperta seguita da uno zero)
    No, non mi sembra esserlo!
    Ipotizzo che se era valida non avrei chiesto aiuto!
    Mi è chiaro l'errore ma probabilmente non sono in grado di trovare la soluzione adatta!
  • Re: Creazione alert per valore negativo

    JovaDark ha scritto:


    ... Ipotizzo che se era valida non avrei chiesto aiuto! ....
    Evita, se possibile, questo approccio in quanto potresti ricevere risposte altrettanto sterili. Sei in un forum tecnico ....
    x = DCount(... "[bilancio]='<0'")
    Come puoi pensare che un campo numerico (perchè il campo bilancio lascia pensare e fa sperare che sia UN CAMPO NUMERICO ) possa essere confrontato come se fosse una stringa ?
    x = DCount(... "[bilancio] < 0")
    Una sintassi del genere dovrebbe avvicinarsi a quanto richiedi : se questa fosse la soluzione al tuo problema non mi resta che aggiungere che dovresti (devi) aprire qualche libro .....
  • Re: Creazione alert per valore negativo

    max.riservo ha scritto:


    x = DCount(... "[bilancio]='<0'")
    Come puoi pensare che un campo numerico (perchè il campo bilancio lascia pensare e fa sperare che sia UN CAMPO NUMERICO ) possa essere confrontato come se fosse una stringa ?
    Mi sono lasciato ingannare dal codice che ho utilizzato per il controllo delle date, e questo mi ha indotto in errore.

    max.riservo ha scritto:


    x = DCount(... "[bilancio] < 0")
    Una sintassi del genere dovrebbe avvicinarsi a quanto richiedi :
    Purtroppo niente, non funziona! Non mi si apre l'allert al caricamento della maschera!

    max.riservo ha scritto:


    se questa fosse la soluzione al tuo problema non mi resta che aggiungere che dovresti (devi) aprire qualche libro .....
    Hai ragione, mi sono avvicinato ad access per passione e curiosità, seguirò il tuo consiglio!
  • Re: Creazione alert per valore negativo

    Attenzione. DCount conta i record. Non avrà MAI un valore <0. Io penso che a te interesserebbe valutare DCount(...ecc...) = 0 (ossia x=0 nel codice VBA postato prima).
  • Re: Creazione alert per valore negativo

    OsvaldoLaviosa ha scritto:


    Attenzione. DCount conta i record. Non avrà MAI un valore <0. Io penso che a te interesserebbe valutare DCount(...ecc...) = 0 (ossia x=0 nel codice VBA postato prima).
    Come dice Osvaldo ANCHE questo aspetto bisogna considerare .....

    Impara a fare il debug .... e verifica quato vale la variabile x

    (Forse) l'ho già detto .... DEVI leggere dei libri, perchè sembra che il tuo livello di conoscenza di access sia molto vicino a quanto indichi nel titolo del post (< 0)
  • Re: Creazione alert per valore negativo

    OsvaldoLaviosa ha scritto:


    Attenzione. DCount conta i record. Non avrà MAI un valore <0. Io penso che a te interesserebbe valutare DCount(...ecc...) = 0 (ossia x=0 nel codice VBA postato prima).
    Si so che DCount conta i record, infatti io ho provato a fargli contare i record con valore negativo con quel codice postato prima, ma data la mia scarsa conoscenza non ci sto riuscendo!
  • Re: Creazione alert per valore negativo

    Ma non hai nemmeno capito quello che ti è stato suggerito..?
    Prova a rileggere... controlli il risultato del country <0 cosa che NON PUÒ ESSERE... e questo a prescindere dal criterio del Bilancio negativo.

    Cerca di fare uno sforzo...
  • Re: Creazione alert per valore negativo

    @Alex ha scritto:


    Ma non hai nemmeno capito quello che ti è stato suggerito..?
    Prova a rileggere... controlli il risultato del country <0 cosa che NON PUÒ ESSERE... e questo a prescindere dal criterio del Bilancio negativo.

    Cerca di fare uno sforzo...
    Ci sono riuscito! Ho riletto attentamente, prima il messaggio di Osvaldo, che era quello che mi indicava la strada corretta, e poi questo tuo ultimo che mi hanno reso possibile ciò che chiedevo.
Devi accedere o registrarti per scrivere nel forum
12 risposte