- ベストアンサー
Access97→2000変換後にマクロが作動しない
Access97で作成したアプリケーションソフトをAccess2000に変換したところ、マクロのところがうまく作動しません。OSはXPです。 それもフォームを開く際に特定のレコードを指定するためのWhere条件式[コントロール名]=[Forms]![フォーム名]![コントロール名]を設定してあるのですが、ここがうまくゆきません。 すなわちAccess97だとこのマクロを実行するとコントロール名で数値を入力するように訊いてくるのですが、access2000変換後はいきなり数値入力されないで(=レコードを特定できないで)フォームが開くだけになってしまいます。 似たような別のマクロで、特定のレポートを開くマクロでは、この同じWhere条件式は、ちゃんと作動します。 なぜAcces97で作動するフォームのWhere条件式が、2000では作動しないのでしょうか? またこのような97→2000変換後の不具合はほかの部分でもおこるのでしょうか? 今のところ、動かした範囲では他の不具合は見あたらないのですが・・・ Accessのバージョンアップについて詳しい方、どなたかよろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
お礼
Dxakさま、imogasiさま、追加のご回答有り難うございます。 お二人様のご回答を読ませていただき、思い当たることがありました。私が97で設定していたWhere条件式は、 [顧客ID]=[Forms]![フォーム名][顧客ID] となっており、左右辺に同じ[顧客ID]があります。つまり「別のフォーム」でなく、一つのフォーム上でレコードを特定する顧客ID(数値)を入力しておりました。Where条件式の定義を再度確認すると、「フォームのレコードを制限するための値を持つ、別のフォームのコントロール名を指定する」となっています。 なので、97の方でうまく動いていたのは、お二人様にご指摘いただいたように、たまたま97がうまく解釈しており、それが2000ではできなくなったのではないかと思いました。 そこでWhere条件式の基本に戻って、別フォームから顧客IDを入力するように作り変えればうまくゆきそうな気がいたします。今すぐにはできませんが、取り急ぎ良いご指摘を頂いたことをお礼申し上げます。有り難うございました。