アクセス 抽出条件が一致したらフォームを開く
- フォームを開くときのイベントに、数値が一致した時に検索ボタンを使用可能にするコードを書きましたが、うまくいきませんでした。
- テキストボックスとコンボボックスの値が一致した場合、検索ボタンを使用可能にするコードを書きましたが、正しく動作しません。
- フォームを開くときに、数値の一致を確認して検索ボタンの使用可否を設定するコードを書きましたが、うまくいきませんでした。
- ベストアンサー
アクセス 抽出条件が一致したらフォームを開く
教えてください! フォームを「開くとき」イベントに、以下のコードを書きました。 Private Sub Form_Open(Cancel As Integer) Me!コマンド24.Enabled = False End Sub そのフォームの中には、以下のふたつ(a,b)と、コマントボタン「コマンド24」があります。 a:テキストボックス「当月の名前」『コントロールソースに、=DatePart("m",Date())を設定』 b:コンボボックス「月」『リスト値で、4,5,6,7,8,9を設定』月 そして、aとbの数値が一致した時に、検索ボタンを使用可能にする というコードを書きました。(というか、書いたつもりです) Private Sub 月_AfterUpdate() If (Me!当月の名前) = (Me!月) = True Then Me!24.Enabled = False Else Me!コマンド24.Enabled = True End If End Sub ですが、数値が一致しなくても、検索ボタンどうも、うまくいきませんでした。 このコードのどこが間違っているのでしょうか?
- mipomipo
- お礼率58% (75/128)
- Windows XP
- 回答数4
- ありがとう数2
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
If (Me!当月の名前) = (Me!月) = True Then Me!24.Enabled = False Else Me!コマンド24.Enabled = True End If を If (CInt(当月の名前) = CInt(月)) = True Then コマンド24.Enabled = True Else コマンド24.Enabled = False End If でいかがでしょうか。真偽が逆でしたらそのようにしてください。 動かなかったらすいません。
その他の回答 (3)
#3です。 Me!24.Enabled = True は Me!コマンド24.Enabled = True の間違いでした、訂正いたします。
お礼
お忙しいところ、ご回答ありがとうございます! ご指摘いただいた箇所を訂正してやってみましたが、うまくいきませんでした^_^; #2の方の回答でやってみようと思います。 ありがとうございました!
Private Sub 月_AfterUpdate() If (Me!当月の名前) = (Me!月) Then Me!24.Enabled = True Else Me!コマンド24.Enabled = False End If End Sub このように書き直して実行してみてください。
- popesyu
- ベストアンサー率36% (1782/4883)
その「aとbの数値が一致した時に、検索ボタンを使用可能」にする仕様が意味不明なのですが、まぁそれは置いといて。 「検索ボタンどうも、うまくいきませんでした」というのはどういう意味なのでしょう。エラーが出るのか、数値が一致したらボタンはFalse、一致しなかったらTrueになっているということをさしているのでしょうか。 もし後者のことならコードを逆に書いているせいかと。
補足
わかりずらくてすみません。 まず、「月検索」フォームの「開く時」イベントに、以下のコードを書き、フォーム中にあるコマンドボタン「コマンド24」を使用不可の状態にしておきます。 Private Sub Form_Open(Cancel As Integer) Me!コマンド24.Enabled = False End Sub 尚、このフォームには、コマンドボタン「コマンド24」以外に、テキストボックス「当月の名前」(『コントロールソースに、=DatePart("m",Date())を設定』)と、コンボボックス「月」(『リスト値で、4,5,6,7,8,9を設定』)があります。 そして、「月」の「更新後処理」イベントに、以下のコードを書きました。 Private Sub 月_AfterUpdate() If (Me!当月の名前) = (Me!月) = True Then Me!24.Enabled = False Else Me!コマンド24.Enabled = True End If End Sub 「当月の名前」と「月」の数値が一致した時に、コマンド24が使用可能になる、という処理をしたいのです。 「当月の名前」が5で、「月」が5なら、コマンド24をクリックすることができるあ(=使用可能)、「当月の名前」が5で「月」が6なら、コマンド24は、ボタンが死んだ状態で、クリックできない。ということです。 どうも、うまくいかない・・・というのは、「当月の名前」に5を入れ、「月」に6を入れても、コマンド24がクリックできてしまいます。 本当は、死んだ状態でなければいけないのに・・・ コードの知識が乏しいので、間違ったコード式かもしれません。 また、コードを逆さに書いているとは?? ここに書いたコードがすべてです。 逆さなのでしょうか? お忙しいところ、すみません。 宜しくお願い致します。
関連するQ&A
- Access:フォーム起動時に非有効にするには(Enabled)
フォームに『項目A』(YES/NO型)があり、FALSEの時『理由』(テキスト型)が非有効になるよう、以下のように設定しています。 Private Sub ダメダメ_Click() If Nz(Me!ダメダメ, True) = True Then Me!理由.Enabled = True Exit Sub Else Me!理由.Enabled = Me!ダメダメ = True End If End Sub しかし、フォーム起動時は非有効になっていないし、以前入力しているチェックが入っていないデータの『理由』部分も非有効になっていません。 起動時にも、以前入力したデータにも反映させるにはどのようにすればよいのでしょうか?
- 締切済み
- オフィス系ソフト
- フォーム上での複数条件での抽出ができません
工事の発注した年度と月をコンボボックスでそれぞれ入力した値で 抽出したいと思いましたが、なかなかうまくいきません。 Private Sub 抽出ボタン_Click() Me.FilterOn = False '抽出ボタンをクリックしたらcbo年度コードの値でフィルターをかける Me.Filter = "年度 = " & Me![cbo年度] And "発注予定 = " & Me![cbo月] 'フィルターを実行します。 Me.FilterOn = True End Sub 別のプロシージャで年と月を別々に抽出することはできたのですが、 「○年のさらに○月の工事」と絞り込むことができずに困っています。 このプロシージャを実行すると、以下のエラー分が表示されます。 ========================= 実行時エラー '13': 型が一致しません。
- ベストアンサー
- オフィス系ソフト
- Accessのフォーム その2
すいません、以前にも同じ質問をしたのですが、私の質問の仕方が悪くてうまくいきませんでした。 回答してくださった方、ありがとうございました! もう一度、詳しく質問しなおします。 顧客データを登録しているのですが、テーブルを元に登録フォームを作成しました。 商品がたくさんあって、4つのコードに分かれています。フォームの中に[A][B][C][D]と4つのコンボボックスを作成し、絞込み検索ができるようにはしました。 しかし、選んだデータの[A]しかテーブルに表示されません。例えば[A]のコンボボックスの中から[1010]を選択、[B]のコンボボックスから選択しようとしても空っぽです。 テーブルを見ると、[A]で選んだ[1010]だけが表示されています。 非連結のときはうまく出てたんですが・・。 もしかして連結列が間違ってるのでしょうか?? 元になるテーブルは Aコード A Bコード B Aコード Cコード C Bコード Dコード D Cコード この2列目を表示したいのです。(2列目が[1010]など表示したいデータ) 列数はそれぞれ「2」で連結列は「2」です。 更新後処理は以下の通りです。 Private Sub コンボ0_AfterUpdate() Me!コンボ2.Requery End Sub Private Sub コンボ2_AfterUpdate() Me!コンボ4.Requery End Sub Private Sub コンボ4_AfterUpdate() Me!コンボ6.Requery End Sub ぜひよろしくお願いします。
- ベストアンサー
- その他(ソフトウェア)
- アクセスで期間抽出
お尋ねします アクセスで納品書のデータベースがあります 納品書データFormには 伝票番号、日付、客先名、数量のフィールドのフォームで テキストボックス1:始めの日 テキストボックス2:終了日 コマンドボタン1:期間で抽出 が配置しています テキストボックス1,2に日付、記入後、コマンドボタン1をクリックして 所要期間でフィルターで抽出するのですがうまく行きません コマンドボタン1クリック時のコード Private Sub コマンド1_Click() Me.Filter = "日付= 'Between" & Me![テキスト1] & "And" & Me![テキスト2] & "'" Me.FilterOn = True End Sub のコードで抽出してくれません、不都合をご指摘下さい なお 指定日での抽出は以下で出来ました。 Private Sub コマンド1_Click() Me.Filter = "日付= '" & Me![テキスト1] & "'" Me.FilterOn = True End Sub エクセルのモジュールは少しかじったのですがアクセスは 始めたばかりでなかなか要領を得ません 宜しくお教え下さい。
- ベストアンサー
- オフィス系ソフト
- 実行時エラー '3464': 抽出条件でデータ型が
フォームにフィルタをかけようとすると 実行時エラー '3464': 抽出条件でデータ型が一致しません。 になります。 Private Sub Form_Load() Me.Form.Filter = "フィールド1 =200" Me.Form.FilterOn = True End Sub コードはこれです。 フィールド1はテキスト型です。 何がダメなのでしょう?
- ベストアンサー
- オフィス系ソフト
- Access 2重3重のポップアップフォームの場合
Accessです。 フォームを3つ作りました。 フォーム1=「A] フォーム1=「B]>ポップアップ「はい」 作業ウインド固定「はい」 フォーム1=「C]>ポップアップ「はい」 作業ウインド固定「はい」 「A」が開くとき Private Sub Form_Open(Cancel As Integer) ____DoCmd.OpenForm "フォーム2", , , , , acHidden ____DoCmd.OpenForm "フォーム3", , , , , acHidden End Sub として 「A」にはボタンがあってクリックすると「B」が Visible=True になります。 Private Sub コマンド1_Click() ____Forms!フォーム2.Visible = True ____Forms!フォーム2.SetFocus End Sub さらに「B」にもボタンがあってクリックすると「C」が Visible=True になります。 Private Sub コマンド1_Click() ____Forms!フォーム3.Visible = True ____Forms!フォーム3.SetFocus End Sub 「C」が現れた後、マウスイベントがきかなくなります。 というより、閉じることもできなく、アクセス本体をCLT+ALT+DELで強制終了させなくてはいけなくなります。 対処方法を教えて下さい。
- ベストアンサー
- Visual Basic
- Accessにて、コントロールの編集可能、使用可能の設定
Access2002を使用しています。 表形式で作成したフォームで、 Aというチェックボックスに、チェックが入っている場合 Bのコントロールは入力可能、 Cのコントロールは入力不可 チェックが入っていない場合、 Bのコントロールは入力不可、 Cのコントロールは入力可能 というふうにしたいのですが、 Private Sub A_AfterUpdate() If A = -1 Then B.Locked = False B.Enabled = True C.Locked = False C.Enabled = False Else B.Locked = False B.Enabled = False C.Locked = False C.Enabled = True End If End Sub 上記のように設定すると、すべてのレコードに対しての設定になってしまいます。 1件ずつのレコードに対して、条件を設定するにはどのようにすればよいでしょうか? よろしくお願いいたします。
- 締切済み
- オフィス系ソフト
- Access2003のVBAで半角カナを全角カナにしたいです
Access2003を使っています。過去の質問集を検索したのですが分からなかったので教えてください。 次のコードで、「ふりがな」(半角カナ)のところを「ふりがな」(全角カナ)に変更しても、勝手に「ふりがな」(半角カナ)になってしまうのですが、なんとかならないでしょうか? Private Sub Form_Current() Me!整理番号.Enabled = False Me!氏名.Enabled = False Me!ふりがな(注:半角カナになってます).Enabled = True Me!生年月日.Enabled = False End Sub 以前Access2000を使っていた時は対象のフォームにて、テキストボックスに「ふりがな」(半角カナ)と名前をつけていたので問題はなかったのですが、Access2003に移行した際に上記コードの半角カナの部分でエラーが出るようになったので、全角カナに名前を変更した為に.Enabled = Falseが機能しなくなってしまいました。ご助言をお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAでユーザーフォーム
エクセルVBAでユーザーフォーム上にオプションボタンが2つ、コンボボックスが6つあります。 OptionButton1をクリックした場合のComboboxの動きの制御について以下のように書いてみました。 これでも期待通りCombobox1~3は動き4~6は動かなくなります。 ただ、もっと別の簡単な書き方があるのではないかと思い質問しました。 宜しくお願いします。 Private Sub OptionButton1_Click() ComboBox1.Enabled = True ComboBox1.ListIndex = 0 ComboBox2.Enabled = True ComboBox2.ListIndex = 0 ComboBox3.Enabled = True ComboBox3.ListIndex = 0 ComboBox4.Enabled = False ComboBox4.ListIndex = 0 ComboBox5.Enabled = False ComboBox5.ListIndex = 0 ComboBox6.Enabled = False ComboBox6.ListIndex = 0 End Sub
- ベストアンサー
- Excel(エクセル)
- Accessでの抽出で完全一致。
あいまい抽出で下記のような記述を、 完全一致に変更する場合どのように書き換えればいいでしょうか? 以前覚えたのですが、本を手放してしまい忘れてしまいました。 ご指導お願いします。 Private Sub 技術コードで抽出_Click() Dim ipt As String ipt = [技術コード] DoCmd.ApplyFilter , "[担当者コード] Like '*" & ipt & "*'" End Sub
- ベストアンサー
- オフィス系ソフト
お礼
すごいっ!!すごいです!!できました(涙) ありがとうございました!!