お世話になります。
F得意先登録の中にSF得意先課があります。
1つの得意先CDごとに複数の課CDがあります。
両方に自作のレコード移動ボタンを作りましたがサブフォームのコントロールが思うように動作しません。
SF得意先課に
txt得意先課件数(アクティブレコード件数/総件数)
cmb課CD(得意先CDに該当する課CDのみ表示)
cmb課CDの値集合ソースには
SELECT T得意先課.得意先課CD, T得意先課.得意先課名 FROM T得意先課 WHERE (((T得意先課.L得意先CD)=Forms!F得意先登録!得意先CD));
と設定してあります。
という名前のコントロールがあります。
F得意先登録を表示した時に、得意先ごとの件数を正しく表示させたくて、親フォーム(F得意先登録)のレコード移動時イベントに
-------------------------------------
Private Sub Form_Current()
Me!txt得意先件数 = Me.CurrentRecord & "/" & Me.Recordset.RecordCount
Forms![F得意先登録]![SF得意先課]![txt得意先課件数] = Forms![F得意先登録]![SF得意先課].CurrentRecord & "/" & Forms![F得意先登録]![SF得意先課]![txt得意先課件数].Recordset.RecordCount
Forms![F得意先登録]![SF得意先課]![cmb課CD].Requery
End Sub
---------------------
と記述しましたがF得意先登録起動時に、
件数表示のほうは、「実行時エラー438 オブジェクトは、このプロパティまたはメソッドをサポートしていません」
コンボの方は、「実行時エラー2455 指定した式にForm/Reportプロパティに対する正しくない参照が含まれます」
となってしまいます。
上手く行く方法をご教授下さい。よろしくお願いします。
No.4ベストアンサー
- 回答日時:
>Debug.Print TypeName(Forms![F得意先登録]![SF得意先課].Form)
>で止まります。
色々試してみましたが、同じエラーが再現できませんでした。
ひょっとしてAccess95ですか?こんな情報ありました。
http://support.microsoft.com/kb/403715/ja
ちょっと、視点を変えて、別の手法で・・・
親フォーム
Private Sub Form_Current()
Me!txt得意先件数 = Me.CurrentRecord & "/" & DCount("*", "T得意先")
End Sub
サブフォーム
Private Sub Form_Current()
Me![txt得意先課件数] = Me.CurrentRecord & "/" & DCount("*", "T得意先課", "L得意先CD=" & Forms![F得意先登録]![得意先CD])
Me![cmb課CD].Requery
End Sub
こんな感じで、サブフォームにプログラムを移動させるとどうなります?
補足:
DCountを使っているのは、エラー対策とは別件です。
RecordCountは、レコードセットを最後まで読み込まないと正しい値にならない場合があります。
「RecordCountでレコード数が取得できる」と言うのはよくある間違いなのでご注意ください。
RecordCountでレコード数を調べる場合は、事前にMoveLastなどで、最後のレコードまでアクセスしておく必要があります。
この回答への補足
venzou様、本当に本当に有難うございました。
補足のご指摘でもしやと思うところがありました。
親フォームではOpenイベントに
-----------------
Private Sub Form_Open(Cancel As Integer)
'件数取得の前処理とコンボの値クリア
Me.Recordset.MoveLast
Me.Recordset.MoveFirst
cmb得意先.Value = Null
End Sub
---------------
を記述してあります。
そして得意先が変わってたら、
サブフォームの数表示のテキストボックスと
検索コンボの値の更新をさせたくて
レコードの移動時イベントで
---------------
Me!txt得意先件数 = Me.CurrentRecord & "/" & Me.Recordset.RecordCount
の下に質問のコードを記述しましたが、
上手くいきませんでした。
venzou様ご教授の記述に変更したところ、上手く行きました。
とても嬉しいです。続く・・・御礼コメント
感謝々です。
本当に有難うございました。
まだまだ初心者ですが、これからもお時間の許す範囲でご指導下さい。
どうぞよろしくお願いいたします。
No.3
- 回答日時:
テーブルとフォームを作って検証してみましたが、
こちらではエラーは出ませんでした。(Access2000)
原因を絞り込むために、下記を実行してみてください。
親フォーム(F得意先登録)のレコード移動時イベント
Private Sub Form_Current()
Debug.Print TypeName(Forms![F得意先登録])
Debug.Print TypeName(Forms![F得意先登録]![SF得意先課])
Debug.Print TypeName(Forms![F得意先登録]![SF得意先課].Form)
Debug.Print TypeName(Forms![F得意先登録]![SF得意先課].Form.CurrentRecord)
Debug.Print TypeName(Forms![F得意先登録]![SF得意先課].Form.Recordset.RecordCount)
Debug.Print TypeName(Forms![F得意先登録]![SF得意先課]![cmb課CD])
Debug.Print TypeName(Forms![F得意先登録]![SF得意先課]![txt得意先課件数])
End Sub
正常ならイミディエイトウインドウに下記の様に表示されると思います。
Form_F得意先登録
SubForm
Form_SF得意先課
Long
Long
Combobox
Textbox
内容が違ったり、エラーなど出れば、補足してください。
あと別の原因として、データベースの破損を疑った方が良いかも知れません。
バックアップをとった後、最適化/修復や、新規のデータベースに内容をインポートして移す、など、破損対策を試してみて下さい。
この回答への補足
venzou様、
何度も質問にお付き合い下さり、また検証して頂いて大変感謝しております。
ご教授のコードを流して見た所、
Debug.Print TypeName(Forms![F得意先登録]![SF得意先課].Form)
で止まります。
「実行時エラー2455 指定した式にForm/Reportプロパティに対する正しくない参照が含まれます」となります。
イミディエイトウィンドウには
SubForm
Form_F得意先登録
のみ表示されます。
親「F得意先登録」を開きプロパティ画面を検証、名前は「SF得意先課」になっています。
データベースの最適化・修復も行いました。
新規のデータベースに内容をインポートして移しても結果は同じです。
何度もすみませんが、後はどこを調べて修正すればよいかご指導よろしくお願い致します。
No.2
- 回答日時:
>Formがもう一つ必要なのは、Dlookup関数などの中に参照式として記述する場合だと参考サイトに書いてありました。
仰るとおり、不要な場合もあるようですね。
(私は全て必要だと勘違いしてました。)
しかし、
>Forms![F得意先登録]![SF得意先課].CurrentRecord
Forms![F得意先登録]![SF得意先課].Form.CurrentRecord
>Forms![F得意先登録]![SF得意先課].Recordset.RecordCount
Forms![F得意先登録]![SF得意先課].Form.Recordset.RecordCount
ここには必要みたいですよ。これで試してみてください。
この回答への補足
venzou様、度々のアドバイスを有難うございます。
ご教授の通り、以下の記述に修正しましたが、End Subまで進むものの、、「実行時エラー2455 指定した式にForm/Reportプロパティに対する正しくない参照が含まれます」となり、フォームを開けません。
----------------------------
Forms![F得意先登録].[SF得意先課].[txt得意先課件数] = _
Forms![F得意先登録]![SF得意先課].Form.CurrentRecord & "/" & Forms![F得意先登録]![SF得意先課].Form.Recordset.RecordCount
-----------------------------
また、コンボの値更新の方は
----------------------------
Forms![F得意先登録].[SF得意先課].[cmb課CD].Requery
----------------------------
としたところ依然、「実行時エラー438 オブジェクトは、このプロパティまたはメソッドをサポートしていません」のままです。
コントロール名の前に、.form.としても同じ結果です。
何度も申し訳ありませんが、助けて下さい。
プロパティ等再確認する点があれば、そちらもご指摘下さい。
また、これをご覧になっている皆様でアドバイスがあればよろしくお願い致します。
No.1
- 回答日時:
サブフォーム内のコントロールを参照する場合は
Forms![F得意先登録]![SF得意先課].Form![txt得意先課件数]
こんな感じで、Form が必要だと思います。
とりあえず、これを修正してみてください。何箇所かあります。
お世話になります。
----------------------------
Forms![F得意先登録]![SF得意先課].Form![txt得意先課件数] = Forms![F得意先登録]![SF得意先課].CurrentRecord & "/" & Forms![F得意先登録]![SF得意先課].Recordset.RecordCount
Forms![F得意先登録]![SF得意先課].Form![cmb課CD].Requery
-------------------------------
でも結果は変わりません。
Formがもう一つ必要なのは、Dlookup関数などの中に参照式として記述する場合だと参考サイトに書いてありました。
他の原因のようですが、ご教授いただけますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessフォームで複数条件でフィールドの値を表示する方法 4 2022/07/21 10:47
- 査定・売却・下取り(車) 【高級車は車検ごとに乗り換えた方がお得ってどういう意味ですか?】フェラーリとか4600万 2 2023/06/03 20:48
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- その他(教育・科学・学問) 皆さんが数字が好きな理由教えてください! 私は数字が好きです。 何故なら嘘をつく際の道具に一番良いか 3 2022/11/15 20:05
- ポイントサービス・マイル お金を出さないとポイントをくれないって、なんか変 何かシステム上の意図があるのでしょうか? 6 2022/11/08 13:30
- Oracle sqlで質問です。 Aテーブルの登録番号をキーにBテーブルから確認番号を取得したいのですが、Bテーブ 4 2023/05/18 13:08
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- PHP PHPを使って、別サイトの一部を取得して表示したいのです。。 1 2023/01/18 21:45
- YouTube 以前に,チャンネルを YouTube の削除を受けていても・・・。 1 2023/06/17 01:57
このQ&Aを見た人はこんなQ&Aも見ています
-
カンパ〜イ!←最初の1杯目、なに頼む?
飲み会で最初に頼む1杯、自由に頼むとしたら何を頼みますか? 最初はビールという縛りは無しにして、好きなものを飲むとしたら何を飲みたいですか。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
「覚え間違い」を教えてください!
私はかなり長いこと「大団円」ということばを、たくさんの団員が祝ってくれるイメージで「大円団」だと間違えて覚えていました。
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
うちのカレーにはこれが入ってる!って食材ありますか?
カレーって同じルーから作っても、家庭によって入っているものや味が微妙に違っていて面白いですよね! 「我が家のカレーにはこれが入ってるよ!」 という食材や調味料はありますか?
-
ACCESS97 実行時エラー '2455'に関して
Access(アクセス)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
-
4
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
5
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
6
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
7
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
8
falseとtrue 0,1,-1 の意味が知りたいです
PowerPoint(パワーポイント)
-
9
親フォームからサブフォームのレコードソースを設定
Access(アクセス)
-
10
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
11
ACCESS──メインフォームでサブフォームのレコード件数をカウントしたい
Access(アクセス)
-
12
角丸四角形を描きたい
Excel(エクセル)
-
13
アクセスVBAのMe!と[ ]
Access(アクセス)
-
14
フォーム上の全てのコントロールを取得したい
Access(アクセス)
-
15
エラー(型が一致しません。)の対処方法
Visual Basic(VBA)
-
16
ACCESSのフォーム、開くんですが、見えないようにするには
Access(アクセス)
-
17
【ACCESS】フォーム名/コントロール名を文字列型変数で指定するには
Access(アクセス)
-
18
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
19
Access 複数フォームを開き、画面の最上面にしたいフォームをコント
その他(データベース)
-
20
Access VBAでタブコントロールで選択するタブをしていするには。
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クリックイベントなのに、2回ク...
-
ユーザーフォームを表示中にシ...
-
モーダルフォームとモードレス...
-
VBAでユーザーフォームを再表示...
-
Microsoft Formsの「個人情報や...
-
フォームウィンドウを最前面に...
-
ユーザーフォームのテキストボ...
-
エクセルVBAのフォームを最...
-
アクセス2013 フォームが...
-
VBA(エクセル)のユーザー...
-
VBA フォームに入力された...
-
テキストボックスでの右クリッ...
-
なぜエラーになるのでしょう?...
-
Access modalフォームからdialo...
-
EXCEL VBA ユーザーフォームの...
-
Access-VBAのPublic変数につい...
-
MSGBOXのフォント大きさ変更
-
検索のユーザーフォームの表示...
-
VBでフォームのイメージを印...
-
フォームアプリケーションをmai...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
クリックイベントなのに、2回ク...
-
エクセルVBAのフォームを最...
-
ユーザーフォームのテキストボ...
-
VBAでユーザーフォームを再表示...
-
Form_Load と Form_Activate の...
-
Microsoft Formsの「個人情報や...
-
モーダルフォームとモードレス...
-
Hideについて(.NET)
-
ACCESSのフォーム、開くんです...
-
フォームウィンドウを最前面に...
-
VBA(エクセル)のユーザー...
-
ユーザーフォーム上に現在日時...
-
Excelにて、ユーザーフォームで...
-
コントロールの存在確認
-
'ユーザーフォーム右上隅の[×...
-
MSGBOXのフォント大きさ変更
-
フォームのテキストボックスな...
-
Accessで、一つのフォーム画面...
おすすめ情報