пользовательский параметр, используемый как часть имени файла в Access - PullRequest
1 голос
/ 13 января 2009

У меня есть база данных Access 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, а затем добавляет это к имени файла. Надеюсь, это прояснит мое намерение.

Текст 100 устанавливается в форме открытия, затем есть несколько кнопок, которые позволяют пользователю выбирать между несколькими ветвями или всеми ветвями.

Ответы [ 3 ]

1 голос
/ 13 января 2009

Ну, очевидный вопрос, где Text100 получает первый набор?

Еще один стиль комментария, лучше сделать

goto ExitSub
'...
ExitSub: 

Тогда ваш "GoTo 53" - немного более значимый.

В таком случае было бы лучше переместить ваше сообщение "Готово" за пределы операторов IF, а TempVars, похоже, не имеет цели; удали это.

Edit:

Я предполагаю, что если Text100 - это текстовое поле в форме, то строка, которая гласит:

Dim Text100 As Date

собирается переопределить эту ссылку в вашем коде.

Если вы ссылаетесь на это текстовое поле в вашем коде, вам нужно сделать это следующим образом:

foo = me.Text100
' or
foo = Forms!FormName.Text100
0 голосов
/ 13 января 2009

Дж. Д. Лонг сказал, что трудно увидеть любой вопрос в вашей публикации. Может быть, вам следует отредактировать его снова.

Но, как общее замечание, вам нужно избегать любых специальных символов, введенных пользователем перед тем, как вы собираетесь использовать ввод в имени файла.

Следующие зарезервированные символы недопустимы:

< > : " / \ | ? *

Подробнее о присвоении имен файлам в Windows см. Присвоение имени файлу или каталогу в MSDN.

0 голосов
/ 13 января 2009

Определить, какой именно ваш вопрос, довольно сложно, но я думаю, что вы спрашиваете: «Как использовать содержимое текстового поля в качестве имени файла экспорта?» Похоже, где-то в вашем коде он создает строку для имени файла, в котором & now () помечен до конца, чтобы использовать текущую дату в имени файла. Вы можете просто заменить «& now ()» на «& textbox.value»?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...