|
Gin_IIさん
ごめんなさい。
fc_numの関数は出来上がっています。
簡単なニューメリックチェックですが、
いくつかパターンがあるので、パターンと文字列を引数で渡してます。
(下記、孫関数を参照下さい)
そもそも質問した件については、何とか出来ました。
オブジェクトとかコントロールをどうやってセットするのか
悩んでましたが、テキストボックスを渡してやることで落ち着きました。
(未だ、オブジェクトがわかってはいませんが...)
コーディングはもう少しシャープにするつもりですが、
取り急ぎ、お礼まで!
失礼しました。
<親>
Private Sub MEP_Fax_LostFocus()
Dim chkfld As TextBox
Set chkfld = Me!MEP_Fax <=これがわかりませんでした!
Call fc_nums(chkfld)
End Sub
<子>
Private Sub fc_nums(txt As TextBox)
Dim wkTxt As String
wkTxt = txt
If IsNull(wkTxt) Then
Else
ret = fc_num(2, wkTxt)
If ret <> 0 Then
MsgBox ("Not allow Letter! Number Only")
DoCmd.Beep
With txt
.ForeColor = 255
End With
DoCmd.GoToControl txt.name
Else
With txt
.ForeColor = 0
End With
End If
End If
End Sub
<孫>
Public Function fc_num(pat As Integer, chkData As String) As Integer
Dim words(3) As Variant
Dim wk As String
Dim ret As Integer
Dim i As Integer
Dim j As Integer
words(0) = "0123456789"
words(1) = "0123456789 "
words(2) = "0123456789 /"
words(3) = "0123456789abcdefghijklmnopqrstuvwxyz"
j = Len(chkData)
fc_num = 0
For i = 1 To j
wk = Mid(chkData, i, 1)
ret = InStr(1, words(pat), wk, vbTextCompare)
If ret = 0 Then
fc_num = 9
Exit For
End If
Next i
End Function
|
|