Parâmetro definido pelo usuário usado como parte de um nome de arquivo no acesso
Pergunta
Eu tenho um banco de dados Access 2007 que gera um relatório no formato Excel, o relatório depende de um parâmetro de data escolhido pelo usuário. Este parâmetro é selecionado através de uma caixa de texto (Text100) que possui um calendário pop -up. Eu gostaria de usar a data na caixa de texto (Text100) como parte do nome do arquivo. Estou usando o método de folha de transferência para criar a exportação, no entanto, não preciso dos cabeçalhos da coluna. Depois que o arquivo é criado, eu tenho o código, abra o arquivo e exclua os cabeçalhos. Além disso, o código atual está usando a data de hoje no nome do arquivo que não é preciso. O nome do arquivo precisa refletir a data que foi selecionada pelo usuário na caixa de texto do calendário pop -up
Ok, aqui está o código.
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
O texto 100 é onde o usuário seleciona uma data por meio de um calendário pop -up. Eu gostaria de usar essa data como parte do nome do arquivo. Atualmente, usando o Text100 como parte do nome do arquivo, ele está sendo referenciado às 12:00 da manhã e, em seguida, adiciona isso ao nome do arquivo. Espero que isso esclareça minha intenção.
O texto 100 é definido no formulário de abertura e existem vários botões que permitem ao usuário escolher entre várias ramificações ou todas as ramificações.
Solução
Bem, a pergunta óbvia é: onde o Text100 é o primeiro definido?
Outro comentário de estilo, é melhor fazer
goto ExitSub
'...
ExitSub:
Então seu "Goto 53" - é um pouco mais significativo.
Nesse ritmo, seria melhor mover sua mensagem "feita" para fora das declarações IF, e os tempvars não parecem ter um propósito; remova.
Editar:
Presumo que se o Text100 é uma caixa de texto no formulário, a linha que diz:
Dim Text100 As Date
vai substituir essa referência em seu código.
Se você está referenciando essa caixa de texto em seu código, precisa fazê -lo desta maneira:
foo = me.Text100
' or
foo = Forms!FormName.Text100
Outras dicas
É um pouco difícil determinar exatamente qual é a sua pergunta, mas acho que você está perguntando: "Como uso o conteúdo de uma caixa de texto como nome de arquivo de exportação?" Parece que em algum lugar do seu código cria uma string para o nome do arquivo que possui e agora () marcado no final para usar a data atual no nome do arquivo. Você pode simplesmente substituir o '& agora ()' por '& textbox.value'?
Um JD Long disse que é difícil ver qualquer pergunta em sua postagem. Talvez você deva editá -lo novamente.
Mas, como observação geral, você precisa escapar de todos os caracteres especiais que o usuário inseriu antes de usar a entrada no nome de um arquivo.
Os seguintes caracteres reservados não são permitidos:
< > : " / \ | ? *
Para mais detalhes sobre nomeação de arquivos no Windows, consulte: Nomeando um arquivo ou diretório em msdn.