こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

AllowDesignChanges制御できない

AllowDesignChangesがVBAで制御できない理由は?

アクセスのフォームで、
Private Sub Form_Open(Cancel As Integer)
Me.AllowDesignChanges = False 'デザイン変更の許可をしない
End Sub
を実行すると、
実行時エラー"2448" このオブジェクトに値を代入することができません。
になります。

でもAllowDesignChangesのヘルプを見ると、
「"AllowDesignChanges/デザイン変更の許可" プロパティは、
フォームのプロパティ シートまたは Visual Basic を使って設定できます。」
と書いてあります。

という事は、VBAで操作できるって事ですよね?
それなのになぜエラーになるのでしょうか?

投稿日時 - 2012-12-15 08:09:37

QNo.7845675

困ってます

質問者が選んだベストアンサー

AllowDesignChanges について知らなかったので見てみました。

Private Sub Form_Open(Cancel As Integer)
Me.AllowDesignChanges = False 'デザイン変更の許可をしない
End Sub
↑これは自分自身を変更しようとしているのでエラーになってるかと。

標準モジュール・他のフォーム・イミディエイトウィンドウからなら
変更が出来ます。
イミディエイトウィンドウからは
フォーム 仮に名前を FM とすると
これをフォームビューで開いておいてから
?forms!FM.AllowDesignChanges
でTrue/False の確認が出来ます。
変更するには
デザインビューで開いてから
Docmd.Openform "FM" , Acdesign
forms!FM.AllowDesignChanges = false
のようにすれば可

なお、False にしてもデザインの変更は出来てしまいます? (・・?
何が変更になったのか・・というと
フォームビューの時にプロパティシートが出て来なくなって
その意味で変更不可になるようです。(他にも有るかもしれません)

また、Access2010 では 非表示になって使用が出来なくなりました。
新たに加わったレイアウトビューでやってくれ・・ということの様です。
以下ヘルプより抜粋
Microsoft Office XP (2002) と比較した Microsoft Access 2010 オブジェクト モデルの変更点の要約を次に示します。
メモ
以下の表では、オブジェクト モデルのメンバーの状態が次のように表記されています。

非表示 メンバーは非推奨となっており、コードでの使用はお勧めできません。
削除 メンバーはオブジェクト モデルから削除されました。
変更 メンバーの構文が変更されています。
Form
プロパティ 状態
AllowDesignChanges 非表示

投稿日時 - 2012-12-15 11:28:59

お礼

イミディエイトウインドウでも出来るのですか。
バージョンによって変わってくるようですね。

投稿日時 - 2012-12-18 20:12:51

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

> という事は、VBAで操作できるって事ですよね?
> それなのになぜエラーになるのでしょうか?

フォームをデザインビューで開けば可能、ということです。

 DoCmd.OpenForm "フォーム1", acDesign
 With Forms("フォーム1")
  .AllowDesignChanges = False
  ' その他の設定
  ' ・・・
 End With

もちろん、現在フォームビューで開かれているフォームのコードで
フォームをデザインビューで開き直して
自分を変更することはは不可能です。

投稿日時 - 2012-12-15 11:24:32

お礼

出来ました。

>現在フォームビューで開かれているフォームのコードで

Form_Openではできませんでした。

投稿日時 - 2012-12-18 20:12:37

あなたにオススメの質問