
Access2007のサブフォームのRequeryで悩んでいます。。
Aメインフォーム
Bサブフォーム埋め込みコントロール
Cサブフォーム
リストボックスう
AにBを貼り付けBのソースオブジェクトにCを指定しています。
Cは帳票形式です
リストボックスをクリックしたら、
CのRecordSourceにSQLを挿入し、
CをRequeryしていますが、全くRequery出来ていない模様なのです。。
B.SourceObject="C"も試したのですが、全く思った通りのデータが抽出されません。
B.Form.Requery
Me.B.Form.Requery
どれも試して駄目でした。
CのRecordSourceに直接SQLを貼り付けたら思った通りに出ますが、
Requeryが機能していない気がします。
実行結果は、数件対象データはあるのに、Cの中身は空になります。。。
正しくRequeryする方法、もしくは違うやり方があればご教授頂けないでしょうか?
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
1)
当初のは、コンパイルエラー、実行時エラーもなかったということでしょうか?。
2)
例えば、
単体での実行はうまくいくけど、
メニューからボタン押下するなどでは実行するとうまくいかない、とか、
そこだけ見ても間違っていないようだが
ほかとの絡みでうまく動かない、というのはよくある話です。
ACCESSの不具合で片づけてもいいですけど、
時間の余裕あれば追及してもいいのではないでしょうか?。
1)エラーは全く出ておりません。。。
2)時間が許すならば追及してみます!
ただ、過去の不具合が出ている時(Requeryされない)、単体レベルではありました。
他のフォームVBAでは、間違いのソース等々存在はしておりました。
今度サブフォームを作成する場合は、徐々にプログラムを構築し、じっくり調べてみます。
どうもありがとうございました!
No.5
- 回答日時:
オブジェクトの適切な破棄が
行なわれていなければ当然ながら
プロセスが残ったり、メモリリークを
起こしたり、あるいはオブジェクトの
初期化が行なわれていなかったりで
不審な動作をすることがあります。
そのような時は、まず全てのエラートラップを
コメントアウトし、丸裸の状態でコードを動かします。
必要な場合はメッセージボックスやテキストボックス
などを使って、レコードソースやランタイムでのSQLの
内容やデータを取得して、データが正常にオブジェクト間
でやり取りが行なわれているか確認します。
取り出したランタイムのSQLでクエリを作り、実行してみて、
Nullがないかなどの確認をしたりします。Option Explicitだけは
必ず表示しておきます。
あるいは、不必要なリンク子フィールド、親フィールドが
不用意にランタイム時に張られていないかなどの監視も
メッセージボックスやテキストボックスに表示して監視し、
張られていたら削除するコードを入れたりします。
必要ならば、実行時のプロパティを必要なだけ取得します。
このような、ところです。
丁寧な書き込みありがとうございます。
なるほど。
一度ステートメントをコメントアウトし、徐々にコメントインしていき、
原因を探るのも一理ありますね。
違う処理なのですが、サブフォームがまた、Requeryで再描画されなくなりました。。。
処理は、データを登録し(ISNERT文をDAOで実行)、その後更新されたデータを表示さす為、サブフォームをRequeryし、表示されず、2・3度連続して登録すると、今まで表示されなかったデータが一気に表示されます。。。
サブフォームのレコードセット形式を、スナップショットだったのですが、ダイナセットに変更すると、上記のように、一度登録したら、即反映できるようになりました。。。
もう不信感ですよ 笑
違う話になりますが、AccessVBAで、TypeOfという関数を使っていました。
最適化すると、TypeOfが認識できず、プロシージャ-なんとかかんとかエラーが出て困った経験があります。
パッチを当て、最新にしていると、この様な状態となり、Accessをインストールして、パッチを何もあてていない状態で最適化してもTypeOfのエラーは出ません。
今でもそうです。
Accessを触る場合は最新の注意を図っています。Access自体は信用ならんと思ってしまっています。。。
書き込みどうもありがとうございました!
No.4
- 回答日時:
ヒントになれば・・・・。
>CをRequeryしています
実際はイベントが間違ってて空振りしているとか。
>全くRequery出来ていない模様
使い方が違うのかもしれません。
何がどうなっているのか最初から整理したらどうでしょうか?。
http://office.microsoft.com/ja-jp/access-help/HA …
コントロールを指定するかどうかで使い方の区別あります。
この回答への補足
書き込みありがとうございます。
>>CをRequeryしています
>実際はイベントが間違ってて空振りしているとか。
フォームの既定のビュープロパティが、帳票フォームだったのですが、単票フォームに変更し、帳票形フォームに変更しなおしただけで解決したのです。。。
つまり最初の帳票フォーム時に不具合を起こし、単票フォームにし、帳票フォームにし直して不具合が解消したという事でしょうか・・・。
URLありがとうございます。
ある一定の機能等は、熟知しているつもりなのですが、
出来るつもりの機能が出来なくなると、はまってしまうものです。。。
今回はどう考えてもAccess2007の不具合としか考えられないのですが、
パソコンの環境もあると思いますので、一概には言えませんね。。。
今度新たにサブフォームを作る時にでも、整理してみますね。
どうもありがとうございます。
No.3
- 回答日時:
>リストボックスの値集合ソースでは無いのです。
>リストボックスの行を選択し、それを条件として、
>サブフォームのRecordSouseにSQL文を書いているのです。。。
よくわからないのですが、上記だとリストボックスに
表示する選択肢はForm_Load時で設定しているのですか。
クエリでリストボックスの値をどのように取得しているのか
その抽出条件が示されていないので何ともいえませんが。
>Access2007はまだ不具合が多いですが、これも一環かも知れませんね。
Access2007で設定してみましたが、サブフォームをデータシートで
リストボックス複数選択、複数のテキストボックス
などを抽出条件にサブフォームでの検索、抽出は
問題なくできますが。
この回答への補足
書き込み誠にありがとうございます。
お返事遅くなりました。
リストボックスは、ただのサブフォームをRequeryする為の、条件です。
処理内容では、まず[検索]→検索結果をリストボックスに表示→リストボックスクリック→サブフォームに表示
という具合です。
簡易な作りではなく、エラーチェック等かなり充実している機能なので、複雑かも知れません。。。
パソコンの環境かも知れませんが、文字入力中入力補助一覧が出なくなったり(.[どっと]を押したら出てくる一覧)、何もしていないのに、全ての関数が認識できなくなったり(参照設定での参照しているオブジェクトが使用不能)するんですよ…。
その不具合は前のモジュールを上書きしたり、Access再起動したりで直ります。。。
No.2
- 回答日時:
サブフォームを使った検索、抽出には
制限がありますが。あえてそれを無視して
質問に答えられるとすれば以下のような
ことです。ただし、クエリでの抽出条件が
リストボックス一つなのか、あるいは
他に抽出条件があるのかわからないので
リストボックスのみとします。
リストボックスを使用するということは
おそらく複数選択を利用しているのでは
と思いますが、その場合にはクエリの
抽出条件にIn句を設定する必要があります。
その場合、In句は、
In('選択1','選択2','選択3')
のように設定されますが、この場合
'選択1','選択2','選択3'
の部分をVBAでクエリのSQL文を書き換える
必要があります。
書くVBAは変数宣言も含めて7行程度です。
ここまで説明すれば分かる人は「なるほど」と
思われるのですが、おわかりになりますか。
この回答への補足
分かりにくくて申しわけないです。
リストボックスの値集合ソースでは無いのです。
リストボックスの行を選択し、それを条件として、サブフォームのRecordSouseにSQL文を書いているのです。。。
非常におかしい現象なのですが、
一度サブフォームCを単票フォームにして、保存し、実行し、次に帳票形式にすると、
Requery出来ました。。。
Access2007はまだ不具合が多いですが、これも一環かも知れませんね。
レスポンスしてくださり誠にありがとうございました!
また何かありましたら宜しくお願い致します。
No.1
- 回答日時:
>CのRecordSourceにSQLを挿入し
これはMe.B.Form.RecordSource = "SELECT * ~"
のようにやっていますよね?普通はこれだけで自動的に
リクエリされますよ。
但し、メインとサブの間にリンクフィールドがあると
指定の仕方により正常に動作しないかも知れません。
その通りなんです…通常リクエストされます・・・
非常におかしい現象なのですが、
一度サブフォームCを単票フォームにして、保存し、実行し、次に帳票形式にすると、
Requery出来ました。。。
Access2007はまだ不具合が多いですが、これも一環かも知れませんね。
レスポンスしてくださり誠にありがとうございました!
また何かありましたら宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) コントロールにリンクするセルが選択されない 3 2022/06/12 14:37
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- Access(アクセス) マイクロソフト アクセス2021のフォームビュー作成でレイアウトを帳票形式から単票形式にあとから変更 1 2023/03/03 10:56
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESSにて
Access(アクセス)
-
AccessのRefresh・Requery・Repaintの違い
Access(アクセス)
-
Access 別フォームへの再クエリ(更新)がしたい。
その他(データベース)
-
-
4
ACCESSサブフォームにデータ反映されない
Access(アクセス)
-
5
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
6
Access VBA サブフォームの更新
その他(データベース)
-
7
アクセスのフォームで、文字を中央揃えにしたい
Access(アクセス)
-
8
AccessVBA RecordSourceのリセットについて
Access(アクセス)
-
9
Accessで埋め込んだサブフォーム(データシート形式)でデータ追加ができない
Access(アクセス)
-
10
ACCESS クエリの抽出条件に他のテーブルの値を参照する方法
Access(アクセス)
-
11
ACCESS VBA でのエラー解決の根拠がわかりません エラー「イベントプロパティに指定した式・・
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access2000で文字列中の半角ス...
-
年月日を持つテーブルから年月...
-
EXCELのフィルタ処理みたいなの...
-
VBAからクエリのパラメータを設...
-
Accessのフォームで、空欄のレ...
-
Access レポート印刷するときに...
-
passwordが入れられません・・・・
-
アクセスで数値型のフィールド...
-
アクセスでテキストボックスの...
-
ExcelVBAでセルをクリックして...
-
データベースのINT型項目にNULL...
-
エクセルをACCESSのレポ...
-
Access2013 レポートを印刷する...
-
ACCESS「ンボ ボックスで選択し...
-
Word縦書きで左から右への行
-
レコードを保存するコード ア...
-
エクセルVBA オプションボタ...
-
ACCESSでコントロールソースの変更
-
Excelで入力したデータを自動的...
-
「フォームを作成できませんで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL*Loader
-
Accessのフォームで、空欄のレ...
-
年月日を持つテーブルから年月...
-
access 検索フォームで検索が...
-
ACCESS2003 でクエリの抽出条件...
-
アクセスのフォームにカンマ区...
-
アクセス マクロのメッセージ...
-
ACCESSのフォーム上で複数検索...
-
複数条件検索について
-
VBAからクエリのパラメータを設...
-
パススルークエリの動的パラメ...
-
AccessにてExcelファイル名にパ...
-
検索フォームで空白を抽出したい
-
ACCESS マクロで検索に...
-
Accessの検索フォームで。
-
クエリの条件式に複数のコンボB...
-
Accessのフォームで、当該デー...
-
Access テキストボックスとlik...
-
ACCESS どこがおかしいのか?
-
Access2000で文字列中の半角ス...
おすすめ情報