Microsoft Access 掲示板

テーブル変更後、読み込まなくなりました。 / 5

36 コメント
views
4 フォロー
5
wazawaza 2022/05/26 (木) 12:07:39

イミディエイトウィンドウの結果は以下のようになりました。

daoRs![依頼者]: 齋藤        cmb依頼者.Value: 齋藤
daoRs![W_No]: コ01980Z       cmbWNo.Value: コ01980Z
daoRs![品名]: ####品名#### txt品名.Value: ####品名####
daoRs![希望処置]: 検品のみ  cmb希望処置.Value: 検品のみ
daoRs![ロット番号]: A1      txtロット番号.Value: A1
daoRs![ロット枝]:           cmbロット枝.Value: 
daoRs![巻き長さ]: 8888      txt巻き長さ.Value: 8888
daoRs![依頼理由_1]: 表面不良一般          cmb依頼理由1.Value: 表面不良一般
daoRs![依頼理由_2]:         cmb依頼理由2.Value: 
daoRs![依頼理由_3]:         cmb依頼理由3.Value: 
daoRs![補足説明]: ダミー    txt補足説明.Value: ダミー

前に「フォーム上で検索をかけた…」と書きましたが、
これは、テーブル「T_依頼」からクエリ「Q_依頼履歴」を作り、
レコードソース「Q_依頼履歴」からなるフォーム「F_依頼履歴一覧」の中に、
書籍に掲載されていた検索機能を盛り込んだものです。

書籍の作例は、検索フィールドが全てテキストボックスでしたが、
私の製作したものはコンボボックスが3つ出来てしまっています。
これをテキスト形式に変更すれば...といった素人考えから発展した醜態です。
過去データの読込にはコンボボックスの方が望み通りの結果になりますが、
一方の検索では、、、といった感じです。

ならばと、コンボボックスの値もヒットする方法も調べてみましたが
見つかりませんでした。

「F_依頼履歴一覧」の検索コード


Private Sub btn解除_Click()

    Dim db As dao.Database  'データベースへの参照を代入する変数を宣言
    Dim rs As dao.Recordset 'レコードセットへの参照を代入する変数を宣言
    Set db = CurrentDb()    'カレントデータベースを参照
    
    '「Q_依頼履歴」クエリを開きレコードセットを取得
    Set rs = db.OpenRecordset("Q_依頼履歴", dbOpenDynaset)
    
    'フォームのレコードセットを再設定
    Set Me.Recordset = rs
    Me.Requery                   'フォームのデータを更新
    Me.txt検索文字列.Value = ""  '検索文字列を空欄にする
    
End Sub

Private Sub btn検索_Click()

    Dim db As dao.Database  'データベースへの参照を代入する変数を宣言
    Dim rs As dao.Recordset 'レコードセットへの参照を代入する変数を宣言
    Set db = CurrentDb()    'カレントデータベースを参照
    
    '「Q_依頼履歴」クエリを開きレコードセットを取得
    Set rs = db.OpenRecordset("Q_依頼履歴", dbOpenDynaset)
    'コンボボックスで選択されたフィールドでテキストボックスに指定された文字を検索
    rs.Filter = Me.cmb検索.Value & " Like '*" & Me.txt検索文字列.Value & "*'"
    
    'レコードを再取得
    Set rs = rs.OpenRecordset
    
    'フォームのレコードセットを再設定
    Set Me.Recordset = rs
    
    Me.Requery  'フォームのデータを更新
    
End Sub

Private Sub btn並べ替え_Click()

   Dim db As dao.Database  'データベースへの参照を代入する変数を宣言
    Dim rs As dao.Recordset 'レコードセットへの参照を代入する変数を宣言
    Set db = CurrentDb()    'カレントデータベースを参照
    
    '「Q_依頼履歴」クエリを開きレコードセットを取得
    Set rs = db.OpenRecordset("Q_依頼履歴", dbOpenDynaset)
    
    '昇順・降順の確認
    If Me.frm昇降選択.Value = 1 Then
        rs.Sort = Me.cmb並べ替えフィールド.Value
    Else
        rs.Sort = Me.cmb並べ替えフィールド.Value & " DESC"
    End If
    
    Set rs = rs.OpenRecordset  'レコードセットを開く
    Set Me.Recordset = rs      'レコードセットを再設定
    
End Sub
通報 ...