- ベストアンサー
VBAで制御できない理由は?
- AllowDesignChanges制御できない理由を解説します。
- AccessのフォームでAllowDesignChangesの制御を試みるとエラーが発生します。
- AllowDesignChangesはVBAでは操作できないため、エラーが発生するのです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
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 非表示
その他の回答 (1)
- m3_maki
- ベストアンサー率64% (296/460)
> という事は、VBAで操作できるって事ですよね? > それなのになぜエラーになるのでしょうか? フォームをデザインビューで開けば可能、ということです。 DoCmd.OpenForm "フォーム1", acDesign With Forms("フォーム1") .AllowDesignChanges = False ' その他の設定 ' ・・・ End With もちろん、現在フォームビューで開かれているフォームのコードで フォームをデザインビューで開き直して 自分を変更することはは不可能です。
お礼
出来ました。 >現在フォームビューで開かれているフォームのコードで Form_Openではできませんでした。
お礼
イミディエイトウインドウでも出来るのですか。 バージョンによって変わってくるようですね。