Cancellazione dati

di il
13 risposte

Cancellazione dati

Buongiorno,
Ho creato un Database che tramite delle query mi permette di calcolare dei parametri statistici e altre elaborazioni a partire da dati di concentrazione di inquinanti con frequenza di un minuto.
Ho un piccolo problema, provo a spiegarmi al meglio:
I dati di concentrazione provengono da punti di campionamento diversi, che si alternano ogni 15 minuti, io ho bisogno che al minuto corrispondente il cambio di analisi e ai due minuti successivi i dati vengano cancellati, cioè il campo risulti vuoto.
Mi potreste dare un'aiuto?
Di seguito ho inserito un estratto della tabella.
Scusate se l'ho inserita in questo modo, ma non riuscivo ad allegare il file excel.

13 Risposte

  • Re: Cancellazione dati

    Siccome non si capisce bene che cosa vorresti fare dovresti far vedere, rispetto ai dati mostrati, quale dovrebbe essere il risultato finale.
  • Re: Cancellazione dati

    Stifone ha scritto:


    Siccome non si capisce bene che cosa vorresti fare dovresti far vedere, rispetto ai dati mostrati, quale dovrebbe essere il risultato finale.
    Ha ragione, ho allegato l'estatto della tabella ridotta e con alcune modifiche e come dovrebbe essere il risultato finale, come puoi vedere in corrispondenza del cambio dal punto1 al punto2 nella colonna "Punto Analisi", al campo SO2 non devono esserci i valori, cioè il campo deve risultare vuoto.
  • Re: Cancellazione dati

    Perché due record con due cancellazioni? Hanno anche minuti differenti...
  • Re: Cancellazione dati

    oregon ha scritto:


    Perché due record con due cancellazioni? Hanno anche minuti differenti...
    Non penso che questo possa essere utile alla risoluzione del mio problema.
    Il motivo sta nel fatto che il punto di campionamento è diverso, ma l'analizzatore è lo stesso, prima che campioni effettivamente l'inquinante di quel punto di analisi, trascorrono un paio di minuti.
  • Re: Cancellazione dati

    Dominik ha scritto:


    oregon ha scritto:


    Perché due record con due cancellazioni? Hanno anche minuti differenti...
    Non penso che questo possa essere utile alla risoluzione del mio problema.
    Che c'entra questa affermazione? Era una domanda per chiarire ulteriormente la situazione ma se ti dà fastidio...

  • Re: Cancellazione dati

    oregon ha scritto:


    Dominik ha scritto:


    oregon ha scritto:


    Perché due record con due cancellazioni? Hanno anche minuti differenti...
    Non penso che questo possa essere utile alla risoluzione del mio problema.
    Che c'entra questa affermazione? Era una domanda per chiarire ulteriormente la situazione ma se ti dà fastidio...

    Non ho ancora compreso ... ma fa niente altri ti risponderanno Grazie
  • Re: Cancellazione dati

    Sempre con i dati dal primo post quelli origibali
    Anno Mese GiornoOra MinutoPunto Analisi( ) SO2
    2020 2 18 13 14 Camino 3.94
    2020 2 18 13 15 Camino 3.94
    2020 2 18 13 16 Camino 3.95
    2020 2 18 13 17 Camino 3.93
    2020 2 18 13 18 Camino 3.94
    2020 2 18 13 19 Camino 3.99
    2020 2 18 13 20 Camino 3.85
    2020 2 18 13 21 Camino 3.96
    2020 2 18 13 22 Camino 3.98
    2020 2 18 13 23 Camino 3.99
    2020 2 18 13 24 Camino 4.02
    2020 2 18 13 25 Aria Ambiente 4.00
    2020 2 18 13 26 Aria Ambiente 3.96
    2020 2 18 13 27 Aria Ambiente 3.98
    2020 2 18 13 28 Aria Ambiente 3.95
    2020 2 18 13 29 Aria Ambiente 3.96
    2020 2 18 13 30 Aria Ambiente 3.89
    2020 2 18 13 31 Aria Ambiente 3.92
    2020 2 18 13 32 Aria Ambiente 3.95
    2020 2 18 13 33 Aria Ambiente 3.96
    2020 2 18 13 34 Aria Ambiente 3.94
    2020 2 18 13 35 Aria Ambiente 3.95
    2020 2 18 13 36 Aria Ambiente 3.92
    2020 2 18 13 37 Aria Ambiente 3.98
    2020 2 18 13 38 Aria Ambiente 3.99
    2020 2 18 13 39 Aria Ambiente 3.98
    2020 2 18 13 40 Modulo 1 3.95
    2020 2 18 13 41 Modulo 1 3.98
    2020 2 18 13 42 Modulo 1 3.94
    2020 2 18 13 43 Modulo 1 3.92
    2020 2 18 13 44 Modulo 1 3.99
    2020 2 18 13 45 Modulo 1 3.94
    2020 2 18 13 46 Modulo 1 3.98
    2020 2 18 13 47 Modulo 1 3.97
    2020 2 18 13 48 Modulo 1 3.95
    2020 2 18 13 49 Modulo 1 3.98
    2020 2 18 13 50 Modulo 1 3.95
    2020 2 18 13 51 Modulo 1 4.01
    2020 2 18 13 52 Modulo 1 4.00
    2020 2 18 13 53 Modulo 1 3.95
    2020 2 18 13 54 Modulo 1 3.95
    dovrebbero diventare come sotto?
    Anno Mese GiornoOra MinutoPunto Analisi( ) SO2
    2020 2 18 13 14 Camino 3.94
    2020 2 18 13 15 Camino 3.94
    2020 2 18 13 16 Camino 3.95
    2020 2 18 13 17 Camino 3.93
    2020 2 18 13 18 Camino 3.94
    2020 2 18 13 19 Camino 3.99
    2020 2 18 13 20 Camino 3.85
    2020 2 18 13 21 Camino 3.96
    2020 2 18 13 22 Camino 3.98
    2020 2 18 13 23 Camino 3.99
    2020 2 18 13 24 Camino 4.02
    2020 2 18 13 25 Aria Ambiente
    2020 2 18 13 26 Aria Ambiente

    2020 2 18 13 27 Aria Ambiente 3.98
    2020 2 18 13 28 Aria Ambiente 3.95
    2020 2 18 13 29 Aria Ambiente 3.96
    2020 2 18 13 30 Aria Ambiente 3.89
    2020 2 18 13 31 Aria Ambiente 3.92
    2020 2 18 13 32 Aria Ambiente 3.95
    2020 2 18 13 33 Aria Ambiente 3.96
    2020 2 18 13 34 Aria Ambiente 3.94
    2020 2 18 13 35 Aria Ambiente 3.95
    2020 2 18 13 36 Aria Ambiente 3.92
    2020 2 18 13 37 Aria Ambiente 3.98
    2020 2 18 13 38 Aria Ambiente 3.99
    2020 2 18 13 39 Aria Ambiente 3.98
    2020 2 18 13 40 Modulo 1
    2020 2 18 13 41 Modulo 1

    2020 2 18 13 42 Modulo 1 3.94
    2020 2 18 13 43 Modulo 1 3.92
    2020 2 18 13 44 Modulo 1 3.99
    2020 2 18 13 45 Modulo 1 3.94
    2020 2 18 13 46 Modulo 1 3.98
    2020 2 18 13 47 Modulo 1 3.97
    2020 2 18 13 48 Modulo 1 3.95
    2020 2 18 13 49 Modulo 1 3.98
    2020 2 18 13 50 Modulo 1 3.95
    2020 2 18 13 51 Modulo 1 4.01
    2020 2 18 13 52 Modulo 1 4.00
    2020 2 18 13 53 Modulo 1 3.95
    2020 2 18 13 54 Modulo 1 3.95

    E' sicuro che i minuti escano sempre in successione o potrebbero esserci dei salti?
  • Re: Cancellazione dati

    La query non è sufficiente per svolgere il compito da te indicato, devi scorrere il Recordset, valutando gli elementi nella sequenza e procedere in base alle condizioni.
  • Re: Cancellazione dati

    Stifone ha scritto:


    Sempre con i dati dal primo post quelli origibali
    Anno Mese GiornoOra MinutoPunto Analisi( ) SO2
    2020 2 18 13 14 Camino 3.94
    2020 2 18 13 15 Camino 3.94
    2020 2 18 13 16 Camino 3.95
    2020 2 18 13 17 Camino 3.93
    2020 2 18 13 18 Camino 3.94
    2020 2 18 13 19 Camino 3.99
    2020 2 18 13 20 Camino 3.85
    2020 2 18 13 21 Camino 3.96
    2020 2 18 13 22 Camino 3.98
    2020 2 18 13 23 Camino 3.99
    2020 2 18 13 24 Camino 4.02
    2020 2 18 13 25 Aria Ambiente 4.00
    2020 2 18 13 26 Aria Ambiente 3.96
    2020 2 18 13 27 Aria Ambiente 3.98
    2020 2 18 13 28 Aria Ambiente 3.95
    2020 2 18 13 29 Aria Ambiente 3.96
    2020 2 18 13 30 Aria Ambiente 3.89
    2020 2 18 13 31 Aria Ambiente 3.92
    2020 2 18 13 32 Aria Ambiente 3.95
    2020 2 18 13 33 Aria Ambiente 3.96
    2020 2 18 13 34 Aria Ambiente 3.94
    2020 2 18 13 35 Aria Ambiente 3.95
    2020 2 18 13 36 Aria Ambiente 3.92
    2020 2 18 13 37 Aria Ambiente 3.98
    2020 2 18 13 38 Aria Ambiente 3.99
    2020 2 18 13 39 Aria Ambiente 3.98
    2020 2 18 13 40 Modulo 1 3.95
    2020 2 18 13 41 Modulo 1 3.98
    2020 2 18 13 42 Modulo 1 3.94
    2020 2 18 13 43 Modulo 1 3.92
    2020 2 18 13 44 Modulo 1 3.99
    2020 2 18 13 45 Modulo 1 3.94
    2020 2 18 13 46 Modulo 1 3.98
    2020 2 18 13 47 Modulo 1 3.97
    2020 2 18 13 48 Modulo 1 3.95
    2020 2 18 13 49 Modulo 1 3.98
    2020 2 18 13 50 Modulo 1 3.95
    2020 2 18 13 51 Modulo 1 4.01
    2020 2 18 13 52 Modulo 1 4.00
    2020 2 18 13 53 Modulo 1 3.95
    2020 2 18 13 54 Modulo 1 3.95
    dovrebbero diventare come sotto?
    Anno Mese GiornoOra MinutoPunto Analisi( ) SO2
    2020 2 18 13 14 Camino 3.94
    2020 2 18 13 15 Camino 3.94
    2020 2 18 13 16 Camino 3.95
    2020 2 18 13 17 Camino 3.93
    2020 2 18 13 18 Camino 3.94
    2020 2 18 13 19 Camino 3.99
    2020 2 18 13 20 Camino 3.85
    2020 2 18 13 21 Camino 3.96
    2020 2 18 13 22 Camino 3.98
    2020 2 18 13 23 Camino 3.99
    2020 2 18 13 24 Camino 4.02
    2020 2 18 13 25 Aria Ambiente
    2020 2 18 13 26 Aria Ambiente

    2020 2 18 13 27 Aria Ambiente 3.98
    2020 2 18 13 28 Aria Ambiente 3.95
    2020 2 18 13 29 Aria Ambiente 3.96
    2020 2 18 13 30 Aria Ambiente 3.89
    2020 2 18 13 31 Aria Ambiente 3.92
    2020 2 18 13 32 Aria Ambiente 3.95
    2020 2 18 13 33 Aria Ambiente 3.96
    2020 2 18 13 34 Aria Ambiente 3.94
    2020 2 18 13 35 Aria Ambiente 3.95
    2020 2 18 13 36 Aria Ambiente 3.92
    2020 2 18 13 37 Aria Ambiente 3.98
    2020 2 18 13 38 Aria Ambiente 3.99
    2020 2 18 13 39 Aria Ambiente 3.98
    2020 2 18 13 40 Modulo 1
    2020 2 18 13 41 Modulo 1

    2020 2 18 13 42 Modulo 1 3.94
    2020 2 18 13 43 Modulo 1 3.92
    2020 2 18 13 44 Modulo 1 3.99
    2020 2 18 13 45 Modulo 1 3.94
    2020 2 18 13 46 Modulo 1 3.98
    2020 2 18 13 47 Modulo 1 3.97
    2020 2 18 13 48 Modulo 1 3.95
    2020 2 18 13 49 Modulo 1 3.98
    2020 2 18 13 50 Modulo 1 3.95
    2020 2 18 13 51 Modulo 1 4.01
    2020 2 18 13 52 Modulo 1 4.00
    2020 2 18 13 53 Modulo 1 3.95
    2020 2 18 13 54 Modulo 1 3.95

    E' sicuro che i minuti escano sempre in successione o potrebbero esserci dei salti?
    Esattamente.
    Si i minuti escono sempre in successione e sono sicuro non ci siano salti
  • Re: Cancellazione dati

    Il campo 'Punto Analisi( )' si chiama proprio così con lo spazio fra Punto e Analisi, le parentesi, lo spazio fra le parentesi?
  • Re: Cancellazione dati

    I campi sono:
    • Anno
    • Mese
    • Giorno
    • Ora
    • Minuto
    • Punto
    • Analisi( ) SO2
    il campo 'Analisi( ) SO2' è con lo spazio fra le parentesi e lo spazio fra parentesi chiusa e SO2'?
    Comunque supposto che si chiamino come sopra, altrimenti dovrai cambiare i nomi all'interno del codice, dovrai creare un Modulo, nella finestra VBA, ed in collare, in esso, il seguente codice:
    
    Sub VerificaDati()
        On Error GoTo Errore
    Dim rs As DAO.Recordset
    Dim intMinuto As Integer
    Dim strPunto As String
        Set rs = CurrentDb.OpenRecordset("SELECT Minuto, Punto, [Analisi( ) SO2] AS Analisi FROM TabellaTemp")
        If rs.RecordCount > 0 Then
            intMinuto = rs!Minuto
            strPunto = rs!Punto
            rs.MoveNext
            Do While Not rs.EOF
                If strPunto <> rs!Punto Then
                    If (rs!Minuto - intMinuto) < 3 Then
                        rs.Edit
                        rs!Analisi = Null
                        rs.Update
                    Else
                        intMinuto = rs!Minuto
                    End If
                    If (rs!Minuto - intMinuto) = 2 Then strPunto = rs!Punto
                Else
                    intMinuto = rs!Minuto
                End If
                rs.MoveNext
            Loop
        End If
        MsgBox "Elaborazione dati eseguita regolarmente.", vbInformation
        Exit Sub
        
    Errore:
        MsgBox "Elaborazione dati interrortta in quanto si è verificato un errore.", vbInformation
    End Sub
    quindi dovrai cambiare nel codice il nome della tabella da TabellaTemp a quello della tua e aver creato una copia della tua tabella, dove sono i dati da elaborare, posizionarsi all'interno della routine e premere il tasto F5 e verrà eseguito il codicecodice
  • Re: Cancellazione dati

    Stifone ha scritto:


    Il campo 'Punto Analisi( )' si chiama proprio così con lo spazio fra Punto e Analisi, le parentesi, lo spazio fra le parentesi?
    Si purtroppo è proprio così.
  • Re: Cancellazione dati

    Stifone ha scritto:


    I campi sono:
    • Anno
    • Mese
    • Giorno
    • Ora
    • Minuto
    • Punto
    • Analisi( ) SO2
    il campo 'Analisi( ) SO2' è con lo spazio fra le parentesi e lo spazio fra parentesi chiusa e SO2'?
    Comunque supposto che si chiamino come sopra, altrimenti dovrai cambiare i nomi all'interno del codice, dovrai creare un Modulo, nella finestra VBA, ed in collare, in esso, il seguente codice:
    
    Sub VerificaDati()
        On Error GoTo Errore
    Dim rs As DAO.Recordset
    Dim intMinuto As Integer
    Dim strPunto As String
        Set rs = CurrentDb.OpenRecordset("SELECT Minuto, Punto, [Analisi( ) SO2] AS Analisi FROM TabellaTemp")
        If rs.RecordCount > 0 Then
            intMinuto = rs!Minuto
            strPunto = rs!Punto
            rs.MoveNext
            Do While Not rs.EOF
                If strPunto <> rs!Punto Then
                    If (rs!Minuto - intMinuto) < 3 Then
                        rs.Edit
                        rs!Analisi = Null
                        rs.Update
                    Else
                        intMinuto = rs!Minuto
                    End If
                    If (rs!Minuto - intMinuto) = 2 Then strPunto = rs!Punto
                Else
                    intMinuto = rs!Minuto
                End If
                rs.MoveNext
            Loop
        End If
        MsgBox "Elaborazione dati eseguita regolarmente.", vbInformation
        Exit Sub
        
    Errore:
        MsgBox "Elaborazione dati interrortta in quanto si è verificato un errore.", vbInformation
    End Sub
    quindi dovrai cambiare nel codice il nome della tabella da TabellaTemp a quello della tua e aver creato una copia della tua tabella, dove sono i dati da elaborare, posizionarsi all'interno della routine e premere il tasto F5 e verrà eseguito il codicecodice
    Great!! Grazie mille sei stato gentilissimo.
Devi accedere o registrarti per scrivere nel forum
13 risposte