|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
Problema Access e VBA....
ciao a tutti! sto facendo un programmino per la gstione di un database con Access 2003 e avrei bisogno di fare una cosettina simpatica.
avrei la necessità di scorrere i record presenti sotto una maschera e colorare una casella di testo (corrispondente al campo di un record) di un certo colore se una certa condizione è soddisfatta... ho scritto un po' di righe in visual basic di questro tipo: Codice:
Private Sub Form_Open(Cancel As Integer)
Dim numRecord As Long
DoCmd.Maximize
numRecord = Me.Recordset.RecordCount
If numRecord > 0 Then
Me.Recordset.MoveLast
Do
Me![FatturatoMensAttaule].ForeColor = 0
If Me![FatturatoMensAttaule] < Me![FatturatoMensPrec] Then
Me![FatturatoMensAttaule].ForeColor = 255
End If
numRecord = numRecord - 1
Me.Recordset.MovePrevious
Loop While numRecord > 0
Else
MsgBox "Periodo Inesistente", vbInformation, "Attenzione"
End If
End Sub
Il problema è che questo codice non colora di rosso solo i campi dei record che soddisfano quella condizione. Infatti esso colora i campi di tutti i record non appena ne trova anche solo uno che soddisfa la condizione...in poche parole mi colora tutti i record di rosso presenti nel corpo della maschera, non appena trova un record che soddisfa la condizione. Avrei quendi bisogno di modificare il codice in modo tale che mi colori di rosso solo i campi di ciascun record che soddisfano la condizione. Ringrazio preventivamente tutti quelli che collaboreranno alla discussione.
__________________
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
|
La proprità Forecolor la devi associare alla TextBox o Label che viene utilizzata per visualizzare il dato del campo, non al campo stesso.
__________________
Careful With That Axe |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jan 2005
Città: Torino
Messaggi: 81
|
La maschera è in visualizzazione continua o singolo record ?
Se visualizzi un record per volta non ha molto senso passare tutti i record e colorare lo sfondo del campo che ti interessa. Tanto più che se non salvi il parametro del colore di tutti i record in un campo nascosto in tutti i record il colore sarà uguale all'ultimo impostato. Prova invece a mettere un funzione su "record corrente" che ti colora il campo a seconda del valore. In questo modo quando cambi record viene eseguita quella macro che ti colora lo sfondo ,in più sarà corretta per ogni record e dipendente dal paramentro "FatturatoMensAttaule" (e non uguale all'ultimo impostato). Spero possa esserti utilie Ciao DaryL74
__________________
DaryL74 |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
Quote:
__________________
|
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jan 2005
Città: Torino
Messaggi: 81
|
In questo caso la soluzione che ti ho proposto non funziona.
Guarda su www.sitocomune.com Scegli dal menu laterale "forms" e nell'elenco del frame di destra cerca: "3.57 Evidenziare records specifici nelle maschere continue" "3.26 Formattazione Condizionale nelle maschere continue." "3.25 Evidenziare specifiche righe in Maschere Continue." "3.10 In modalità maschere continue è possibile visualizzare un controllo colorato diversamente a seconda del suo contenuto? (2)"... sono soluzioni per Access 97 o 2000 ma dovresti poterle adattare... Ciao
__________________
DaryL74 |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
Quote:
__________________
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:39.



















