プロが教えるわが家の防犯対策術!

Excel、vbaで次のような不都合が発生して困っております。
フォーム上のテキストボックスに日付(生年月日)を入力し、登録すると、画像のようにyyyy/mm/ddでテーブルに表示されます。
しかしデータを修正するためにフォームを再度開き、生年月日以外の欄を変更すると、テーブルの日付の形式が変わってしまいます。
以下はAccessの質問ですが、同じようにしても変わりませんでした。
https://answers.microsoft.com/ja-jp/msoffice/for …

また、生年月日の表示は以下のように記述しています。
Cells(row_no, 8) = Format(TextBox4.Text, "0000""/""00""/""00")

宜しくお願い致します。

「【vba】日付の形式が勝手に変わってしま」の質問画像

A 回答 (1件)

こんにちは



実際に何を行っているのか記載が無いので、以下は全て推測での回答になりますが・・・

>また、生年月日の表示は以下のように記述しています。
テキストボックス4の入力値をVBAで弄っていませんか?
入力値を変えてしまえば、同じ処理を行っても結果は違うものになります。

例えば、
 <入力値>   <ご提示の処理結果>
 19820609  → 1982/06/09
 1982/06/09 → 0003/01/11
となることから推測すると、入力値の欄(=テキストボックス4)の値を変更しているのではないかと思います。
(違う値に対して、異なる結果になるのは当たり前です)

対処法としては、
 ・入力の更新がされない欄に対しては、その項目の処理を行わない
 ・原因となる、入力値の書き換えは行わない
 ・入力値のチェックを行い、解釈できるものはそのように解釈する
などなどいろいろあるかと思います。

想像するところ、現状は日付のチェックは何も行っていないものと思いますが、存在しない日付等に関しても入力値のチェックは行う必要があるのではないでしょうか??
例えば、現状の入力欄に「1982/06/09」と入力すれば、違う日付(=0003/01/11)が表示されるものと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています