No.1ベストアンサー
- 回答日時:
> なぜRecalcではだめなのか教えてください。
フォームにはRequeryメソッドとRecalcメソッドの双方が用意されているのに
対して、コントロールにはRequeryメソッドしかありません。
そのため、「メソッドまたはデータ メンバが見つかりません」とのエラーが発生
します。
では、なぜフォームでは双方を持たせているのにコントロールでは片方だけ
なのか、ということになるかと思いますが、フォームでは2つのメソッドの実行
結果が異なるのに対して、コントロールでは(仮に双方を組み込んでも)
全く同じ動作にしかならないと推測されます。
そのため、コントロールについてはRecalcは省略(?)された、ということでは
ないかと思います。
【フォームでの実行例】
ともに「テーブル1」をレコードソースとする「フォーム1」「フォーム2」を作成
します。
(ともに全レコード表示、帳票型)
双方のフォームを予め開いた状態で、フォーム1でレコードの追加や削除
を行った後、フォーム2でそれぞれRecalcとRequeryを行った場合、以下の
ような差が出ます:
Recalc:
フォーム1で追加したレコードは、表示されません。
(演算コントロールでの「=DCount("*", "テーブル1")」は、追加を反映)
Requery:
フォーム1で追加したレコードも、表示対象に追加されます。
(当然、演算コントロールも反映)
従って、他のフォーム等での追加の反映の可否・要否で、フォームに対する
RecalcとRequeryは使い分ける可能性があります。
一方、コントロールではこのような使い分けができる余地はまずない(*)ため、
Requeryだけでよいと判断されたものと思います。
*:コンボボックスやリストボックスの場合は、その余地があったかも、と。
VBE画面の右クリックメニューから表示できる「オブジェクト ブラウザ」で
検索を掛けると、指定した語句を含むメソッドや定数などが、どのオブジェクト
(フォームやコントロール等)に対して組み込まれているかも確認できますので、
興味があったら確認してみることをお勧めします。
>フォームにはRequeryメソッドとRecalcメソッドの双方が用意されているのに
対して、コントロールにはRequeryメソッドしかありません。
そのため、「メソッドまたはデータ メンバが見つかりません」とのエラーが発生します。
これが原因なのですね!詳しい説明ありがとうございます。
オブジェクト ブラウザも確認してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Excel(エクセル) 【マクロ】PasteSpecialメソッドにて、コードが動かない理由が分かりません 2 2023/08/15 20:47
- Visual Basic(VBA) ユーザーフォームで銀行に対応した支店コードの入力ができません Sheet1のA列に銀行名、B列に銀行 5 2022/07/28 17:50
- Visual Basic(VBA) Excelマクロでセルに値が入力されたら実行する 5 2023/08/06 11:03
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Access サブフォームでの選択行の取得
その他(データベース)
-
どこにもフォーカスを当てたくない
Access(アクセス)
-
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
-
4
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
5
Access終了時にマクロまたはVBAの実行したい
その他(Microsoft Office)
-
6
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
7
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
8
サブフォームのデータを保存する方法
その他(Microsoft Office)
-
9
Accessエラー 複雑すぎるために評価できません
Excel(エクセル)
-
10
Accessを開きなおすとテキストボックスの値がエラー#Name?になる
その他(データベース)
-
11
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
12
FindFirst を複数条件で検索
Visual Basic(VBA)
-
13
選択したチェックボックスのみチェックを入れたいのですが
その他(データベース)
-
14
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
15
角丸四角形を描きたい
Excel(エクセル)
-
16
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
17
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
18
アクセスでの項目追加について(アクセス初心者です)
SQL Server
-
19
レポートのコントロールソースを条件により変えたい
その他(データベース)
-
20
Accessでブレークポイントを設定してないのに一時停止してしまう
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
Form_Load と Form_Activate の...
-
モーダルフォームとモードレス...
-
【VBAユーザーフォームで閉じる...
-
ユーザーフォームのテキストボ...
-
ユーザーフォームのラベルに時...
-
ユーザーフォーム上に現在日時...
-
ExcelVBAのユーザーフォームの...
-
VBAでユーザーフォームを再表示...
-
デリゲートで子から親フォーム...
-
ACCESSのフォーム、開くんです...
-
標準モジュールからフォームを...
-
Accessで、一つのフォーム画面...
-
ユーザーフォームのラベルに時...
-
VBAのテキストフォームの折り返...
-
'ユーザーフォーム右上隅の[×...
-
フォームを表示してからメッセ...
-
フォームの二重起動の阻止
-
picturebox の BackColor は透...
-
エクセルVBA フォーム上でOnkey...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
エクセルVBAのフォームを最...
-
ユーザーフォームのテキストボ...
-
クリックイベントなのに、2回ク...
-
モーダルフォームとモードレス...
-
Form_Load と Form_Activate の...
-
VBAでユーザーフォームを再表示...
-
Hideについて(.NET)
-
ACCESSのフォーム、開くんです...
-
MSGBOXのフォント大きさ変更
-
Excelにて、ユーザーフォームで...
-
【VBAユーザーフォームで閉じる...
-
ユーザーフォーム上に現在日時...
-
VBA(エクセル)のユーザー...
-
access2021 更新前に処理をしたい
-
Accessで、一つのフォーム画面...
-
コントロールの存在確認
-
Microsoft Formsの「個人情報や...
-
複数モニタ使用時のフォームの...
おすすめ情報