Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Mi potresti indicare un buon testo di Access 2007 Vba.
Grazie
Domenico
Questo browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Salve, mi potete aiutare a capire come va applicata la formattazione condizionata con codice vba .
Il mio programma è utilizzato gestire le presenze e i permessi , infatti in una query ho tutti i dati ordinati per malattia, ferie , Permessi, legge104 e varie ed in un altra tabella con raggruppamento ,che viene visualizzata in una form con maschera continua, con evidenziato il giorno e le ore nel campo TG1 ......... Quello che mi occorre è visualizzare al posto delle ore sul campo Tg1 un colore in base al valore della query (malattia = rosso ferie= verde ecc...)
Grazie Mille
Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.
Mi potresti indicare un buon testo di Access 2007 Vba.
Grazie
Domenico
e' possibile farlo cosi' : perchè mi appoggio alla tabella "tabmaskcolor" e la visualizzazione deve essere di tutti i dipendenti anche di chi non ha nussun giustificativo. Quello che mi hai proposto funziona ma ripete i giustificativi come sono sulla query.
adesso ho fatto una prova cosi ma non colora nessun campo.
ciao Grazie della tua pazienza
Private Sub Maskcolor()
Dim strsql As String
Dim strsql1 As String
Dim strsql2 As String
Dim strsql3 As String
Dim i As Integer
Dim j As Integer
Dim t As Integer
Dim gg As String
Dim datamask As String
Dim TR As Form 'Form sottomaschera
Dim fcondition As FormatCondition
Dim giustificativo As String
Set db = CurrentDb
'strsql = "select * from dipendenti " '&
'"WHERE [dipendenti.team] = '" & tee & "'"
strsql1 = "SELECT IDDip, giustificativo, mese,data, anno, team, qta, totalegg, tg1, tg2, tg3, tg4, tg5,tg6,tg7, " & _
" tg8,tg9,tg10,tg11,tg12,tg13,tg14,tg15,tg16,tg17,tg18,tg19,tg20,tg21,tg22,tg23,tg24,tg25,tg26,tg27,tg28,tg29,tg30,tg31 from Dettaglio_permessi_query " & _
" WHERE [mese] = " & MeseN & " And [Anno] = " & AnnoN & ""
'strsql1 = "SELECT IDDip, Cognome, Nome, mese, anno, Team, totaleore, tg1, tg2, tg3, tg4, tg5, tg6, tg7, " & _
'" tg8,tg9,tg10,tg11,tg12,tg13,tg14,tg15,tg16,tg17,tg18,tg19,tg20,tg21,tg22,tg23,tg24,tg25,tg26,tg27,tg28,tg29,tg30,tg31,totgg from funzionacolor " & _
'" WHERE [mese] = " & MeseN & " And [Anno] = " & AnnoN & ""
strsql2 = "select id ,IDdip, Cognome, Nome, mese, anno, Team, totaleore, tg1, tg2, tg3, tg4, tg5, tg6, tg7, " & _
" tg8,tg9,tg10,tg11,tg12,tg13,tg14,tg15,tg16,tg17,tg18,tg19,tg20,tg21,tg22,tg23,tg24,tg25,tg26,tg27,tg28,tg29,tg30,tg31 from tabMaskTotal"
'If tee = "tutti" Then
'Exit Sub
'End If
Me.contaPersone = DCount("team", "dipendenti")
'Set rs = db.OpenRecordset(strsql, dbOpenSnapshot)
Set rs1 = db.OpenRecordset(strsql1, dbOpenSnapshot)
Set rs2 = db.OpenRecordset(strsql2, dbOpenDynaset)
'Set rs3 = db.OpenRecordset(strsql3, dbOpenSnapshot)
'Do Until rs2.EOF
'rs2.Delete
'rs2.MoveNext
'Loop
Do Until rs1.EOF
rs2.MoveFirst
For i = 0 To rs1.RecordCount - 1
rs2.FindFirst "iddip = " & rs1.Fields("iddip").Value
Me.giust = rs1.Fields("giustificativo").Value
giustificativo = Me.giust
Debug.Print rs1.Fields("giustificativo").Value
j = Day(rs1.Fields("data").Value)
Me.Controls("tg" & j).FormatConditions.Delete
Set fcondition = Me.Controls("tg" & j).FormatConditions.Add(acExpression, acEqual, "giustificativo ='legge104'") ' <----attento agli apici
Set fcondition = Me.Controls("tg" & j).FormatConditions.Add(acExpression, acEqual, "giustificativo ='FAC'") '<----attento agli apici
With Me.Controls("tg" & j).FormatConditions(0)
.BackColor = vbRed
End With
With Me.Controls("tg" & j).FormatConditions(1)
.BackColor = vbGreen
End With
rs1.MoveNext
Next i
Loop
rs1.Close
Set rs1 = Nothing
rs2.Close
Set rs2 = Nothing
Set fcondition = Nothing
End Sub
ciao Domenico,
Grazie per l'esempio, ma per l'espressione come posso comparare dati da una tabella e una query ?
prego.
il recordSource della tua form deve avere anche il campo giustificativo, quindi la query devi estrarre anche questo campo come da seconda immagine.
trascina nella maschera a visualizzazione continue il campo giustificativo, impostalo pure come visibile=no se non ti interessa mostrarlo/vederlo. ( esattamente come il controllo txtSerial della demo che ti ho mostrato, nascosto ma che determina il festivo o no from tblDate).
poi modifica la sub setFC nel seguente modo (ovviamente non riesco a testarla senza il tuo scenario a portata di mano, vado a rigor di logica) :
Sub setFC()
Dim fcondition As FormatCondition
Me.tg1.FormatConditions.Delete
Set fcondition = Me.tg1.FormatConditions.Add(acExpression, acEqual, "[giustificativo]='legge 104'") ' <----attento agli apici
Set fcondition = Me.tg1.FormatConditions.Add(acExpression, acEqual, "[giustificativo]='FAC'") '<----attento agli apici
With Me.tg1.FormatConditions(0)
.BackColor = vbRed
End With
With Me.tg1.FormatConditions(1)
.BackColor = vbGreen
End With
Set fcondition = Nothing
End Sub
da richiamare su load della tua Form :
Private Sub Form_Load()
setFC
End Sub
dovresti vedere il controllo tg1 con sfondo rosso e verde in corrispondenza rispettivamente di legge 104 e FAC.
Facci sapere!
Ciao, Sandro.
Grazie per l'esempio, ma per l'espressione come posso comparare dati da una tabella e una query ?
varExpression = "weekday([ddata])=1 or weekday([ddata])=7 or [txtserial]=-1"
mi occorre che il campo tg1 ed altri (per esempio) vengano colorati in base al giustificativo che si trova sulla query2 in questo caso il campo tg1 riporta il valore di 2 ore e nella query 2, sotto giustificativo (legge104).
Grazie mille
ciao Domenico,
forse un esempio è maggiormente esplicativo.
prova a vedere se questa demo ti aiuta: http://1drv.ms/1LdpLYO fCondition2.accdb.
in particolare la form tblDate evidenzia in rosso le festività dell'anno compreso sabato e domenica, giovedì' in verde e i martedì in giallo via VBA.
ci sono poi altre due forms in cui la formattazione condizionale ha più di tre condizioni, impostate manualmente.
HTH-
Ciao, Sandro.