Access独習者です。
入門書で「物品貸出状況フォーム」を作成しました。
フォーム画面「物品貸出状況一覧表」の下に作ったコンボボックス289「大分類」とコンボボックス291「小分類」で
貸出状況を調べる物品を絞り込み一覧表に取り込みます。
コンボボックス「大分類」「小分類」の値集合ソースはそれぞれ「T_大分類」と「T_小分類」です。
Access2003では下記のコードとコンボボックス291「小分類」の値集合ソースのクエリビルダに組み込んだ
抽出条件「大分類番号[コンボ289]」で絞り込んだ物品が一覧表に表示されたのですが、Access2007では
コンボボックス289「大分類」を変更後コンボボックス291「小分類」が更新されません。
Access2003とAccess2007でなにか違いがあるのでしょうか。
お聞きするのに提示すべきコードなどそろっていないかもしれないのですが、ご助言いただければ助かります。
よろしくお願いいたします。
Private Sub コンボ289_AfterUpdate()
Me!コンボ291.Requery
End Sub
Private Sub コンボ291_AfterUpdate()
Me.Filter = "小分類番号=" & コンボ291
Me.FilterOn = True
End Sub
No.3ベストアンサー
- 回答日時:
No.1、DexMachinaです。
> このSQL文をご覧になってお気づきの点がありましたら
SQL自体に問題はないと思います。
ただ、こちらで動作確認をしている中で、ちょっと気になる点がありましたので、
以下の点、確認してみてください。
(いずれも、動作確認中の自分の失敗から(汗))
I)同一PCに2003/2007を共存させている場合、2007起動時に表示される
「Microsoft Office ○○を構成しています...」などのダイアログは、
必ずそのまま処理を実行させてください。
(2003で作成したフォームを2007側でインポートしようとしたところ、「カレント
レコードがありません」という、この時点ではちょっと考えにくいエラーが発生
したので・・・)
II)マクロが有効になっているかを確認してください。
リボンのすぐ下に添付画像のようなボタンが出ている場合、VBAは停止して
いますので、再クエリが実行されません。
この『オプション』ボタンをクリックして『Microsoft Office セキュリティ オプション』
ダイアログで、「このコンテンツを有効にする」をオンにしてOKボタンをクリック
すれば、マクロ・VBAが有効になります。
なお、毎回この操作を行うのが面倒なようでしたら、自動でマクロを有効にする
フォルダを作成しておき、データベースファイルをそちらに移動します。
上記フォルダの設定は、以下の操作でできます:
1)アプリケーション左上の『Officeボタン』を押す
2)表示されたメニューの最下方にある『Accessのオプション(I)』をクリック
3)『Accessのオプション』ダイアログが表示されるので、左端のタブ(?)から
「セキュリティ センター」を選択
4)右下にある『セキュリティ センターの設定(T)』ボタンをクリック
5)『セキュリティ センター』ダイアログが開くので、左端のタブから「信頼できる
場所」を選択
6)『新しい場所の追加(A)』ボタンをクリックして、適当なフォルダを指定
・・・以上(というか以下略(汗))です。
これでだめだとすると、後はAccess2007で新規ファイルを作成して、元のファイル
から全てのオブジェクト(テーブルやフォームなど)をインポートしてみる、ぐらいしか
対処を思いつきません(汗)
(インポートは『外部データ』リボンの『インポート』から行えます)
DexMachina様
再度の丁寧なご回答感謝いたします。
画像まで添付いただいて初心者の私にもすぐわかりました。
結果としてご指摘のとおり、「セキュリティの警告」がでておりましたので、オプションで「このコンテンツを有効にする」にしたらあれほど悩んでいたことが解決しました。
とてもうれしいです。
本当にありがとうございました。
No.2
- 回答日時:
これじゃないでしょうか?
Access 2007 のフォームでフィルタを実行する場合、抽出結果にフィルタが反映されない
http://support.microsoft.com/kb/941800/ja
banaron様
ご回答感謝いたします。
ご回答で紹介してくださったサイトを見た瞬間「これで解決する」と強い期待を持ったのですが結果はだめでした。
2007のフォームデザインのプロパティで読み込み時のフィルタ使用を「いいえ」にしても、いったん閉じてやり直してもおなじです。
しかし、コードに書かれているフィルタ作業に2007のフィルタ機能が影響していることは間違いないように感じました。
ちなみに2003ではフォームデザインのプロパティで「フィルタの使用」は「はい」の状態で正常に動作しています。
いづれにせよアドバイスくださってありがとうございました。
No.1
- 回答日時:
> 値集合ソースはそれぞれ「T_大分類」と「T_小分類」です。
名前の先頭の文字からすると、それぞれテーブルということで
よろしいでしょうか。
そうだとすると、大分類(コンボ289)の更新に合わせて再クエリ
(Requery)を行っても、テーブルの内容自体は変わらないため、
小分類(コンボ291)のリストの内容は変化しないと思います。
(Access2003かAccess2007に関係なく)
念のため、Access2003での小分類(コンボ291)の値集合ソースが、
クエリまたはSQL文(=クエリビルダで作成される、「Select ~」で
始まる文)になっていないか、確認してみて下さい。
とりあえず、大分類(コンボ289)の更新後イベントに、ご提示の
コードが組まれているのでしたら、小分類(コンボ291)の値集合
ソースを、以下のSQL文に変えれば、動作するかと思います:
Select * From T_小分類 Where [大分類ID]=[コンボ289];
【注意点・前提事項】
・「T_小分類」のフィールド構成が不明のため、全フィールド(*)
指定にしています。
・「T_小分類」に「大分類ID」フィールドがあり、これによって
「T_大分類」のレコードとの関連性を記録、と想定しました。
・・・以上です。
DexMachina様
さっそくのご回答感謝いたします。
教えていただくために必要な項目が欠如していて大変失礼いたしました。
ア T_はテーブルをさします
イ T_大分類のフィールドは 番号 大分類名
T_小分類のフィールドは 番号 小分類名 大分類番号
です。
ウ 小分類の値集合ソースのクエリビルダのSQL文は次の通りです。
SELECT 小分類テーブル.小分類番号, 小分類テーブル.小分類, 小分類テーブル.大分類番号 FROM 小分類テーブル WHERE (((小分類テーブル.大分類番号)=[コンボ289]));
これはAccess2003も2007も同じですがなぜ2007では小分類が更新されないのでしょうか。
何回も恐縮ですがこのSQL文をご覧になってお気づきの点がありましたらご助言いただけたら幸いです。
よろしくおねがいいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Excel(エクセル) コンボボックス及びリストボックスを5段階連動させる方法をご存知の方ご教授頂きたいです。 Excelで 3 2022/04/03 21:43
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンボボックス 選択後のカー...
-
条件に応じてコンボボックスの...
-
VBA コンボボックスの重複削除
-
java初心者です。
-
ActiveXコントロールのコンボボ...
-
Access レポート印刷するときに...
-
ACCESS フォームをそのまま印刷...
-
データベースのINT型項目にNULL...
-
passwordが入れられません・・・・
-
レコードを保存するコード ア...
-
アクセスで数値型のフィールド...
-
ACCESSでフォームを使って、テ...
-
サブフォームに対してGoToRecor...
-
エクセルをACCESSのレポ...
-
Accessで、フォームからフォー...
-
アクセスでフォームビューがみ...
-
YahooのIDがロックされてしまい...
-
アクセスでテキストボックスの...
-
複数のクエリーを一枚のレポー...
-
ACCESSでコントロールソースの変更
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件に応じてコンボボックスの...
-
コンボボックス 選択後のカー...
-
Access 2016 のプロパティ(プル...
-
VBA コンボボックスの重複削除
-
access 検索結果をテキストボッ...
-
java初心者です。
-
ExcelVBA コンボボックスリスト...
-
ACCESS VBA で複数項目検索にテ...
-
エクセルVBA コンボボックスで...
-
ActiveXコントロールのコンボボ...
-
ACCESS2003のコンボボックスで...
-
Accessで、コンボボックスから...
-
Accessで家計簿を作っているの...
-
エクセルVBAユーザーフォー...
-
Access2003とAccess2007の違い
-
CrystalDiskinfoの使い方!HDD/...
-
Dcount関数が表示されない。
-
ユーザーフォーム上にあるコン...
-
Accessのコンボボックス内項目...
-
4月開始年度の月と日を連動さ...
おすすめ情報