Ist Null-Bedingte Formatierung - MS Access-Formulare

Etwas, das ich annehmen würde, kommt eine Menge...

Ich würde gerne wissen, ob es einen Weg gibt, in Access' Bedingte Formatierung, format, alle leeren Felder ein. In meinem Fall, alle Felder müssen in der Regel eingegeben werden, sondern nicht in allen Fällen. Also, anstatt zu schreiben, eine Reihe von bedingten code, um den Nutzer einzuschränken, um es zu schreiben gibt, möchte ich nur einige rote Hintergründe in meine Felder, als Erinnerung "hey, hier gibt' s nichts.. sicher, dass das, was du wolltest?"

Es auf einem Tablett so, dass die Message-Boxen wäre ärgerlich. Also die bedingte Formatierung ist es. Ich weiß, Sie haben können "Ist Null([Feld]), aber das erfordert mir zu gehen durch meine 20+ Formulare auf 30+ Felder ein und gewährleisten die ordnungsgemäße Feldnamen etc, dann geben Sie die Bedingung ein für Sie individuell. Gibt es eine Möglichkeit, ich kann einfach multi-wählen Sie von meinen Feldern, führen Sie eine bedingte Formatierung auf Mehrere, und verwenden Sie vielleicht "Ist Gleich: NULL"?

Ich habe versucht "gleich: Null" und es funktioniert nicht ... noch nicht "gleich: "" " (mit der Access-Konstanten). Ideen, warum? Oder wie kann ich dies umgehen? Auch, es ist nur notwendig für nicht-berührt-Felder, so dass, wenn der Benutzer beginnt, geben Sie löscht dann wieder zu leeren, ist mir egal; kann es bleiben unformatiert oder gehen Sie zurück zu red, also wenn es gibt ein besserer Weg, dies zu tun ich bin alle Augen.

EDIT: ich habe angefangen einige VBA-code, die ich einfügen in alle meine Formulare:

Private Sub Form_Load()
Dim ctl As Control
Dim reqCol As Long
Dim focusCol As Long
Dim doneCol As Long
Dim format As FormatCondition

reqCol = RGB(246, 180, 180)
focusCol = RGB(252, 249, 238)
doneCol = RGB(255, 255, 255)

For Each ctl In Me.Controls
    With ctl
        Me.Controls(ctl.Name).FormatConditions.Delete 'Delete the existing conditions.
        Me.Controls(ctl.Name).BackColor = doneCol 'Set the background color to the done color.

        Select Case .ControlType
            Case acTextBox
                'Create the format objects.
                format = Me.Controls(ctl.Name).FormatConditions.Add(acFieldValue, acEqual, "")
                format = Me.Controls(ctl.Name).FormatConditions.Add(acFieldHasFocus)

                'Format the filled in boxes (ie set back to red)
                With Me.Controls(ctl.Name).FormatConditions(0)
                    .BackColor = reqCol
                    .Enabled = True
                End With

                'Format the current field color (ie set to beige)
                With Me.Controls(ctl.Name).FormatConditions(1)
                    .BackColor = focusCol
                    .Enabled = True
                End With
        End Select
    End With
Next ctl
End Sub

Problem ist, dass FormatConditions.Add(acFieldValue, acEqual, "") funktioniert nicht aus dem gleichen Grund... wie kann ich dies umgehen? Zu sehen, wie VBA und der built-in Bedingungen sind beide fehlerhaft, scheint wie ein bug. Oder bin ich etwas fehlt, das direkt vor mir..

die Verkettung von null mit einem leeren string erzeugt immer eine leere Zeichenfolge. würde len([Fieldname] & "")=0 Arbeit für Ihre Aufgabe?
Nicht wirklich.. es bleibt immer noch die Tatsache, dass ich manuell eingeben [Fieldname] für jedes Feld. Ich brauche eine batch-Lösung. Ich habe angefangen mit der Programmierung in VBA, aber es hat das gleiche problem. Wird die update-Frage.

InformationsquelleAutor StuckAtWork | 2012-05-22

Schreibe einen Kommentar