1

私は学校で C# と VB.Net を学びましたが、VBA は学びませんでした。

Access でパイプ区切りの .csv エクスポートを自動化しようとしています。ユーザーがコンボボックスから出荷日を選択して「エクスポート」をクリックすると、アプリケーションが残りの作業を行う必要があります。問題は、Access でどのように書式設定しても、日付が短い日付形式 (m/d/yyyy) でエクスポートされることです。クライアントの必要な形式は mmddyyyy です。

別のテーブルのテキスト フィールドに日付を追加しようとしましたが、Access ではそれができません。そのため、フォームにテキストボックスを配置し、正しい形式で日付を入力し、それを使用してエクスポートするテーブルを作成しました。これは機能します。

私が今やろうとしているのは、ユーザーがコンボボックスを変更するたびに、テキストボックスを正しい形式で入力するサブルーチンを作成することです。次の行に「実行時エラー 9: 下付き文字が範囲外です」というメッセージが表示され続けます。If Len(dateParts(0)) = 2 Then

これが私がこれまでに持っているコードです:

Private Sub tbxShipDate_Change()
    Dim strShipDate As String
    Dim strTextDate As String
    Dim dateParts() As String

    strShipDate = Me.tbxShipDate.Value

    If Len(strShipDate) = 10 Then
        strTextDate = strShipDate
        strTextDate = Replace(strTextDate, "/", "")
    Else
        dateParts = Split(strShipDate, "/")

        'check month format
        If Len(dateParts(0)) = 2 Then
            strTextDate = dateParts(0)
        Else
            strTextDate = "0" & dateParts(0)
        End If

        'check day format
        If Len(dateParts(1)) = 2 Then
            strTextDate = strTextDate & dateParts(1)
        Else
            strTextDate = strTextDate & "0" & dateParts(1)
        End If

        'add year
        strTextDate = strTextDate & dateParts(2)
    End If

    Me.tbxTextDate.Value = strTextDate

End Sub
4

1 に答える 1

4

次のように、配列を使用する前に、配列を正しい長さに ReDim する必要があると思います。

ReDim dateParts(3)

使用する前に。

于 2013-05-01T19:46:51.060 に答える