hatena
hatena
2019/09/20 (金) 13:53:41
このコードが実際のもとだとすると、エラーで実行できないはず。
また、無駄が多いコードなので、とりあえず下記のように書き直して、試してみてください。
Option Compare Database
Option Explicit '変数宣言強制 これはあった方がよい
'メインフォーム上のテキストボックス(サブフォームコントロールの抽出条件)
Private Sub 氏名_AfterUpdate()
'フィルタ実行
Call buildWhereContition
'画面再表示
'Me("subForm").Form.Requery 不要
End Sub
Private Function buildWhereContition()
Dim strWhereCondition As String '変数宣言を型指定して行う
'strWhereCondition = "" '不要 String型で宣言すれば初期値は""なので
'タブコントロール
'myTab = myForm![タブ].Value myFormがどこにも宣言、セットされていない
Dim subForm As Form
Set subForm = Me("subForm" & Me![タブ].Value).Form 'サブフォームを取得しておいた方が後で楽
'条件は一つだけなので下記でOK
If Me![氏名] <> "" Then
strWhereCondition = "氏名='" & Me![氏名] & "'"
End If
subForm.Filter = strWhereCondition
'抽出条件文字列がある場合はタブコントロール内にあるサブフォームコントロールにフィルタ設定
If strWhereCondition <> "" Then
subForm.FilterOn = True
'抽出条件文字列がない場合はフィルタ解除
Else
subForm.FilterOn = False
End If
End Function
通報 ...