Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4414 / 9994 ←次へ | 前へ→

【8826】Re:フォーム上フィールドの引数化
お礼  ぼっこ  - 06/11/24(金) 15:28 -

引用なし
パスワード
   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

655 hits

【8823】フォーム上フィールドの引数化 ぼっこ 06/11/23(木) 22:14 質問
【8824】Re:フォーム上フィールドの引数化 Gin_II 06/11/24(金) 8:37 回答
【8826】Re:フォーム上フィールドの引数化 ぼっこ 06/11/24(金) 15:28 お礼

4414 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078212
(SS)C-BOARD v3.8 is Free