1

我有一个访问 2007 数据库,它以 excel 格式输出报告,该报告取决于用户选择的日期参数。此参数通过具有弹出日历的文本框 (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: 

然后你的“GoTo 53”——它更有意义一点。

以这种速度,最好将您的“完成”消息移到 IF 语句之外,而 TempVars 似乎没有目的;去掉它。

编辑:

我假设 Text100 是表单上的一个文本框,那么该行显示为:

Dim Text100 As Date

将在您的代码中覆盖该引用。

如果您在代码中引用该文本框,则需要这样做:

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

确切地确定您的问题是什么有点困难,但我想您是在问,“我如何使用文本框的内容作为导出文件名?” 听起来像是在您的代码中的某处,它为带有 & now() 标记到末尾的文件名创建了一个字符串,以使用文件名中的当前日期。您可以简单地将 '& now()' 替换为 '& textbox.value' 吗?

于 2009-01-13T17:07:32.727 回答
0

一位 JD Long 说在您的帖子中很难看到任何问题。也许你应该再次编辑它。

但一般来说,您需要先转义用户输入的任何特殊字符,然后才能在文件名中使用输入。

不允许使用以下保留字符:

< > : " / \ | ? *

有关在 Windows 中命名文件的更多详细信息,请参阅:在 MSDN 中命名文件或目录。

于 2009-01-13T17:31:15.690 回答