Access VBA質問箱 IV

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

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


832 / 9994 ←次へ | 前へ→

【12470】Re:Access2010で抽出プログラムの構築
発言  rinrin  - 14/1/20(月) 18:39 -

引用なし
パスワード
   hatenaさん

お忙しい中いろいろ教えてくれてありがとうございます。。。。。。^^
あたしなりに必死に何とかして。。。ってがんばってはいるんですけど。。。。。。。;;

求める状態には至りません。。。。。。;;

サブフォームで抽出ができないんです。。。。。。;;

まだまだあきらめません。。。。。^^
経過報告させていただきます。。。。^^

今日までにあがいたソースコードです。。。。。^^


  Dim stCri As String
  Dim MyPublic As String
  Dim MyPublic2 As String


Private Sub 購買依頼番号_AfterUpdate()
  MyPublic2 = Me.購買依頼番号.Value
  Call Call呼出
End Sub

Public Sub Call呼出()
  On Error Resume Next
  Dim Ctl As Variant
  Dim stCri As String
  
'パブリック変数に選択したコンボBOXの名前を取得
  MyPublic = Me.ActiveControl.Name
  
'このフォーム内のすべてのコントロールを検索
  For Each Ctl In Me.Controls
  With Ctl
    If .ControlType = acComboBox And Ctl.Name <> MyPublic Then
'コントロールの種類がテキストボックスなら値をNULL(空)に設定
    .Value = Null
    End If
  End With
  Next Ctl
  
  stCri = "" & "='" & MyPublic2 & "'"
  Mypublic3 = " WHERE " & "='" & MyPublic2 & "'"
  
  Me.購買実績一覧.Form.Filter = stCri
  Me.購買実績一覧.Form.FilterOn = True
End Sub

  
Private Sub CmdCancel_Click()
  Me.購買依頼番号.Value = ""
  Me.購買発注番号.Value = ""
  Me.受入番号.Value = ""
  Me.整理番号.Value = ""
  Me.見積番号.Value = ""
  Me.原価センタ.Value = ""
  Me.会社名.Value = ""
  Me.担当者名.Value = ""
  Me.年度 = ""
  
  ComboBoxInit
  Forms![Main購買実績]![購買実績一覧].SetFocus
  Me.[購買実績一覧].Form.Filter = ""
  Me.[購買実績一覧].Form.FilterOn = False
End Sub


Private Sub ComboBoxInit()
'コンボボックスの初期化
  Dim Ctl As Control
  
  For Each Ctl In Me.Controls
  With Ctl
    If .ControlType = acComboBox And _
      .Name <> Me.ActiveControl.Name Then
'コンボボックスをNULL(空)に設定(アクティブコントロール以外)
      .Value = Null
    End If
  End With
  Next Ctl
End Sub

Public Function SetFilter()
'メインフォームのデザインビューでコンボボックスをすべて選択した状態で、「更新後処理」プロパティ欄に=SetFilterと設定
  Dim stCri As String
  
  ComboBoxInit
  
  With Me.ActiveControl
    stCri = .Name & .Value & "'"
  End With
  
  Me.購買実績一覧.Form.Filter = stCri
  Me.購買実績一覧.Form.FilterOn = True
End Function


▼hatena さん:
>コード中のコンボボックス名とフィールド名が一致しないものがあるし、
>実際のクエリでどうなっているのか不明ですが、
>とりあえず抽出対象のフィールドのデータ型はすべてテキスト型のようなので、
>そうだとして回答します。
>
>メインフォームのモジュールは下記のようになります。
>
>Private Sub ComboBoxInit()
>'コンボボックスの初期化
>  Dim Ctl As Controlt
>
>  For Each Ctl In Me.Controls
>  With Ctl
>    If .ControlType = acComboBox And _
>      .Name <> Me.ActiveControl.Name Then
>'コンボボックスをNULL(空)に設定(アクティブコントロール以外)
>    .Value = Null
>    End If
>  End With
>  Next Ctl
>
>End Sub
>
>Private Sub CmdCancel_Click()
>  ComboBoxInit
>  Me.[購買実績一覧].SetFocus
>  Me.[購買実績一覧].Form.Filter = ""
>  Me.[購買実績一覧].Form.FilterOn = False
>End Sub
>
>Public Finction SetFilter()
>  Dim stCri As String
>
>  ComboBoxInit
>
>  With Me.AciveControl
>    stCri = .Name & "='" & .Value & "'"
>  End With
>  
>  Me.購買実績一覧.Form.Filter = stCri
>  Me.購買実績一覧.Form.FilterOn = True
>End Finction
>
>
>メインフォームのデザインビューでコンボボックスを全て選択した状態で、
>「更新後処理」プロパティ欄に
>
>=SetFilter()
>
>と設定します。
>
>以上でどうでしょうか。
478 hits

【12464】Access2010で抽出プログラムの構築 rinrin 14/1/18(土) 9:29 質問[未読]
【12465】Re:Access2010で抽出プログラムの構築 hatena 14/1/18(土) 17:43 回答[未読]
【12466】Re:Access2010で抽出プログラムの構築 rinrin 14/1/19(日) 9:33 発言[未読]
【12468】Re:Access2010で抽出プログラムの構築 hatena 14/1/19(日) 18:00 回答[未読]
【12470】Re:Access2010で抽出プログラムの構築 rinrin 14/1/20(月) 18:39 発言[未読]
【12471】Re:Access2010で抽出プログラムの構築 hatena 14/1/20(月) 21:17 回答[未読]
【12476】Re:Access2010で抽出プログラムの構築 rinrin 14/2/1(土) 21:24 お礼[未読]

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