Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1

    [VB6] Scadenziario che visualizza MSGBox

    Come suggeritomi da alka posto il quesito in un nuovo post.

    Sto implementando in un gestionale una sorta di scadenziario che mi faccia la differenza tra la data odierna e la data della scadenza, che si va a prendere dalla seconda colonna di un datagrid che contiene la lista delle date delle scadenze, il costo e la causale.

    Il codice che sto utilizzando è il seguente:
    codice:
        Dim dataOggi As Variant
        Dim dataScadenza As Variant
        Dim dataDifferenza As Long
        Dim messaggio As Integer
        Dim messaggio2 As Integer
        
        dataOggi = Date
        Text1.Text = dataOggi
        
        dataScadenza = DataGrid1.Columns(1)
        Text2.Text = dataScadenza
            
        dataDifferenza = DateDiff("d", dataOggi, dataScadenza)
        Text3.Text = dataDifferenza
        
        If dataDifferenza < 4 Then
            messaggio = MsgBox("Attento! Hai una scadenza a breve", vbOKOnly, "Attenzione")
        End If
        
        If dataDifferenza <= 0 Then
                messaggio2 = MsgBox("Ciao", vbOKOnly)
        End If
    Il problema è il seguente: vorrei che ci fosse un ciclo che leggesse il primo valore della colonna "Data" nel dataGrid, lo confrontasse con dataOggi, e se inferiore ai tre giorni, messaggio, altrimenti passa al sussessivo record, confronto, se minore dei tre giorni, messaggio, altrimenti successivo e così via per tutti.
    Come si scrive questo maleddetto ciclo??? Sto diventando scemo del tutto!!!:master::master:


    Poi quando una data è stata superata vorrei che non mi venisse più calcolata; anche qui richiedo il vostro aiuto!!!

    Spero di essere stato chiaro, altrimenti fatemelo sapere, che cercherò di spiegare meglio la situazione.

    In parole povere mi servirebbe una mano nel fare il ciclo e sistemare a dovere i due messaggi per farli apparire solo quando veramente servono.

    Intanto grazie infinite a tutti coloro che mi aiuteranno!!!

    Aspetto con ansia Vostre notizie!!!


  2. #2
    Ciao di nuovo a tutti!!!
    Sto continuando a sbattere la capoccia su questo scandenziario. Di seguito il codice che sto utilizzando.

    codice:
        Dim dataOggi As Variant
        Dim dataScadenza As Variant
        Dim dataDifferenza As Long
        Dim messaggio As Integer
        Dim messaggio2 As Integer
        
        dataOggi = Date
        Text1.Text = dataOggi
        
        dataScadenza = DataGrid1.Columns(1)
        Text2.Text = dataScadenza
            
        dataDifferenza = DateDiff("d", dataOggi, dataScadenza)
        Text3.Text = dataDifferenza
                
        If dataDifferenza <= 3 And dataDifferenza >= 0 Then
            messaggio = MsgBox("Attento! Hai una scadenza a breve", vbOKOnly, "Attenzione")
        Else
            'messaggio2 = MsgBox("Ciao", vbOKOnly)
        End If
    (Le tre text le sto utilizando per vedere se calcola in modo corretto e funzionano).

    Il problema è che non riesco a far apparire il messaggio di alert; penso che aver sbagliato qualcosa qui
    codice:
    If dataDifferenza <= 3 And dataDifferenza >= 0 Then
            messaggio = MsgBox("Attento! Hai una scadenza a breve", vbOKOnly, "Attenzione")
    .

    Spero di essere stato chiaro; quello che intendevo dire io nel codice è che se dataDifferenza è compresa nell'intervallo che va dai tre giorni ai zero giorni, allora mi fai apparire l'alert, altrimenti passa a leggere la data successiva.

    Non so più come fare....vi prego se potete aiutatemi.

    Grazie mille a tutti!!!

  3. #3
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Come datadifferenza cosa ti scrive?
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  4. #4
    Essendo la prima data 01/08/2005 mi scrive -21.

  5. #5
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Originariamente inviato da bobovieri
    Essendo la prima data 01/08/2005 mi scrive -21.
    beh..mi sembra che il risultato sia giusto (supponendo che l'abbia calcolato il 22/8). L'unica cosa da modificare il confronto.
    Se vuoi che ti avvisi solo per scadenze ancora da avvenire (magari compreso lo stesso giorno della scadenza) allora va bene il confronto che hai fatto tu:
    codice:
    If dataDifferenza <= 3 And dataDifferenza >= 0 Then
            messaggio = MsgBox("Attento! Hai una scadenza a breve", vbOKOnly, "Attenzione")
    altrimenti se vuoi un avviso anche per le scadenze già trascorse:
    codice:
    If dataDifferenza <= 3 Then
            messaggio = MsgBox("Attento! Hai una scadenza a breve", vbOKOnly, "Attenzione")
    Jupy

  6. #6
    Ciao Jupy!!! Ho visto ora la tua risposta.

    Come dicevo, così funziona ma non in tutto. Il mio problema è dire al codice di andare a leggere anche tutte le altre date e per ognuna confrontarla. Alla prima che trova, mi appare l'MSGBox.

    Quello che non riesco a fare io è il ciclo per dirgli tutto ciò (lettura, verifica, eventuale mess, lettura record successivo, ecc, ecc).

    Se mi potreste dare una mano in questo ve ne sarei veramente grato.

    Grazie ancora!!!


  7. #7
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    devi fare un ciclo per quante sono le righe (record).
    esempio:
    codice:
    For I=0 to numeroRighe-1
       DataGrid1.Row=I
       dataScadenza = DataGrid1.Columns(1)
       ...
       ....
    Next
    Anche se io ti consiglierei di fare una query e tirarti fuori direttamente le scandenze che ti interessano! Più veloce e pratico!
    Jupy

  8. #8
    Intanto grazie mille per la porzione di codice.

    Il fatto è che non so, però, quante righe ha il mio datagrid, in quanto si basa su una query che si aggiorna in base alle scadenze che vengono inserite mano a mano.

    Quindi non posso fare neanche, come mi suggerisci tu, la query e poi tirarmi fuori le scadenze che mi interessano; questo scadenziario va ad integrarsi in un programma che sta già in piedi e che dovrebbe, automaticamente all'apertura della pagina che riguarda le uscite, fare il check sulle date ed eventualmente visualizzare il messaggio.

  9. #9
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    come popoli la griglia? posta il codice
    Jupy

  10. #10
    La griglia la popolo con la proprietà DataSource; gli indico lì l'ADO che mi interessa e basta. Tutto il programma si basa su un DB Access.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.