
こんにちは。いつもこちらで勉強をさせていただいております。
早速ですが、次の現象で困っております。
Access2000ベースで開発されたDB内の、あるフォームには当該フォーム内のレコード数を表示するテキストボックスがあります。
このコントロールソースは次のとおりです。
=[RecordsetClone].[RecordCount]
このDBをAccess2000で開くと正常にレコード数が表示されるのですが、Access2007で開くと「#Name?」となって表示されません。
因みにAccess2007の参照設定は「Microsoft DAO 3.6 Object library」にチェックを入れております。
何とかAccess2007でも正常に表示させたいのです。
どなたか解決方法を教えいただけませんか。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
手元のAccess97とAccess2003で確認したところ、現象を確認できました。
どうやら、Access2000~Access2003の間で、コントロールソースやプロパティシートでの
DAOオブジェクトの参照についての仕様変更(つまり使用可→使用不可)があったようです。
(なお、No.1の方が参考に挙げているサイトの内容は、VBE上でのことではないでしょうか)
解決策としては・・・
a)VBA関数であればコントロールソースでも問題なく使用できるので、レコードソースが
テーブルやクエリなのでしたら、DCount関数で表示する
b)ユーザー関数を定義して、その関数で表示する
(関数内でRecordSetCloneを参照すれば、SQL文によるレコードソースにも対応可)
といった方法があるかと思います。
【「a)」の場合】
コントロールソースに以下の式を入力:
=DCount("*","レコードソース名")
【「b)」の場合】
1)そのフォームのモジュールにユーザー関数を設定(以下の3行をCopy&Pasteで可):
Private Function MyRecordCount() As Long
MyRecordCount = Me.RecordSetClone.RecordCount
End Function
'※標準モジュールではなくフォームへの設置にしたのは、関数を単純化するため。
' (フォームを引数にして標準モジュールで定義した場合は別フォームでの使い回しも可能)
2)コントロールソースに以下の式を入力:
=MyRecordCount()
・・・以上です。
この回答への補足
早速のご回答有難うございました。
“a)”の手法が簡単そうだったので試したところ、正常に表示されました。
今後は勉強のために“b)”も試してみたいと思います。
詳しく教えていただき本当にありがとうございました。
本当に助かりました。
今後ともよろしくお願いいたします。
No.1
- 回答日時:
の最初(一番下)のレス。
要約すると
--------
その書き方は、すべてのバージョンで通用しない(意訳:それは2007では受け付けない)
Forms!フォーム名.RecordsetClone.RecordCount
か
Me.RecordsetClone.RecordCount
と書け
--------
って事。
この回答への補足
助言をいただき感謝いたします。
早速実行しましたが、同じエラーが発生しています。
変更前
=[RecordsetClone].[RecordCount]
変更後
=[Me].[Recordset].[RecordCount]
=[Forms!フォーム名].[Recordset].[RecordCount]
何か他の方法はないでしょうか?
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの表示形式について教えてください あるセルの「A」という値と、別のセルの「B」という値を組み 4 2023/02/21 21:55
- Access(アクセス) Dlookupにエラーがでてしまう 1 2022/10/31 14:35
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- フランス語 フランス語文章の構造について 1 2022/04/27 18:08
- バッテリー・充電器・電池 quickcarge3.0の確認方法 2 2023/06/13 07:38
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- ノートパソコン 東芝 ダイナブック バッテリー残量 2 2023/02/11 10:39
- タブレット タブレットを常時ACコンセントからusb接続 することは危険でしょうか? 4 2022/12/11 10:31
- Excel(エクセル) エクセルのセルの、そのセルから左に見ていって、文字があったらそのセルの所定の行を表示する方法 7 2022/04/25 09:11
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスでテーブルの変更内容...
-
ACCESSのフォームからデータの...
-
選択したチェックボックスのみ...
-
アクセスのフォームのビューが...
-
ADOでRecordsetオブジェクトを...
-
ACCESSで入力フォームをHTMLフ...
-
他フォームのチェックボックス...
-
accessの自動更新処理をできな...
-
Accessのフォーム上にレコード...
-
Access runtimeでテーブル、ク...
-
Access上でホイールマウスの機...
-
テキストボックスの値をテーブ...
-
アクセス 0以外をカウントす...
-
Access2002 フォームを閉じるた...
-
Access:yesの時は画像を表示、...
-
Accessのハイパーリンクのパス...
-
作成途中のフォームが開かない...
-
Mdbフォイルを違うバージョンの...
-
Access2007 フォーム上データの...
-
アクセス非連結フォームのテキ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSのフォームからデータの...
-
アクセスのフォームのビューが...
-
Accessのフォーム上にレコード...
-
選択したチェックボックスのみ...
-
Access 別フォームへの再クエ...
-
accessの自動更新処理をできな...
-
ACCESSで入力フォームをHTMLフ...
-
Access2002 フォームを閉じるた...
-
アクセスでの項目追加について...
-
アクセスでテーブルの変更内容...
-
ADOでRecordsetオブジェクトを...
-
Accessフォームのテキストボッ...
-
Accessのフォームで作業領域を...
-
アクセス 0以外をカウントす...
-
他フォームのチェックボックス...
-
access レコードソースを選択...
-
Accessのフォームに表示...
-
入力途中の入力した値をすべて...
-
Accessのフォーム画面について
-
ACCESSでのテキストボックスの...
おすすめ情報