お世話になります。
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回鬼退治に失敗したところから始まる新作昔話「リベンジオブ桃太郎」にはこんなシーンがある
-
洋服何着持ってますか?
洋服を減らそうと思っているのですが、何着くらいが相場なのかわかりません。
-
「これいらなくない?」という慣習、教えてください
現代になって省略されてきたとはいえ、必要性のない慣習や風習、ありませんか?
-
ACCESS97 実行時エラー '2455'に関して
Access(アクセス)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
-
4
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
5
親フォームからサブフォームのレコードソースを設定
Access(アクセス)
-
6
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
7
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
8
falseとtrue 0,1,-1 の意味が知りたいです
PowerPoint(パワーポイント)
-
9
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
10
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
11
ACCESS──メインフォームでサブフォームのレコード件数をカウントしたい
Access(アクセス)
-
12
角丸四角形を描きたい
Excel(エクセル)
-
13
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
14
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
15
Access VBAでタブコントロールで選択するタブをしていするには。
Access(アクセス)
-
16
Access 複数フォームを開き、画面の最上面にしたいフォームをコント
その他(データベース)
-
17
スクロールバーをVBAで操作したい
Access(アクセス)
-
18
Accessの実行時エラーについて
その他(データベース)
-
19
アクセスVBAのMe!と[ ]
Access(アクセス)
-
20
選択したチェックボックスのみチェックを入れたいのですが
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
Microsoft Formsの「個人情報や...
-
ユーザーフォームのテキストボ...
-
EXCEL VBA ユーザーフォームの...
-
ユーザーフォームのラベルに時...
-
フォームウィンドウを最前面に...
-
VBAで画像を表示する方法
-
VBAでユーザーフォームを再表示...
-
Form_Load と Form_Activate の...
-
クリックイベントなのに、2回ク...
-
モーダルフォームとモードレス...
-
エクセルVBAのフォームを最...
-
子フォームでDB更新後、親フォ...
-
Formサイズの最小値
-
vb2008にてDefaultCellStyleが...
-
パソコンの画面に合わせてユー...
-
フォームを画面のど真ん中に表...
-
ブックをCloseまたはQuitで閉じ...
-
Excel VBA ユーザーフォーム 複...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
VBAでユーザーフォームを再表示...
-
ユーザーフォームのテキストボ...
-
クリックイベントなのに、2回ク...
-
Hideについて(.NET)
-
ACCESSのフォーム、開くんです...
-
コントロールの存在確認
-
Microsoft Formsの「個人情報や...
-
モーダルフォームとモードレス...
-
VBA(エクセル)のユーザー...
-
Form_Load と Form_Activate の...
-
フォームウィンドウを最前面に...
-
エクセルVBAのフォームを最...
-
アクセス2013 フォームが...
-
EXCEL VBA ユーザーフォームの...
-
テキストボックスやラベルのクリア
-
ユーザーフォームのコピー?
-
モードレスでユーザーフォーム...
-
C#でボタンクリックをキャンセル
おすすめ情報