- ベストアンサー
AccessのDLOOKUP関数とVBAを使用した入力フォームのエラー解決方法
- Accessで入力フォームを作成している際に、参照式が突然「#Name?」となって表示されなくなりました。このエラーの原因と解決方法を教えてください。
- また、フォームに「明細追加ボタン」を作成し、新しいレコードの追加と見積明細Noの自動採番を行っていますが、クリック時に「オブジェクトまたはクラスがこのイベントセットをサポートしていません」というエラーが発生します。このエラーの対処方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>=DLookUp("[名称]","見積基本情報テーブル","[見積番号]='" & [見積番号] & "'") ここは =DLookUp("[名称]","見積基本情報テーブル","[見積番号]='" & Me!見積番号 & "'") とかサブフォームなら =DLookUp("[名称]","見積基本情報テーブル","[見積番号]='" & Me!サブフォームコントロール名!見積番号 & "'") になるかと思います。 状況が不明なので見当違いな回答かも? Me![見積明細No].DefaultValue = DMax("[見積明細No]", "[見積明細テーブル]", "見積番号 =" & "'" & Me![見積番号] & "'") + 1 一番目の質問と重複しますが、なぜ見積番号のデータ型をテキスト型にしているのでしょう? とくに理由が無い限り長整数型にしておいた方が宜しいかと。 見積明細No もテキスト型ってことは無いですよね? また、開発中に簡単に壊れる場合があります。 随時世代バックアップを取り、新規ファイルを作成してそこに全てインポートして 余計なゴミをとって行った方がいいですよ。 それと、オプションの中にある『名前の自動修正オプション』は切っておいた方が 不可思議なトラブルから解放される場合が多くなります。
その他の回答 (1)
- nicotinism
- ベストアンサー率70% (1019/1452)
>=DLookUp("[名称]","見積基本情報テーブル","[見積番号]='" & [Me]![見積番号] & "'") >と修正されてしまい、やはりうまくいきませんでした。 何故なんでしょ?Meが[]で括られるの。 >新しいテーブルで作成しなおしてみます では無くて全部マルッと新規MDB(ACCDB)にインポートするんですよ。 そして名前の自動修正オプションは外すと。 それでも解決しなかったら、 事情が許せばの話ですが、適当なオンラインストレージにアップして 診てもらうのが早道かも知れません。 その際には、個人情報に関するもの そちらのバージョンが不明ですが2010なら オプションのカレントデータベースの中に ファイルを保存するときにファイルのプロパティから個人情報を削除する にチェックを入れるとともに テーブルの中身を適当なダミーデータに置き換えて (レコードは2・3あれば可) 残念なことにマルチポストだったんですね。 [Tips]マルチポストが嫌われる理由~なぜマルチポストは問題か? http://stakasaki.at.webry.info/200512/article_3.html 私からは以上です。
お礼
「マルチポスト」がマナー違反とは知りませんでした。 不愉快な思いをさせてしまい申し訳ありません。 人によって見るサイトが決まっているのかな? という単純な理由から、多くご意見を伺えるように投稿しました。 以後気を付けます。 アドバイスありがとうございました。
お礼
>オプションの中にある『名前の自動修正オプション』は切っておいた方が不可思議なトラブルから解放される場合が多くなります。 ↑アドバイスありがとうございます。このような機能があることを知らなかったので、勝手に名前を修正されて困っていました。 新しいテーブルで作成しなおしてみます。
補足
見積番号をテキスト型にしているのは、過去のデータが「0」で始まるからです。 (管理上、過去のデータから連番にした方が分かりやすいと思いまして) 見積明細Noは長整数型です。 =DLookUp("[名称]","見積基本情報テーブル","[見積番号]='" & Me!見積番号 & "'") を入力してみましたが、 =DLookUp("[名称]","見積基本情報テーブル","[見積番号]='" & [Me]![見積番号] & "'") と修正されてしまい、やはりうまくいきませんでした。