出来合いの簡易なaccessVBAのプログラムを使用しています。日付が「平成14年1月25日」の形がフォームの標準形なのですが、誤って「01月25日」と入れると入力されたものがおかしくなってしまいます。
そこで、フォームで「01月25日」や「11月05日」のような数値を入れて次のフォームに移ろうとするとメッセージを出すか勝手に修正するかの方法をとりたいのですが、VBAの超初心者にも簡単な方法を教えていただけないでしょうか。
#「フォーム」とは文字・数値を入力するボックスのこと。(正式名称がすぐに思い出せず。(-_-; )
#社内では、他のプログラムではほとんど「2001/01/25」のように「0」が入るので間違いやすい。
No.2ベストアンサー
- 回答日時:
Accessのフォーム上のテキストボックスでは、書式および定型入力で簡単に入力形式を設定できます。
ご質問の対応方法として、該当するテキストボックスのプロパティシートの「書式」の項に「ggge\年m月d日」と記載することで上記のように「01月25日」や「11月05日」を入力しても「平成14年1月25日」の形式に自動変換されます。これは、年、月、日にテキストボックスを分けた場合も同様です。
ちなみに、日付formatにおいて、y、m、dの1文字は1桁の場合には1文字に2桁の場合には2文字に表示されます。
但し、これらはユーザー側の認識を容易にするもので、データベース上は基準日付(何時だったかは忘れました)からのシリアル値を持っているだけに過ぎないため、事後の処理(他のシステムとのデータ交換等)においては、共通のフォーマットを使用することで対応できます。
この回答への補足
#補足としては、入力すると2つのテーブルに書き込まれるようで、「01月」のように入れても「伝票テーブル」の日付は問題なく、「伝票明細」のみテーブルの日付がおかしく(例 2001年が2025年になるなど)なるようです。
その部分のコードは下記となっているようです。
Private Sub 伝票日付_AfterUpdate()
On Error Resume Next
Dim strSQL As String
strSQL = "update T伝票明細 set 日付 = #" & 伝票日付 _
& "#,月度 = " & Format(伝票日付, "yyyymm") & " where 伝票番号 = " & 伝票番号
DoCmd.SetWarnings False
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True
End Sub
その後、コードを素人ながらに調べたところ、「明細伝票」への更新の際のSQLの「02/02/25」の形を「2002/02/25」の形式に変更したら正常になりました。
#良い勉強の機会になりました。
No.1
- 回答日時:
1.お使いのMicrosoftAccessのバージョンは?
2.その作者は、そのプログラムのカスタマイズを許可していますか?
3.mdbファイルですか?
4.[年][月][日]は、それぞれ独立した3つのテキストボックス(フォームとは呼びません)になっていますか?
5.(上記4で独立していない場合)
年月日を1つのテキストボックスに入力するとき、元号や年月日などのテキストも入力していますか?
6.(上記5で入力していない場合)
入力しなくても年月日の文字が出てきますか?
元号は表示されますか?
入力は西暦ですか和暦ですか?
以上について、補足をお願いします。
この回答への補足
回答ありがとうございました。
>1.お使いのMicrosoftAccessのバージョンは?
access2000です。
>2.その作者は、そのプログラムのカスタマイズを許可していますか?
書籍の付録で、自由にいじることができます。
>3.mdbファイルですか?
mdbファイルです。
>4.[年][月][日]は、それぞれ独立した3つのテキストボックス(フォームとは呼びません)になっていますか?
まとめて一つのテキストボックスとなっています。
>5.(上記4で独立していない場合)
>年月日を1つのテキストボックスに入力するとき、元号や年月日などのテキストも入力していますか?
初期数値を変更したい時のみ、変更して使います。
>6.(上記5で入力していない場合)
>入力しなくても年月日の文字が出てきますか?
でて来ます。
>元号は表示されますか?
自動的に表示されます。
>入力は西暦ですか和暦ですか?
和暦です。
#補足としては、入力すると2つのテーブルに書き込まれるようで、「01月」のように入れても「伝票テーブル」の日付は問題なく、「伝票明細」のみテーブルの日付がおかしく(例 2001年が2025年になるなど)なるようです。
その後、コードを素人ながらに調べたところ、「明細伝票」への更新の際のSQLの「02/02/25」の形を「2002/02/25」の形式に変更したら正常になりました。
#良い勉強の機会になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Java Java 年数計算 3 2023/01/28 10:52
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- その他(ソフトウェア) Googleフォーム、効率的な入れ方 2 2022/10/03 22:44
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- Visual Basic(VBA) 過去日付、年の切り替え 6 2022/05/26 12:41
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
Accessで、定型入力を使って年と月のデータだけ入力したい
Access(アクセス)
-
-
4
Accessを使って日付を比較したい
その他(Microsoft Office)
-
5
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
6
Access2000 サブフォームのRecordSet取得法
Access(アクセス)
-
7
ACCESSで条件によってフォーム上のフィールドの色を変更
Access(アクセス)
-
8
ACCESSでコントロールソースの変更
Access(アクセス)
-
9
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
10
エラー(型が一致しません。)の対処方法
Visual Basic(VBA)
-
11
アクセスVBAのMe!と[ ]
Access(アクセス)
-
12
ACCESSの一覧フォームで2つの日付の条件で、条件付き書式をしたい。
その他(データベース)
-
13
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
14
Accessでボタンを押すと今日の日付を入力
Access(アクセス)
-
15
Accessの条件付き書式設定で、複数の条件が一致した時の書式を設定したい
その他(Microsoft Office)
-
16
Access2003 クエリで、空の列は作れますか?
Access(アクセス)
-
17
実行時エラー '3464': 抽出条件でデータ型が
Access(アクセス)
-
18
accessテキストボックスで月日以外入力禁止に
Access(アクセス)
-
19
VBAでアクセスDBからデータの取得について
Visual Basic(VBA)
-
20
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースのINT型項目にNULL...
-
passwordが入れられません・・・・
-
アクセスで数値型のフィールド...
-
Access(office)のマクロの「値...
-
日付のテキストボックスに(例...
-
フォームで入力しても反映されない
-
アクセスのテキストボックスの...
-
ファイルメーカー 一ヵ月後の...
-
Excelで入力したデータを自動的...
-
オラクルのテーブルでの入力制限
-
Accessで西暦の年だけ表示したい
-
コンボボックスの自動更新について
-
このオブジェクトに値を代入す...
-
アクセス2007 フォーム入力で...
-
Accessで小数の入力について
-
accessのテーブルの書式と定型入力
-
アクセス コンボボックスのリ...
-
Accessでの和暦の入力
-
Access2007 textboxに入力でき...
-
エクセル 自動入力
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースのINT型項目にNULL...
-
passwordが入れられません・・・・
-
アクセスで数値型のフィールド...
-
フォームで入力しても反映されない
-
Excelで入力したデータを自動的...
-
ACCESS2000にて「うるう年」の...
-
Access(office)のマクロの「値...
-
入力規則違反-任意のエラーメ...
-
エクセル 自動入力
-
ACCESS 時間の入力方法
-
このオブジェクトに値を代入す...
-
アクセスのテキストボックスの...
-
Access2007 textboxに入力でき...
-
ユーザーフォームで数字にカン...
-
sqlldrの使用方法について
-
アクセス コンボボックスのリ...
-
Access2007、フォームのテキス...
-
Accessで西暦の年だけ表示したい
-
EXCELのユーザーフォームで入力...
-
ファイルメーカー 一ヵ月後の...
おすすめ情報