무언가가 많이 올 것이라고 생각합니다.
Access의 조건부 서식에서 모든 빈 필드를 형식화하는 방법이 있는지 알고 싶습니다. 필자의 경우 모든 필드는 일반적으로 입력해야하지만, 모든 경우에 포함되지는 않습니다.. 그래서 사용자를 제한하는 조건 코드를 작성하는 대신, 필드에 빨간색 배경을 표시하여 "이봐, 여기에 아무것도 없어. 네가 원했던 것이지?"
메시지 상자가 짜증나도록 타블렛 위에 있습니다. 따라서 조건부 서식이 적용됩니다. 나는 당신이 "Null ([Field])을 가질 수 있다는 것을 알고 있습니다. 그러나 그것은 30+ 필드에서 20+ 폼을 거쳐 적절한 필드 이름 등을 확인한 다음 개별적으로 조건을 입력해야합니다. 여러 항목을 선택하고 여러 항목에 대해 조건부 서식을 지정하고 "같음 : NULL"을 사용합니까?
"같음 : Null"을 시도했으나 작동하지 않습니다. : "" "(액세스 상수 사용) 이유는 무엇입니까? 아니면이 문제를 어떻게 해결할 수 있습니까? 또한 터치되지 않은 필드에 대해서만 필요합니다. 사용자가 입력을 시작한 다음 다시 공백으로 삭제하면 신경이 쓰이지 않는 상태로 유지하거나 빨간색으로 돌아갈 수 있으므로 더 좋은 방법이 있다면 눈이 다가옵니다.Null 조건부 서식 - MS Access Forms
편집 : 모든 양식에 붙여 넣을 일부 VBA 코드를 시작했습니다.
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
문제는 FormatConditions.Add(acFieldValue, acEqual, "")
이 같은 이유로 작동하지 않는다는 것입니다. 어떻게 해결할 수 있습니까? VBA로보고 기본 제공 조건에 결함이있는 경우 버그처럼 보입니다. 아니면 나 앞에서 뭔가 빠져있어.
null을 빈 문자열과 연결하면 항상 빈 문자열이 생성됩니다. 'len ([Fieldname] & "") = 0'이 당신의 작업에 효과가 있습니까? – SeanC
사실 .. 아직 각 필드에 대해 [Fieldname]을 수동으로 입력해야한다는 사실은 여전히 남아 있습니다. 배치 솔루션이 필요해. VBA에서 코딩을 시작했지만 동일한 문제가 있습니다. 질문을 업데이트합니다. – StuckAtWork