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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
Accessでのサブフォーム内の再クエリについて
Access(アクセス)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
-
4
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
5
2回目に画面のレコードセットの値が読めない
その他(データベース)
-
6
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
7
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
8
Access 複数フォームを開き、画面の最上面にしたいフォームをコント
その他(データベース)
-
9
Access 別フォームへの再クエリ(更新)がしたい。
その他(データベース)
-
10
AccessVBA RecordSourceのリセットについて
Access(アクセス)
-
11
親フォームからサブフォームのレコードソースを設定
Access(アクセス)
-
12
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
13
ACCSESS2013VBA フォームのレコードソースを変更する
その他(データベース)
-
14
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
15
ACCESSのBookmarkプロパティの使い方
その他(データベース)
-
16
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
17
大きなテーブルに対する問い合わせのODBC--呼び出しは失敗しました。」(Error.Number 3146)
その他(データベース)
-
18
ODBCの接続に失敗しました(3146)について
その他(Microsoft Office)
-
19
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
20
別テーブルからSELECTした値を持つ行を削除するSQLは?
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAからクエリのパラメータを設...
-
年月日を持つテーブルから年月...
-
Accessのフォームで、空欄のレ...
-
SQL*Loader
-
複数条件検索について
-
Access2010で複数条件でクエリ...
-
Accessで検索画面を作る方法
-
Access2000で文字列中の半角ス...
-
ACCESSのフォーム上で複数検索...
-
DBソフト ACCESS:検索フォー...
-
アクセスのフォームにカンマ区...
-
Access テキストボックスとlik...
-
Access2007のサブフォームのReq...
-
AccessにてExcelファイル名にパ...
-
access 検索フォームで検索が...
-
Access レポート印刷するときに...
-
YahooのIDがロックされてしまい...
-
passwordが入れられません・・・・
-
データベースのINT型項目にNULL...
-
アクセスで数値型のフィールド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL*Loader
-
検索フォームで空白を抽出したい
-
年月日を持つテーブルから年月...
-
Access2000で文字列中の半角ス...
-
VBAからクエリのパラメータを設...
-
Accessのフォームで、空欄のレ...
-
access 検索フォームで検索が...
-
AccessにてExcelファイル名にパ...
-
アクセス マクロのメッセージ...
-
複数条件検索について
-
Access2007のサブフォームのReq...
-
アクセスのフォームにカンマ区...
-
ACCESS2003 でクエリの抽出条件...
-
ACCESS マクロで検索に...
-
ACCESSのフォーム上で複数検索...
-
Accessの検索フォームで。
-
Access テキストボックスとlik...
-
パススルークエリの動的パラメ...
-
DBソフト ACCESS:検索フォー...
-
Accessでの電話番号下4桁での検...
おすすめ情報