2011-08-14 18 views
0

私は、他の場所で設定したグローバル変数に基づいて入力マスクを変更する必要のあるフィールドをデータベースに持っています。ユーザー入力(変数を含む)の前のすべての文字がリテラルとして扱われるように、入力マスクを設定するにはどうすればよいですか?Accessの入力マスクで変数を使用するにはどうすればよいですか?

私はこの試みた:

Me.txtSomeControl.InputMask = varMyVariable & "00000;;*" 

をしかし、それは実行時になると、特別なinputmask文字である変数内の任意の文字がリテラル、特別ではないと解釈されています。つまり、varMyVariableがLLLの場合、入力マスク内のLLLだけで、私が意図している文字ではなく文字または数字を入力する必要があります。

変数を別々の文字に分割し、それぞれをエスケープする必要がありますか、それとも簡単な方法がありますか?

+1

だけで任意の変数なしであなたのテキストボックスに入力マスク作業を行い、その後、あなたがしたい部分をコピーして、それを保存しますあなたの変数。特殊文字をリテラルとして使用するときはいつでも、\文字を特殊文字の前に置く必要があるため、Accessはそれがリテラルであることを認識します。 – HK1

答えて

0
Me.txtSomeControl.InputMask = Chr(34) & varMyVariable & Chr(34) & "00000;;*" 

入力マスクのリテラルの周囲に二重引用符を入れる必要があります。それを行う最も簡単な方法(IMHO)は、二重引用符であるchr(34)を使うことです。だから、:

varMyVariable = "LLL" 
Me.txtSomeControl.InputMask = Chr(34) & varMyVariable & Chr(34) & "00000;;*" 

はに入力マスクを設定します: 「LLL」000000 ;; *

+0

優秀、ありがとう – emergence

関連する問題