max.riservo ha scritto:
L'impostazione è errata : dovresti normalizzare il db. ........ Prevenendo la tua possibile risposta (non posso/non voglio modificare il db) puoi agire tramite VBA....... tramite la funzione INSTR(),
Grazie per il suggerimento. Non ho però utilizzato la funzione replace () visto che ho risolto con queste istruzioni:
If intRisposta = vbYes Then
If InStr(1, Me.DescrErrore, Left(Now, 10), vbTextCompare) Then
Me.DescrErrore = Left(Me.DescrErrore, Len(Me.DescrErrore) - 1) & " e Pluto era >" & me.vecchiovalore & "<;"
Else
Me.DescrErrore = Me.DescrErrore & " >>" & Left(Now, 10) & _
"<< Pluto era >" & me.vecchiovalore & "<;" End If
End If
End If
End Sub
Mi sono limitato a verificare la presenza del testo corrispondente ai 10 caratteri del giorno corrente , se si, tolgo l'ultimo carattere (il punto e virgola) e proseguo la frase con le mie leggere modifiche al testo; se no, la formula precedente resta invariata.
A questo punto, mi pongo un secondo problema correlato alle precedenti istruzioni. Il campo descrErrore annota tutte le modifiche eventualmente apportate in 5 campi diversi della maschera (che ne contiene anche altri). Vorrei concentrare le mie istruzioni in una sub (denominata SalvaMieCorrezioni) con riferimenti a variabili connesse ai 5 diversi campi. Poi per ogni evento afterupdate dei 5 controlli, pensavo di inserire l'istruzione call SalvaMieCorrezioni.
Promemoria:
Nomi dei controlli: Pluto, Sansone, Lassie, Rex, Balto.
NB agli eventi click di ognuno dei 5 controlli, Me.DescrErrore dovrebbe copiare il valore del controllo selezionato
Facile a dirsi, ma per me difficile a realizzarsi, non so da dove cominciare . Un aiuto a realizzarlo mi aiuterebbe a efficientare le istruzioni, rendendole meno dispersive e più sintetiche.
Buona notte