1

レポートを Excel 形式で出力する Access 2007 データベースがあります。レポートは、ユーザーが選択した日付パラメーターに依存します。このパラメーターは、ポップアップ カレンダーを持つテキスト ボックス (text100) を介して選択されます。ファイル名の一部として、テキスト ボックス (text100) の日付を使用したいと思います。transferspreadsheet メソッドを使用してエクスポートを作成していますが、列ヘッダーは必要ありません。ファイルが作成されたら、コードでファイルを開いてヘッダーを削除します。また、現在のコードではファイル名に今日の日付が使用されていますが、これは正確ではありません。ファイル名には、ユーザーがポップアップ カレンダーのテキスト ボックスで選択した日付を反映する必要があります。

これがコードです。

Sub Branch298nohdr()


 Dim Filename As String
 Dim Path As String
 Dim Branch As Integer
 Dim Text100 As Date
 Dim xl


    Branch = "298"
    Path = "Path" & Branch & "\"
    Filename = "Identity Report " & Branch & " " & _
                        Replace(Text100, ":", " ") & ".xls"



If Dir(Path & Filename) <> "" Then

    MsgBox "File has been created already"

If Dir(Path & Filename) <> "" Then

    GoTo 53

End If

Else


    Set xl = CreateObject("excel.application")


    TempVars.Add "branchnum", Branch    
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, _
            "queryname", Path & Filename, False
    xl.workbooks.Open Path & Filename

     With xl

          .Rows("1:1").entirerow.Delete
            .Columns("L:L").select
            .Selection.NumberFormat = "0"
          .range("a1").select
            xl.workbooks(1).Close Savechanges:=True

            xl.Quit
    Set xl = Nothing
53
    MsgBox "Done!"
    End With

    TempVars.Remove "branchnum"
End If

Branch298nohdr_Exit:
    Exit Sub



End Sub

テキスト 100 は、ユーザーがポップアップ カレンダーを介して日付を選択する場所です。この日付をファイル名の一部として使用したいと考えています。現在、ファイル名の一部として text100 を使用しており、午前 12:00 として参照されており、これをファイル名に追加しています。これで私の意図が明確になることを願っています。

テキスト 100 が開始フォームに設定され、ユーザーが複数のブランチまたはすべてのブランチから選択できるようにするいくつかのボタンがあります。

4

3 に答える 3

1

明らかな質問は、Text100が最初に設定されるのはどこかということです。

別のスタイルのコメント、

goto ExitSub
'...
ExitSub: 

次に、「GoTo53」-もう少し意味があります。

そのレートでは、「完了」メッセージをIFステートメントの外に移動する方が適切であり、TempVarsには目的がないようです。それを除く。

編集:

Text100がフォーム上のテキストボックスである場合、次の行が表示されると思います。

Dim Text100 As Date

コード内のその参照をオーバーライドします。

コードでそのテキストボックスを参照している場合は、次のようにする必要があります。

foo = me.Text100
' or
foo = Forms!FormName.Text100
于 2009-01-13T18:15:41.963 に答える
0

JD Long は、あなたの投稿に質問が見当たらないと言っていました。もう一度編集したほうがいいかもしれません。

ただし、一般的な注意として、ファイル名で入力を使用する前に、ユーザーが入力した特殊文字をエスケープする必要があります。

次の予約文字は使用できません。

< > : " / \ | ? *

Windows でのファイルの名前付けの詳細については、MSDNのファイルまたはディレクトリの名前付けを参照してください。

于 2009-01-13T17:31:15.690 に答える
0

あなたの質問が何であるかを正確に判断するのは少し難しいですが、「テキスト ボックスの内容をエクスポート ファイル名として使用するにはどうすればよいですか?」と尋ねていると思います。コードのどこかで、ファイル名の現在の日付を使用するために & now() タグが最後に付けられたファイル名の文字列を作成するように聞こえます。「& now()」を「& textbox.value」に単純に置き換えることはできますか?

于 2009-01-13T17:07:32.727 に答える