• ベストアンサー

ControlTypeの切り替えはデザインビューでなければ不可能か?

フォームビューのときにvbaでコントロールのタイプを テキスト⇔コンボに切り替えたいのですが フォーム1.テキスト0.ControlType = 109 を実行するとエラーになり 「このプロパティを設定するにはデザインビューで開きます」 となります。 しかし、フォームビューの状態でとあるイベントを実行すると テキスト⇔コンボに切り替えたいのですが やはり不可能でしょうか?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>ControlTypeの切り替えはデザインビューでなければ不可能か? 当然不可能でしょう。 ただし http://support.microsoft.com/kb/135381/ja にあるように、プログラムで変更できるようです。 アクセスVBAでやるとき判りやすいように下記に私がやってみた例を挙げます。 私の場合は、偶々 フォームはフォーム9 コンボはコンボ3 で、コマンドボタン1つコマンド8でやってみると Private Sub コマンド8_Click() If Forms!フォーム9.CurrentView <> 0 Then DoCmd.OpenForm "フォーム9", _ acDesign If Forms!フォーム9!コンボ3.ControlType = acComboBox Then Forms!フォーム9!コンボ3.ControlType = acTextBox Else Forms!フォーム9!コンボ3.ControlType = acComboBox End If End Sub コンボがテキストボックスに変わりました。 あと見出し的な文言のラベルのコンボ3 もテキストXXに変える必要があるのですが、略。

bkshfu
質問者

お礼

一度デザインビューに切り替えるのですね。 大変参考になりました。

その他の回答 (1)

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

テキストボックス と コンボボックスの両方を作成しておき イベントで Visible を切り替えるようにしてはいかがですか?

bkshfu
質問者

お礼

そのような方法もあるのですね。 大変参考になりました。

関連するQ&A