0

コンボボックスを含むAccess2000フォームがあります。コンボボックスは、テーブルのフィールドにバインドされています。テーブルの値がnullの場合、レコードをダーティにすることなく、コンボボックスにデフォルト値を設定したいと思います。defaultValueの設定は、それが新しいレコードでない限り機能しません。値を設定しようとすると、「このオブジェクトに値を割り当てることはできません」というエラーが表示されます。

何かご意見は?

Me.cboName.Value = Me!cboName.Value'これにより、上記のエラーが発生します

Me.cboName.DefaultValue = Me!cboName.Value'これは既存のレコードには何もしません。

4

1 に答える 1

0

DefaultValueは、NEW RECORD が作成されるときに入力されます。既存のレコードの値を表示するには...これを達成するために考えられる最も簡単な方法は、バインドされていないコントロールを使用することです。たとえば、使用しているフィールドが Current イベントの theName である場合、次のようなコードを使用します。

Private Sub Form_Current()
     me.cboName.value = Nz(me.theName.value,defaultValue)
End Sub

defaultValue は、以前に決定したデフォルト値です。これにより、名前に対して 2 つのコントロールが必要になります。1 つはバインドされた値で、もう 1 つは表示された値です。これを行うと、theName変更時に更新するコードも追加する必要がありますcboName

Remou が示唆したように、これが本当にやりたいことなのか自問する必要があります。

于 2012-09-11T18:58:50.657 に答える