Boa tarde tudo bem eu to terminando minha lista de preços e gostaria de adicionar essa função pra que fique 100%
o intuito dessa lista é ser enviada por email, eu deixei isso por ultimo justamente pq sabia que teria dificuldade....
eu vi esse codigo mas não sei o que pode ser não da certo..
Private Sub Comando697_Click()
Dim strArquivo As String
Dim strLocal As String
Dim objOut As Object
Dim objmail As Object
Dim objAnexo As Object
Const olMailItem = 0
Const olByValue = 1
'---------------------------------------------
'Carregando a coleção do Outlook
'Similar ao abrir o Outlook
'---------------------------------------------
Set objOut = CreateObject("Outlook.application")
'------------------------------------------------------------
'Abrindo o formulário de email para inserir os itens de email
'Similar ao clicar no botão NOVO do Outlook
'------------------------------------------------------------
Set objmail = objOut.CreateItem(olMailItem)
'------------------------------------------------------------
'Abrindo a opção anexo
'Similar ao clicar no botão ANEXO do Outlook
'------------------------------------------------------------
Set objAnexo = objmail.Attachments
'---------------------------------------------------------------------------------
'Indico o nome do arquivo pdf e o local que será gravado
'O local que escolhi para gravar os arquivos de pdf gerados
'é na pasta enviados, aonde se encontra o aplicativo.
'Neste exemplo, gero os nomes dos arquivos, aproveitando o número exclusivo
'do cliente. Então os arquivos vão ficar com o aspecto: rlt1.pdf, rlt2.pdf, ...
'É claro que vc poderá gerar o nome que achar mais conveniente.
'---------------------------------------------------------------------------------
strArquivo = Replace(Me!cam7, "/", "_") & " _ " & Me![001] & ".pdf"
strLocal = CurrentProject.Path & "\Oficios\Oficios Expedidos\" & strArquivo
'Salvando alterações no registro
If Me.Dirty Then DoCmd.RunCommand acCmdSaveRecord
'----------------------------------------------------------------------------
'Abre o relatório filtrado e oculto de acordo com o cliente selecionado.
'----------------------------------------------------------------------------
DoCmd.OpenReport "Oficio Normal1", acViewPreview, , "[001] = " & [001], acHidden
'----------------------------------------------------------------------------------------
'gero o pdf do relatório através do comando outputto.
'o mecanismo do Access reconhece que o relatório solicitado pelo outputto já está aberto
'e então o outputto usará o relatório já aberto e filtrado.
'-----------------------------------------------------------------------------------------
DoCmd.OutputTo acOutputReport, "Oficio Normal1", acFormatPDF, strLocal
Dim numCop As Integer
numCop = InputBox("Informe a quantidade de cópias: ", "IMPRIMIR") 'Valor este que pode ser obtido por outro meios
DoCmd.PrintOut acPrintAll, , , acHigh, numCop 'Linha simplificada para a impressão
'-------------------------------------------
'fecha o relatório clientes que está oculto
'-------------------------------------------
DoCmd.Close acReport, "Oficio Normal1"
'--------------------------------------------------------
'adiciona o arquivo pdf no anexo
'-------------------------------------------------------
objAnexo.Add strLocal, olByValue, 1
'-----------------------------------------------------------------
'Mostra a tela de sáida de email que abrimos
'-----------------------------------------------------------------
objmail.Display
'-------------------------------------------------------
'Tudo já foi entregue ao outlook, então podemos esvaziar
'a memoria do computador usada pelas variáveis
'-------------------------------------------------------
Set objAnexo = Nothing
Set objmail = Nothing
Set objOut = Nothing
End Sub
o intuito dessa lista é ser enviada por email, eu deixei isso por ultimo justamente pq sabia que teria dificuldade....
eu vi esse codigo mas não sei o que pode ser não da certo..
Private Sub Comando697_Click()
Dim strArquivo As String
Dim strLocal As String
Dim objOut As Object
Dim objmail As Object
Dim objAnexo As Object
Const olMailItem = 0
Const olByValue = 1
'---------------------------------------------
'Carregando a coleção do Outlook
'Similar ao abrir o Outlook
'---------------------------------------------
Set objOut = CreateObject("Outlook.application")
'------------------------------------------------------------
'Abrindo o formulário de email para inserir os itens de email
'Similar ao clicar no botão NOVO do Outlook
'------------------------------------------------------------
Set objmail = objOut.CreateItem(olMailItem)
'------------------------------------------------------------
'Abrindo a opção anexo
'Similar ao clicar no botão ANEXO do Outlook
'------------------------------------------------------------
Set objAnexo = objmail.Attachments
'---------------------------------------------------------------------------------
'Indico o nome do arquivo pdf e o local que será gravado
'O local que escolhi para gravar os arquivos de pdf gerados
'é na pasta enviados, aonde se encontra o aplicativo.
'Neste exemplo, gero os nomes dos arquivos, aproveitando o número exclusivo
'do cliente. Então os arquivos vão ficar com o aspecto: rlt1.pdf, rlt2.pdf, ...
'É claro que vc poderá gerar o nome que achar mais conveniente.
'---------------------------------------------------------------------------------
strArquivo = Replace(Me!cam7, "/", "_") & " _ " & Me![001] & ".pdf"
strLocal = CurrentProject.Path & "\Oficios\Oficios Expedidos\" & strArquivo
'Salvando alterações no registro
If Me.Dirty Then DoCmd.RunCommand acCmdSaveRecord
'----------------------------------------------------------------------------
'Abre o relatório filtrado e oculto de acordo com o cliente selecionado.
'----------------------------------------------------------------------------
DoCmd.OpenReport "Oficio Normal1", acViewPreview, , "[001] = " & [001], acHidden
'----------------------------------------------------------------------------------------
'gero o pdf do relatório através do comando outputto.
'o mecanismo do Access reconhece que o relatório solicitado pelo outputto já está aberto
'e então o outputto usará o relatório já aberto e filtrado.
'-----------------------------------------------------------------------------------------
DoCmd.OutputTo acOutputReport, "Oficio Normal1", acFormatPDF, strLocal
Dim numCop As Integer
numCop = InputBox("Informe a quantidade de cópias: ", "IMPRIMIR") 'Valor este que pode ser obtido por outro meios
DoCmd.PrintOut acPrintAll, , , acHigh, numCop 'Linha simplificada para a impressão
'-------------------------------------------
'fecha o relatório clientes que está oculto
'-------------------------------------------
DoCmd.Close acReport, "Oficio Normal1"
'--------------------------------------------------------
'adiciona o arquivo pdf no anexo
'-------------------------------------------------------
objAnexo.Add strLocal, olByValue, 1
'-----------------------------------------------------------------
'Mostra a tela de sáida de email que abrimos
'-----------------------------------------------------------------
objmail.Display
'-------------------------------------------------------
'Tudo já foi entregue ao outlook, então podemos esvaziar
'a memoria do computador usada pelas variáveis
'-------------------------------------------------------
Set objAnexo = Nothing
Set objmail = Nothing
Set objOut = Nothing
End Sub
Última edição por mfmaiafilho em 2/4/2020, 14:36, editado 1 vez(es)