次の方法で共有

DoCmd.OpenFormの引数DataMode の引数指定有り無しでなぜ異なる?

Anonymous
2013-10-18T02:57:23+00:00

DoCmd.OpenFormの引数 DataMode には acFormReasOnly とか acFormEdit とかありますが、 acFormEdit  を指定してDoCmd.OpenFormを使ってフォームを開くと 下の例のように 新規レコード用の空白行が表示されます。

このフォームの データプロパティ データの追加の許可 は 「いいえ」 に設定してあります。

しかし、この DataMode を指定せず(空白にて)に DoCmd.OpenForm を使うと 開いたフォームに空白行はありません。解説本を読むと DataMode のデフォルトは acFormEdit だと説明されています。 

また、DoCmd.OpenForm acFormEdit を使ってフォームを開いて新規レコード用の空白行が表示されている状態で、これをデザインビューにして すぐに(何もせず)フォームビューに戻すと 空白行は消え去って(表示されない状態)しまいます。

質問事項:

(1) DataMode の既定値は acFormEdit だと説明されていますが、 指定しないのと 積極的に既定値を設定することに 相違があるというのはなぜなのでしょうか?

(2)「既定値」の意味はそういうことではないということでしょうか?(デフォルトの意味を誤解釈しているでしょうか?)

よろしくお願いします。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2013-10-18T04:01:42+00:00

しかし、この DataMode を指定せず(空白にて)に DoCmd.OpenForm を使うと 開いたフォームに空白行はありません。解説本を読むと DataMode のデフォルトは acFormEdit だと説明されています。 

その解説本が間違っていますね。

Accessのヘルプで確認すると、

既定値は acFormPropertySettings です。

となってます。

ただ、そのヘルプのAcFormOpenDataMode 列挙 の解説では、

acFormPropertySettings -1 ユーザーはフォームのプロパティのみ変更できます。

となってますがか、これも間違いのような(汗)。

フォームのプロパティの設定で開く、が正しいですよね。

ということで、教訓 解説本やヘルプにも間違いはある

この回答は役に立ちましたか?

0 件のコメント コメントはありません

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2013-10-18T04:31:32+00:00

    hatena19 さん、

    なるほど、 よくわかりました。

    ところで おっしゃるように acFormPropertySetting がフォームのプロパティのみ変更できます というのは誤訳(あるいは間違い)ですね。 プロパティのみ変更できる というマイナーなものが 既定値になるはずがないですし、 FormPropertySetting に従うというのがずっと素直な解釈。私の買った解説本にも プロパティのみ変更できます と書いてありますが、ACCESSのヘルプの通りに書いたということらしいですね。

    ご説明ありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません