Criquio, utilizei um código que vc criou para enviar a imagem inserida em um campo do bd access para mesclar em um documento do word, conforme segue:
.ActiveDocument.Bookmarks("image").Select
.Selection.InlineShapes.AddPicture FileName:="" & Forms!F30_LDBPessoas!foto & "", LinkToFile:=False, SaveWithDocument:=True
Temos situações em que a imagem não vai existir e nesse caso da erro no código, como faço para que o código prossiga sem erro?
Outra situação: inseri 3 imagens referencias no documento padrão do word como marcadores, quando tenho somente duas imagens em meu bd no access a terceira imagem referencia fica no documento, como faço para excluir essa imagem caso importe somente duas?
segue abaixo código completo:
Private Sub Comando630_Click()
OBRIGATÓRIO: Marcar Referência: Microsoft Word xx.x Object Library
Dim ntram
ntram = MsgBox("Deseja gerar um novo Documento WORD ?" & vbCr & "Confirma INCLUSÃO ?" & vbCr & "ALERTA: Caso já tenha sido gerado, o L.D.B. anterior será substituído pelo Arquivo-Matriz!", vbQuestion + vbYesNo, "Sistema - Confirmação")
If ntram = 6 Then 'INÍCIO 1º IF
#Const DESENV = -1
On Error GoTo TrataErro
Dim oApp As Object 'Cria uma variável objeto
Dim strSQL As String
'Inicia o MS Word
Set oApp = CreateObject("Word.Application") 'Cria e abre o objeto Word
With oApp
.visible = True ' Torna o MS Word visível
.Documents.Open (CurrentProject.path & "\TESTE10.doc") ' Abre o documento base
'Move cada campo para o indicador definido no Documento-Base
.ActiveDocument.Bookmarks("image").Select
.Selection.InlineShapes.AddPicture FileName:="" & Forms!F30_LDBPessoas!foto & "", LinkToFile:=False, SaveWithDocument:=True
'Salva o arquivo gerado
.ActiveDocument.SaveAs CurrentProject.path & "\TESTE11.doc"
MsgBox "Documento WORD gerado com sucesso...", vbInformation
'Fecha o documento
.ActiveDocument.Close
End With
'Fecha o Word
oApp.Quit
Dim X As String
X = CurrentProject.path & "\TESTE11.doc"
Dim Word As New Word.Application
With Word
.Documents.Open X
.visible = True
.WindowState = wdWindowStateMaximize
Dim w As String 'ROTINA: Abrir arquivo automaticamente após ser gerado (25/01/2012)
Dim y As String
w = "C:\Trabalho\banco access\projeto labor\"
y = "C:\Trabalho\banco access\projeto labor\" & "TESTE11" & ".doc"
Shell "C:\WINDOWS\explorer.exe """ & y & "", vbNormalFocus
End With
'Me.BtWord.visible = True 'Torna o Controle-Imagem 'BtWord' VÍSIVEL
'Me.RotuloWord.visible = True 'Torna o Controle-Rótulo 'RotuloWord' VÍSIVEL
'Libera a memória
Set oApp = Nothing
Saida:
Exit Sub
TrataErro:
'Se um campo do formulário estiver vazio, remove o texto do Indicador e continua
If Err.Number = 94 Then
oApp.Selection.Text = ""
Resume Next
End If
'MsgBox "Form_F30_LDBPessoas - btWord_Click" & vbCrLf & Err.Description, vbExclamation + vbOKOnly, "Erro: " & CStr(Err.Number)
#If DESENV Then
oApp.Quit
Set oApp = Nothing
Stop
Resume
#End If
Resume Saida
End If 'FIM 1º IF
End Sub
.ActiveDocument.Bookmarks("image").Select
.Selection.InlineShapes.AddPicture FileName:="" & Forms!F30_LDBPessoas!foto & "", LinkToFile:=False, SaveWithDocument:=True
Temos situações em que a imagem não vai existir e nesse caso da erro no código, como faço para que o código prossiga sem erro?
Outra situação: inseri 3 imagens referencias no documento padrão do word como marcadores, quando tenho somente duas imagens em meu bd no access a terceira imagem referencia fica no documento, como faço para excluir essa imagem caso importe somente duas?
segue abaixo código completo:
Private Sub Comando630_Click()
OBRIGATÓRIO: Marcar Referência: Microsoft Word xx.x Object Library
Dim ntram
ntram = MsgBox("Deseja gerar um novo Documento WORD ?" & vbCr & "Confirma INCLUSÃO ?" & vbCr & "ALERTA: Caso já tenha sido gerado, o L.D.B. anterior será substituído pelo Arquivo-Matriz!", vbQuestion + vbYesNo, "Sistema - Confirmação")
If ntram = 6 Then 'INÍCIO 1º IF
#Const DESENV = -1
On Error GoTo TrataErro
Dim oApp As Object 'Cria uma variável objeto
Dim strSQL As String
'Inicia o MS Word
Set oApp = CreateObject("Word.Application") 'Cria e abre o objeto Word
With oApp
.visible = True ' Torna o MS Word visível
.Documents.Open (CurrentProject.path & "\TESTE10.doc") ' Abre o documento base
'Move cada campo para o indicador definido no Documento-Base
.ActiveDocument.Bookmarks("image").Select
.Selection.InlineShapes.AddPicture FileName:="" & Forms!F30_LDBPessoas!foto & "", LinkToFile:=False, SaveWithDocument:=True
'Salva o arquivo gerado
.ActiveDocument.SaveAs CurrentProject.path & "\TESTE11.doc"
MsgBox "Documento WORD gerado com sucesso...", vbInformation
'Fecha o documento
.ActiveDocument.Close
End With
'Fecha o Word
oApp.Quit
Dim X As String
X = CurrentProject.path & "\TESTE11.doc"
Dim Word As New Word.Application
With Word
.Documents.Open X
.visible = True
.WindowState = wdWindowStateMaximize
Dim w As String 'ROTINA: Abrir arquivo automaticamente após ser gerado (25/01/2012)
Dim y As String
w = "C:\Trabalho\banco access\projeto labor\"
y = "C:\Trabalho\banco access\projeto labor\" & "TESTE11" & ".doc"
Shell "C:\WINDOWS\explorer.exe """ & y & "", vbNormalFocus
End With
'Me.BtWord.visible = True 'Torna o Controle-Imagem 'BtWord' VÍSIVEL
'Me.RotuloWord.visible = True 'Torna o Controle-Rótulo 'RotuloWord' VÍSIVEL
'Libera a memória
Set oApp = Nothing
Saida:
Exit Sub
TrataErro:
'Se um campo do formulário estiver vazio, remove o texto do Indicador e continua
If Err.Number = 94 Then
oApp.Selection.Text = ""
Resume Next
End If
'MsgBox "Form_F30_LDBPessoas - btWord_Click" & vbCrLf & Err.Description, vbExclamation + vbOKOnly, "Erro: " & CStr(Err.Number)
#If DESENV Then
oApp.Quit
Set oApp = Nothing
Stop
Resume
#End If
Resume Saida
End If 'FIM 1º IF
End Sub