プロが教える店舗&オフィスのセキュリティ対策術

Accessで入力フォームを作成しています。

参照式が突然「#Name?」となってしまい表示されません。
また、「イベントプロパティに指定した式クリック時でエラーが発生しました:オブジェクトまたはクラスがこのイベントセットをサポートしていません」というメッセージの解決方法がわかりません。


作成したテーブルは次の2つです(見積書作成用のデータベースを作ろうとしています)。
・見積基本情報テーブル
・見積明細テーブル

見積基本情報テーブルは、得意先名称や担当者等の基本情報を入力します。
見積明細テーブルは、使用する材料の明細、単価、金額等を入力します。

【質問1】
見積明細テーブルに入力用するためのフォームを作成しました。
見積番号(テキスト形式)をキーに以下の参照式を入れています。
=DLookUp("[名称]","見積基本情報テーブル","[見積番号]='" & [見積番号] & "'")

今までは参照できていたのに、突然、「#Name?」となってしまい表示されません。
(他のフォームにも同じ関数を入れていますが、そのフォームは正しく参照ができています。)
何が原因かわかりません。


【質問2】
また、フォームに「明細追加ボタン」を作成し、以下のコードで新しいレコードの追加&見積明細Noを自動で採番できるようにしました。

DoCmd.GoToRecord , , acNewRec
Me![見積明細No].DefaultValue = DMax("[見積明細No]", "[見積明細テーブル]", "見積番号 =" & "'" & Me![見積番号] & "'") + 1

はじめはうまくいっていたのに、「イベントプロパティに指定した式クリック時でエラーが発生しました:オブジェクトまたはクラスがこのイベントセットをサポートしていません」というメッセージが出るようになってしまいました。

これらのエラーが出るようになった直前に追加した作業は、単価×数量を計算した値を「金額」欄に入れるマクロ(「値の代入」)です。

基本的なエラーなのかもしれませんが、初心者なので、自分では何がいけないのかが全くわかりません。(市販の本を読みながら作業をしています)

よろしくお願いします。

A 回答 (2件)

>=DLookUp("[名称]","見積基本情報テーブル","[見積番号]='" & [見積番号] & "'")


ここは
=DLookUp("[名称]","見積基本情報テーブル","[見積番号]='" & Me!見積番号 & "'")
とかサブフォームなら
=DLookUp("[名称]","見積基本情報テーブル","[見積番号]='" & Me!サブフォームコントロール名!見積番号 & "'")
になるかと思います。
状況が不明なので見当違いな回答かも?

Me![見積明細No].DefaultValue = DMax("[見積明細No]", "[見積明細テーブル]", "見積番号 =" & "'" & Me![見積番号] & "'") + 1

一番目の質問と重複しますが、なぜ見積番号のデータ型をテキスト型にしているのでしょう?
とくに理由が無い限り長整数型にしておいた方が宜しいかと。
見積明細No もテキスト型ってことは無いですよね?

また、開発中に簡単に壊れる場合があります。
随時世代バックアップを取り、新規ファイルを作成してそこに全てインポートして
余計なゴミをとって行った方がいいですよ。
それと、オプションの中にある『名前の自動修正オプション』は切っておいた方が
不可思議なトラブルから解放される場合が多くなります。

この回答への補足

見積番号をテキスト型にしているのは、過去のデータが「0」で始まるからです。
(管理上、過去のデータから連番にした方が分かりやすいと思いまして)

見積明細Noは長整数型です。

=DLookUp("[名称]","見積基本情報テーブル","[見積番号]='" & Me!見積番号 & "'")
を入力してみましたが、
=DLookUp("[名称]","見積基本情報テーブル","[見積番号]='" & [Me]![見積番号] & "'")
と修正されてしまい、やはりうまくいきませんでした。

補足日時:2012/03/05 22:23
    • good
    • 0
この回答へのお礼

>オプションの中にある『名前の自動修正オプション』は切っておいた方が不可思議なトラブルから解放される場合が多くなります。

↑アドバイスありがとうございます。このような機能があることを知らなかったので、勝手に名前を修正されて困っていました。

新しいテーブルで作成しなおしてみます。

お礼日時:2012/03/05 22:23

>=DLookUp("[名称]","見積基本情報テーブル","[見積番号]='" & [Me]![見積番号] & "'")


>と修正されてしまい、やはりうまくいきませんでした。
何故なんでしょ?Meが[]で括られるの。

>新しいテーブルで作成しなおしてみます
では無くて全部マルッと新規MDB(ACCDB)にインポートするんですよ。
そして名前の自動修正オプションは外すと。

それでも解決しなかったら、
事情が許せばの話ですが、適当なオンラインストレージにアップして
診てもらうのが早道かも知れません。
その際には、個人情報に関するもの
そちらのバージョンが不明ですが2010なら
オプションのカレントデータベースの中に
ファイルを保存するときにファイルのプロパティから個人情報を削除する
にチェックを入れるとともに
テーブルの中身を適当なダミーデータに置き換えて
(レコードは2・3あれば可)

残念なことにマルチポストだったんですね。
[Tips]マルチポストが嫌われる理由~なぜマルチポストは問題か?
http://stakasaki.at.webry.info/200512/article_3. …

私からは以上です。
    • good
    • 0
この回答へのお礼

「マルチポスト」がマナー違反とは知りませんでした。
不愉快な思いをさせてしまい申し訳ありません。

人によって見るサイトが決まっているのかな?
という単純な理由から、多くご意見を伺えるように投稿しました。

以後気を付けます。
アドバイスありがとうございました。

お礼日時:2012/03/06 10:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!