|
”DB購買依頼一覧”フォームの”品名”をダブルクリックすると、、、”検索画面”フォームが立ち上げります。。。
そのテキストボックスにキーワードを入力すると、抽出データが反映されるというプログラムを構築したいのですが、、、」うまく書けません。。。
Option Compare Database
Option Explicit
Private Sub Form_Open(Cancel As Integer)
DoCmd.MoveSize 5000, 2500, 8000, 3000
End Sub
Private Sub txt品名検索_AfterUpdate()
Call CallPrivate3
End Sub
Private Sub CallPrivate3()
Dim StrSQL As String
'サブフォームのレコードセットのSQL文を代入する
Dim MyName As Variant
'アクティブコントロール名を歳入する変数
Dim MyVariable As String
'フォーム上で取得した変数名
'DCount関数のレコード数を代入する変数
'アクティブなコントロール名を取得する
MyName = Me.ActiveControl.Name
'初期化
MyCount = 0
'SQL文の条件句の分岐条件をSELECT CASE文で対応して簡素化する
Select Case MyName
Case "txt品名検索"
MyVariable = " WHERE 購買依頼一覧.品名 LIKE '*" & [Forms]![検索画面]![txt品名検索] & "*' ;"
''txt品目検索に該当するレコード数をカウントする
' MyCount = DCount("品名", "購買依頼一覧", "品名 like '*" & [Forms]![検索画面]![txt品名検索] & "*'")
Case "Cmd解除"
MyVariable = " ;"
'全レコード数をカウントする
MyCount = DCount("品名", "購買依頼一覧")
End Select
'サブフォームのレコードソースに代入するSQL文
StrSQL = "SELECT * FROM DB購買依頼一覧 " & MyVariable
こっからしたがわからない
'SQL文をサブフォームのレコードソースに代入する
[Forms]![DB購買依頼一覧].Form.RecordSource = StrSQL
'サブフォームを再表示させる処理
[Forms]![DB購買依頼一覧]![品名].Form.Requery
'レコードが0件のときと1件以上あるときの条件処理
If MyCount = 0 toThen
MsgBox ("該当するレコードはありません")
Else
MsgBox ("該当するレコードは、" & MyCount & "件です")
End If
Me.txt件数.Value = MyCount
End Sub
よろしくお願いします。。。
|
|