複数の日付入力フィールドを含むフォームを持つAccessデータベースを使用しています。私は、日付の区切り記号としてピリオドを使用する新しいユーザーを持っているので、「6/22/11」または「6-22-11」の代わりに「6.22.11」と入力します。私はこのタイプのエントリを許可し続けたいと思いますが、Accessは日付の代わりに "6.22.11"を時刻に変換します。私はテキストボックスのフォーマットを「短い日付」に設定しようとしましたが、何の助けもありませんでした。私はまた、 "Lost Focus"イベントにコードを追加しようとしましたが、それはAccessが既に変換を行ってから遅くなります。 "Before Update"イベントは変換前に発生しますが、テキストボックス内のテキストを変更することはできません。どのように私は日付エントリのすべての3つのフォームを許可することができます上の任意のアイデア?MS Accessで期間を区切って日付を区切ることを許可する
答えて
あなたの上記の例
Private Sub Texto0_KeyPress(KeyAscii As Integer)
If Chr(KeyAscii) = "." Then
KeyAscii = Asc("/")
End If
End Sub
私にとっては作品:別のオプション - - このユーザーのコンピュータ上のすべてのプログラムに影響を与える、このです。
もう1つの相違点は、BeforeUpdateイベントとAfterUpdateイベントで発生します。 BeforeUpdateでは、コントロールのコンテンツを変更することはできませんが、AfterUpdateイベントでフラグ(モジュール/フォームレベルで定義された変数)を設定して内容を変更することができます。これはBeforeUpdateを再度トリガーしますが、あなたはそれを無視し、フラグを立ててはいけないと警告されます。
何らかの理由で、私はまだKeyPressイベントを動作させることができません。 BeforeUpdateイベントとAfterUpdateイベントを利用してアイデアを使用することができました。それは魅力的なものです。ありがとう! – AdmSteck
私は入力マスクを避けたいと思っていました。私の経験では、データ入力時に作業するのが難しいからです。 – AdmSteck
デリミタなしの数字の文字列を入力するだけで、入力マスクに6桁と8桁の日付を入力するのに使用されたユーザーに対して、次の機能を記述しました。
'---------------------------------------------------------------------------
' Purpose : Enables entry of 8-digit dates with no delimiters: 12312008
' Usage : Set OnChange: =DateCtlChange([Form].[ActiveControl])
' 8/ 6/09 : Allow entry of 6-digit dates with no delimiters
' (year 2019 and 2020 must still be entered as 8-digit dates)
'---------------------------------------------------------------------------
Function DateCtlChange(DateCtl As TextBox)
Dim s As String, NewS As String
On Error GoTo Err_DateCtlChange
s = DateCtl.Text
Select Case Len(s)
Case 6
If s Like "######" Then
If Right(s, 2) <> "19" And Right(s, 2) <> "20" Then
NewS = Left(s, 2) & "/" & Mid(s, 3, 2) & "/" & Mid(s, 5, 2)
End If
End If
Case 8
If s Like "########" Then
NewS = Left(s, 2) & "/" & Mid(s, 3, 2) & "/" & Mid(s, 5, 4)
End If
End Select
If IsDate(NewS) Then
DateCtl.Text = NewS
DateCtl.SelStart = Len(DateCtl.Text)
End If
Exit_DateCtlChange:
Exit Function
Err_DateCtlChange:
Select Case Err.Number
'Error 2101 is raised when we try to set the text to a date
' that fails the date control's validation
Case 2101 'The setting you entered isn't valid for this property.
'Log error but don't show user
Case Else
'Add your custom error logging here
End Select
Resume Exit_DateCtlChange
End Function
アクセスは、システムの日付と時刻の形式を使用して値の変換方法を決定します。 http://office.microsoft.com/en-us/access-help/change-the-default-date-time-number-or-measurement-format-HA010351415.aspx?CTT=1#BM2
また、Accessの日付にスラッシュの代わりにスペースを使用することもできます。したがって、ユーザはスペースバー上で左手を使用し、数字キーボード上で右手を使用することができる。私はこれがスラッシュかハイフンよりずっと使いやすいと感じています。
- 1. 日付を区切り記号で区切って表示する
- 2. 区切り文字を区切り記号で区切ってセルを区切ります
- 3. PHPで開始日と終了日を間隔で区切る
- 4. 日付を任意の区切り文字で区切ります
- 5. awkを使用して区切り文字を可変テキストで区切って区切り文字を区切ります。
- 6. 部分文字列をスペースで区切って区切った値を区切ります。
- 7. 区切り文字を区切り文字として使用
- 8. アマゾンのレビューを区切って<span>タグで区切って
- 9. SQL Server 2012の列を単一行に区切ってカンマで区切る
- 10. 可変長ドットで区切られた文字列をgrokで区切る
- 11. str_to_dateのMySqlの日付区切り
- 12. 日付と時刻を "(String.Format)で区切ります
- 13. String.split() - タブ区切り値とコンマ区切り値を区別する方法は?
- 14. 日付と日付を日付で区切った文字列をjavacriptで作成します
- 15. 日付を日付/時刻型のオブジェクトとして区切ります
- 16. 期間を桁区切り文字として使用
- 17. ユーザーが「タブ区切り」のデータをテキストエリアに貼り付けることを許可する
- 18. SQLで年の季節別に日付を区切る問題
- 19. 日付を2行で区切る方法は?
- 20. jqueryの値をセミコロンで区切って
- 21. 分割リストをPythonで区切って
- 22. ブレイクデータをコンマで区切って
- 23. 区切り文字で区切り文字を区切り、改行して印刷する
- 24. 電子メール文字列を区切り文字で区切る
- 25. パイプ文字区切り文字でフィールドを区切る方法
- 26. 場所を保存できる区切りの区切り
- 27. 区切り文字でテキストファイルのフィールドを区切る方法
- 28. XSLT、コンマで区切った文字列をコンマで区切って不要な要素をフィルタリングする
- 29. 区切り文字で区切って一意のファイルを書き込む
- 30. カンマ区切りカンマ区切りのコンマ区切り
私は、テキストボックスのKeyPressイベントを調べ始めました。それは、 '。'文字を置き換えることができるように見えます。彼らがタイプしている間に「/」と付いているが、私はそれを働かせることはできない。ブレークポイントを設定するとコードが動作するように見えますが、テキストボックスに入力されたテキストは変更されません。 'Private Sub Lot_Date_KeyPress(KeyAscii As Integer) Chr(KeyAscii)="。 "ならば、次に KeyAscii = Asc( "/") 終了の場合 End Sub' – AdmSteck
これを乗り越えて標準的な方法で日付を入力するようにユーザーに指示します。 –
デビッドはそうです...あなたは、そのような非問題についてあなたの時間の1分を失うことを考慮すべきではありません。キー入力やマウスを使用する標準的な方法があるように、日付を入力する標準的な方法があり、ユーザーはこれらの規則に従わなければなりません。 –