ATTIVAZIONE DI UNA MSGBOX AL VERIFICARSI DI UNA CONDIZIONE

Anonimo
2015-02-20T08:46:32+00:00

Buongiorno

mi chiamo Luca e da qualche tempo mi diverto a realizzare un Dbase gestionale che fino ad oggi, e per le finalità per cui è nato, mi funziona correttamente. Voglio precisare che sono alle prime armi con access  e il codice non lo mastico per niente (grazie ad access 2007 e alle creazioni guidate sono riuscito a realizzare un dbase funzionale).

Adesso volevo implementare il mio Dbase con una funzione che mi attivi una Box di messaggio al verificarsi di una o più condizioni. Ho girato un pò in internet ma al momento non sono riuscito a trovare la soluzione, per cui ho deciso di scrivere su questa Community che nel passato, grazie a Mimmo, è riuscita a dare la soluzione ad un problema.

bene adesso vi illustro cosa ho pensato di fare.

Il mio Dbase contiene, tra l'altro, alcune informazioni tra cui ID_Progetto, l'importo del progetto e l'importo delle spese sostenute (vedi Tabella 1); poi ho una seconda tabella dove vengono riportati gli step per richiedere acconto 1, acconto 2, etc. (vedi tabella 2) ed infine ho una query di riepilogo dove, tra l'altro calcolo la % di avanzamento della spesa rispetto all'importo del progetto (vedi tabella query).

Io vorrei realizzare un controllo nella maschera "Tabella query" che in apertura mi faccia comparire un messaggio di avviso (MsgBox) al verificarsi delle seguenti condizioni:

Se la “Percentuale avanzamento” > “30,00%<”60,00” aprire MsgBox con messaggio “PUOI CHIEDERE ACCONTO N. 1”

Se la “Percentuale avanzamento” > “60,00%”<95,00% aprire MsgBox con messaggio “PUOI CHIEDERE ACCONTO N. 2”

Se la “Percentuale avanzamento” > “95,00%”<100,00% aprire MsgBox con messaggio “PUOI CHIEDERE ACCONTO N. 3”

In rete non ho trovato una spiegazione chiara di come applicare o scrivere il codice per raggiungere questo risultato.

Per cui mi rivolgo a quale buona anima che mi aiuti.

Grazie mille

Luca

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2015-02-20T16:36:14+00:00

Senza urlare, però. Grazie. (TUTTOMAIUSCOLO = Urlare. Che poi si fa anche fatica a leggere.)

Tutto chiaro, ora. Io avevo capito che le percentuali fossero fisse in base all'avanzamento.

Prova così:

Option Compare Database

Option Explicit

Private Sub Form_Current()

Dim intAcc  As Integer

Dim sngAvan As Single

  With Me

    .Visible = True

    sngAvan = .Avanzamento.Value

    If sngAvan > .Acconto3.Value And Not (.ynAcconto3.Value) Then

      intAcc = 3

    ElseIf sngAvan > .Acconto2.Value And Not (.ynAcconto2.Value) Then

      intAcc = 2

    ElseIf sngAvan > .Acconto1.Value And Not (.ynAcconto1.Value) Then

      intAcc = 1

    Else

      intAcc = 0

    End If

    If intAcc Then

      If MsgBox("Vuoi richiedere il " & CStr(intAcc) & "° acconto?" _

              , vbYesNo Or vbQuestion _

              , "Acconto") = vbYes Then

        Select Case intAcc

        Case 1: .ynAcconto1.Value = True

        Case 2: .ynAcconto2.Value = True

        Case 3: .ynAcconto3.Value = True

        Case Else

          ' DO NOTHING

        End Select

        DoCmd.OpenForm FormName:="frmAcconti" _

                     , View:=acNormal _

                     , WhereCondition:="[ID_Progetto]=" & .ID_Progetto

      End If

    End If

  End With

End Sub

La risposta è stata utile?

0 commenti Nessun commento

57 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-02-20T16:11:02+00:00

    OK FACCIO TUTTO DA CAPO

    HO AZZERATO LE SPUNTE.

    GLI IMPORTI E LE PERCENTUALI SONO LE STESSE DEL DBASE CHE HAI TU

    APRO LA MASCHERA E MI COMPARE (RECORD 1) SE VOGLIO INSERIRE IL 2° ACCONTO (GIUSTO PERCHE L'AVANZAMENTO E' IL 75% E POSSO RICHIEDERE  IL 2 ACCONTO). RISPONDO DI SI E VIENE SPUNTATO IL 2° ACCONTO. PER LA SPUNTA SUL PRIMO VA BENE IN MODO MANUALE ( E' GIUSTA LA TUA AFFERMAZIONE)

    ORA PASSO AL RECORD 2 E MI CHIEDE SE VOGLIO INSERIRE IL 1° ACCONTO (LA PROCEDURA E’ CORRETA MA NON E’ LA STESSA CHE MI HA PROPOSTO IL RECORD 1 PERCHE’ L’AVANZAMENTO E’ IL 51% E IL SECONDO ACCONTO  LO POSSO CHIEDERE A 50%). COME AL RECORD 1 MI DOVREBBE CHIEDERE DI INSERIRE IL 2° ACCONTO. COMUNQUE RISPONDO DI SI E VEDIAMO COSA SUCCEDE QUANDO RIAPRO AL SECONDO TURNO.

    VADO AL RECORD 3 – QUI PROPRIO NON FUNZIONA.

    NON MI CHIEDE NULLA EPPURE DOVREBBE CHIEDERMI SE VOGLIO IL PRIMO ACCONTO PERCHE’ L’AVANZAMENTO E’ IL 20% E L’ACCONTO POSSO CHIEDERLO A 15%

    AL SECONDO PASSAGGIO  TUTTO BENE PER IL PRIMO RECORD NON VA BENE PER IL SECONDO. MI DOVREBBE CHIEDERE SEGNALARE CHE POSSO CHIEERE IL SECONDO ACCONTO E NON LO FA.

    IL TERZO RECORD INVECE E’ UGUALE  COME AL PRIMO TURNO

    MAURIZIO PROVA ANCHE TU AD AZZERARE LE SPUNTE E A FAR PARTIRE IL DBASE

    GRAZIE

    LUCA

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-02-20T15:44:48+00:00

    Visto. Non capisco cosa ci sia che non vada. Puoi fare un caso concreto? Indica i valori e racconta cosa succede e cosa invece dovrebbe succedere secondo te.

    Ho visto che hai nascosto i campi Vero/falso. Rendili visibili, per ora, così puoi verificare.

    Poi attenzione che la prima volta che scorri i record se, per esempio, in base al valore di Avanzamento è previsto il secondo acconto, ti viene richiesto e messa la spunta. Però al campo Vero/Falso di Acconto1 la spunta la dovrai mettere a mano perché si suppone che quell'acconto tu l'abbia già richiesto.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-02-20T15:11:54+00:00

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-02-20T15:07:27+00:00

    Se hai un account OneDrive puoi caricare lì il file, ottenerne l'URL che poi incollerai qui nella risposta a questo post.

    La risposta è stata utile?

    0 commenti Nessun commento