我有一个访问2007数据库,它以excel格式输出报告,该报告依赖于用户选择的日期参数。通过具有弹出日历的文本框(text100)选择此参数。我想在文本框(text100)中使用日期作为文件名的一部分。我使用transferpreadsheet方法来创建导出,但我不需要列标题。创建文件后,我让代码打开文件并删除标题。此外,当前代码在文件名中使用今天的日期是不准确的。文件名需要反映用户在弹出日历
的文本框中选择的日期好的,这是代码。
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 am,然后将其添加到文件名中。我希望这能清除我的意图。
文本100在开始表单上设置,然后有几个按钮允许用户在几个分支或所有分支之间进行选择。
答案 0 :(得分:1)
显而易见的问题是,Text100首先在哪里设置?
另一种风格评论,最好做
goto ExitSub
'...
ExitSub:
然后你的“GoTo 53” - 它更有意义。
按照这个速度,最好将你的“完成”信息移到IF语句之外,而TempVars似乎没有目的;删除它。
修改强>
我认为Text100是表单上的文本框,然后是行:
Dim Text100 As Date
将在代码中覆盖该引用。
如果您在代码中引用该文本框,则需要这样做:
foo = me.Text100
' or
foo = Forms!FormName.Text100
答案 1 :(得分:0)
确切地确定你的问题有点困难,但我想你会问,“我如何使用文本框的内容作为导出文件名?”这听起来像是代码中的某个地方,它为文件名创建了一个字符串,其中包含&amp; now()标记到结尾以使用文件名中的当前日期。你能简单地取代'&amp; now()'with'&amp; textbox.value'?
答案 2 :(得分:0)
JD Long表示很难在帖子中看到任何问题。也许你应该再次编辑它。
但作为一般性评论,您需要转义用户在您要在文件名中使用输入之前输入的任何特殊字符。
不允许使用以下保留字符:
< > : " / \ | ? *
有关在Windows中命名文件的详细信息,请参阅MSDN中的Naming a File or Directory。