Newsgroup: it.comp.appl.access
Titolo: Colori/Record/Maschera

Premesso che ho fatto una bella ricerca (infruttuosa) con Google :
tramite una maschera leggo una tabella "Storico", dove molti record sono
quasi uguali,
vorrei che quando passo al record successivo, le caselle di testo   i cui
valori cambiamo, rispetto al record precedente,
assumano lo sfondo rosso.
grazie.ciao.

 ha scritto nel messaggio
news:apog03$3ift7$1...@ID-24065.news.dfncis.de...

Se la tabella "Storico" ha una struttura simile a questa:
ID                            Contatore e chiave primaria
DataVariazione        Data/Ora
Matricola                 Testo
Nome                      Testo
Cognome                 Testo
Indirizzo                   Testo
Al                            Data/ora
ecc ecc
Creati una query una query chiamata Query1 che ordina i dati per Matricola e
DataVariazione e quindi avrà un codice SQL simile a questo:
SELECT Storico.*
FROM Storico
ORDER BY Storico.Matricola, Storico.DataVariazione;
La tua maschera deve avere una visualizzazione a Maschera singola, Query1
come origine record e i suoi controlli debbono avere i nomi uguali a quelli
dei campi cui sono associati.
In un modulo del tuo database memorizza questa funzione:
Function Uguale(NomeCampo As String) As Boolean
Dim rst As Recordset
Uguale = True
On Error GoTo Err_Uguale
Set rst = CodeContextObject.RecordsetClone
rst.FindFirst "ID =" & CodeContextObject!ID
rst.MovePrevious
If rst!Matricola = CodeContextObject!Matricola Then
    If IsNull(rst(NomeCampo)) And Not _
    IsNull(CodeContextObject(NomeCampo)) Then
        Uguale = False
    End If
    If Not IsNull(rst(NomeCampo)) And _
    IsNull(CodeContextObject(NomeCampo)) Then
        Uguale = False
    End If
    If rst(NomeCampo) <> _
    CodeContextObject(NomeCampo) Then
        Uguale = False
    End If
End If
Set rst = Nothing
Bye_Uguale:
    Exit Function
Err_Uguale:
    Resume Bye_Uguale
End Function
A fronte dell'evento "Su corrente" della maschera genera il seguente codice
VBA:
Private Sub Form_Current()
If Uguale("Indirizzo") Then
    Me!Indirizzo.BackColor = -
2147483643
Else
    Me!Indirizzo.BackColor = 255
End If
If Uguale("Nome") Then
    Me!Nome.BackColor = -
2147483643
Else
    Me!Nome.BackColor = 255
End If
If Uguale("Cognome") Then
    Me!Cognome.BackColor = -
2147483643
Else
    Me!Cognome.BackColor = 255
End If
If Uguale("Al") Then
    Me!Al.BackColor = -
2147483643
Else
    Me!Al.BackColor = 255
End If
End Sub
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

mitico!
pensasvo fosse un pò + semplice......
sto studiando la risposta......
grazie.......ciao

Ho una casella di testo non associata in una maschera, vorrei che prima che
la maschera si aggiorni controllare se l'utente ha inserito la data  nella
casella di testo, quindi ho inserito questa  Routine Evento nella
proprietà della casella  di testo alla voce   Prima di Aggiornare :
*adattato dopo ricerca su  google* :
Private Sub DataVariazione_BeforeUpdate(Cancel As Integer)
If Me.DataVariazione = True Then
        If IsNull(Me.DataVariazione) Then
            Cancel = True
            MsgBox "Inserire la Data di Variazione."
            Me.DataVariazione.SetFocus
        End If
    End If
End Sub
chiaramente non va :(
dove è l'errore ?

 dove č l'errore ?
aridaije. Terzo post  uguale nel giro  di un'ora!
Guarda risposta sul "tuo" post delle 10.02
--
a.cara

 ha scritto nel messaggio
news:3DC64260...@blunet.it...


 ha scritto nel messaggio
news:aq5fi5$6h0on$1...@ID-24065.news.dfncis.de...

Ti ha già risposto Alessandro Cara nell'altro tuo Thread.
