2017-12-06 16 views
0

私はリセットボタンに次のコードを持っている:私は、コンボボックスにだけ表示されリセット]ボタンをクリックするとMicrosoft Access 2016:(式を使用する)コンボボックスの既定値をButtonでリセットしますか?

=DLookUp("FieldName","TableName","strCriteria") 

Private Sub cmdReset_Click() 
    Dim ctl As Control 

    For Each ctl In Me.Controls 

     Select Case ctl.ControlType 
      Case acComboBox 
       ctl.Value = ctl.DefaultValue 
     End Select 
    Next 
    Me.Requery 
End Sub 

これは、コンボボックスのための私のデフォルト値がどのように見えるかです関数を実際に実行する代わりに、式を文字列=DLookUp("FieldName","TableName","strCriteria")として返します。私は別のデフォルト値=[cboName].[ItemData](#)を使ってみましたが、それは同じ問題です。 Formは完全に別の方法で動作します。

ご協力いただきありがとうございます。

答えて

0

ctl.DefaultValueは実際の計算されたデフォルト値ではなく、文字列のデフォルト値プロパティを返します。

可能な方法は、Evalを使用して実際のデフォルト値を計算することです。ただし、デフォルト値はVBAではなくAccess式であるため、スコープが異なり、リスト区切り設定などのロケール設定に影響されますので、これを実行すると多くの問題が発生することに注意してください。

ctl.Value = Eval(Right(ctl.DefaultValue, Len(ctl.DefaultValue) -1)) 
+0

はどうもありがとうございました:

あなたは次の行を使用することができます!それは完璧に働いた! – JSRambal

関連する問題