This will do it on the basis that D, H, O and R are upper case but can be changed to include both. This is probably overkill but I just happened to be working on it and it should do what you want,
Firstlly, copy and paste this in to a module
Public Function XxNum2(strOriginalString As String) As String
Dim lngCtr As Long
Dim lngLength As Long
Dim strTheCharacter As String
Dim intAscii As Integer
Dim strFixed As String
lngLength = Len(strOriginalString)
For lngCtr = 1 To lngLength
strTheCharacter = Mid(strOriginalString, lngCtr, 1)
intAscii = Asc(strTheCharacter)
If intAscii = 68 Or intAscii = 72 Or intAscii = 79 Or intAscii = 82 Then
strFixed = strFixed & strTheCharacter
End If
Next lngCtr
XxNum2 = strFixed
End Function
Now in a query and assuming the field that contains your date is called [abc] create a calculate field
NewFieldName: IIf(Len(XxNum2([abc]))=4,"Yes","No")
That will give Yes if all 4 characters are there and No if they are not. If one of the characters is present more than once it will give No, in other words if the string has DDHOR it will give No
This
NewFieldName2: IIf(Len(XxNum2([abc]))>0,"Yes","No")
Will give Yes if at least one of the characters are there and aslos if there are multiple instances of the charactyer, thus HH would give Yes
If the characters will sometimes be in lower case then Google search on ASCII and get the numbers for the lower case versions and then add them to this line in the function
If intAscii = 68 Or intAscii = 72 Or intAscii = 79 Or intAscii = 82
or it might be easier to convert the string to all upper case to start with