Buongiorno, stavo integrando un DB realizzato da altri, adattandolo alle mie esigenze di lavoro.
Ho sviluppato una maschera da una query (QCercaErr_inBB) che interroga la tabella BB secondo criteri impostati.
In questa maschera (QCercaErr_inBB) sono presenti una decina di caselle di testo tutte in grado di modificare i dati eventualmente riscontrati dall'operatore come errati. Nella tabella BB (ma anche nella query e nella maschera) è appositamente previsto un campo denominato BB.DescrErrore . Qui devono essere memorizzate , per ogni afterupdate del controllo BB.Nome_RagSociale, le seguenti info: data della modifica, ed il vecchio valore presente nel campo modificato.
A tal fine il codice vba (già utilizzato nel Db) che io che ho adattato perla nuova maschera ( funziona) è:
Private Sub BB_Nome_RagSociale_Click()
Me.BB_DescrErrore = Me.BB_DescrErrore & RegistraModifiche("BB_Nome_RagSociale", Me.BB_Nome_RagSociale.OldValue, Me.BB_Nome_RagSociale.Value)
End Sub
ovviamente si appoggia ad un modulo già integrato nel DB dove è presente l'istruzione RegistraModifiche
Function RegistraModifiche(ByVal myFieldName As String, ByVal myFieldOldValue As Variant, ByVal myFieldNewValue As Variant) As String
RegistraModifiche = ""
RegistraModifiche = ">>" & Date & "<< [" & Trim(myFieldName) & "] era <" & Trim(myFieldOldValue) & ">; "
End Function
a questo punto dovrei proseguire scrivendo le istruzioni per ogni alto campo modificabile nella maschera e vorrei evitare di ripetere questo inserimento tante volte, anche perchè dovrei farlo per almeno altre 10 tabelle filtrate da query.
pensavo di utilizzare qualcosa del genere che, ovviamente, mi rendo conto essere totalmente sbagliata, ma mi serve per esprimere l'idea che vorrei utilizzare per semplificare in un unica istruzione :ogni modifica eseguita sui vari controlli va memorizzata nel campo di testo BB-DescrErrore
Private Sub Form_AfterUpdate()
Dim ctrl As Object
For Each ctrl In Me
If ctrl.Value <> ctrl.OldValue Then
Me.BB_DescrErrore = Me.BB_DescrErrore & RegistraModifiche("ctrl", ctrl.OldValue, ctrl.Value)
End Sub
anticipatamente ringrazio per i suggerimenti e delle spiegazioni sui miei errori dovuti ad un volgarissimo copia e incolla