これは Access 自体とは何の関係もありません。SPACE
どの VBA でも、テキストが、HYPHEN
、または で区切られている場合、format 関数は次のように動作しますDASH
。したがって、この
Debug.Print Format("093 0005", "0000000000000")
Debug.Print Format("093/0005", "0000000000000")
Debug.Print Format("093-0005", "0000000000000")
戻ります0000000034090
それを日付または数値に変換しようとし、それが有効な日付または数値である場合は、それに相当する数値を表示します。そして、それが日付または数値に相当するものでない場合は、そのまま残します。この理由は、Format
関数が値の「フォーマット」を確認できず、文字列として受け取るためだと思います。それは言っているのに似ていますFormat("Blah", "0000000000000")
。Format
関数が としてフォーマットすることを期待しないことは明らかです000000000blah
。
残念ながら、なぜ Format 関数がこのように動作するのかを説明している MS ナレッジ ベースの記事を見つけることができませんでした。
これを回避するために過去に発見した唯一の方法は、VAL
関数を使用して数値に変換することです。そう
Debug.Print Format(Val("093 0005"), "0000000000000")
望ましい結果が得られます0000000930005
HYPHEN
ただし、数値が aまたは aで区切られているDASH
場合、VAL
関数は役に立ちません。そのためには、またはをREPLACE
に置き換えるために使用する必要があります。ただし、またはを含む数値をフォーマットすることはないと思います。HYPHEN
DASH
SPACE
HYPHEN
DASH