Actualizar sólo datos de ACCESS
Publicado por blas (143 intervenciones) el 12/10/2010 17:06:03
Hola a todos.
Tengo un formulario de ACCESS que con un código envia los datos a una plantilla de Word. Si modifico los datos en ACCESS se actualiza también el documento de Word y hasta ahí todo bién. Lo que quiero, es que si tengo que modificar algo en ACCESS y vuelvo a abrir el documento de nuevo, sólo modifique los datos de ACCESS, es decir no mé elimine otras cosas que he añadido depués al documento directamente una vez guardado, por ejem: fotos, graficos etc. gracias
ESTE ES EL CÓDIGO. MI MENDA TÚ YA LO CONOCES, otra manita por favor amigo.
Private Sub Comando1767_Click()
Dim appWord As Word.Application
Dim docs As Word.Documents
Dim doc As Word.Document
Dim campoWord As Object
Dim strRutaPlantilla As String
Dim strTestPlantilla As String
Dim strNuevoDocumento As String
On Error GoTo ManejadorError
strRutaPlantilla = "C:\Accidentes\Plantillas\Fotos.dot"
strNuevoDocumento = "C:\Accidentes\Almacen Fotos\" & Me.IDG03 & ".doc"
strTestPlantilla = Nz(Dir(strNuevoDocumento))
If strTestPlantilla <> "" Then
If MsgBox("El Documento ya existe. ¿Desea actualizarlo", _
vbInformation + vbYesNo + vbDefaultButton2, _
"I2000 GADAR Actualizar Documento") = vbNo Then
'Esta linea la ponemos solo sí queremos que se abra el documento
Exit Sub
End If
End If
Set appWord = CreateObject(Class:="Word.Application")
Set docs = appWord.Documents
Set doc = docs.Add(strRutaPlantilla)
Set campoWord = doc.CustomDocumentProperties
On Error Resume Next
campoWord.Item("IDG02").Value = IDG02
campoWord.Item("IDG03").Value = IDG03
campoWord.Item("TF01").Value = TF01
campoWord.Item("TF02").Value = TF02
campoWord.Item("TF03").Value = TF03
campoWord.Item("TF04").Value = TF04
campoWord.Item("TF05").Value = TF05
campoWord.Item("TF06").Value = TF06
With appWord
.Visible = True
.Selection.WholeStory
.Selection.Fields.Update
.ActiveDocument.SaveAs strNuevoDocumento
.Activate
.Selection.EndKey Unit:=wdStory
.Selection.GoTo What:=wdGoToHeading, Which:=wdGoToFirst
End With
ManejadorErrorSalir:
Exit Sub
ManejadorError:
If Err.Number = 429 Then
Set appWord = CreateObject(Class:="Word.Application")
Resume Next
Else
MsgBox Err.Description, , "Error Nº: " & Err.Number
Resume ManejadorErrorSalir
End If
End Sub
Tengo un formulario de ACCESS que con un código envia los datos a una plantilla de Word. Si modifico los datos en ACCESS se actualiza también el documento de Word y hasta ahí todo bién. Lo que quiero, es que si tengo que modificar algo en ACCESS y vuelvo a abrir el documento de nuevo, sólo modifique los datos de ACCESS, es decir no mé elimine otras cosas que he añadido depués al documento directamente una vez guardado, por ejem: fotos, graficos etc. gracias
ESTE ES EL CÓDIGO. MI MENDA TÚ YA LO CONOCES, otra manita por favor amigo.
Private Sub Comando1767_Click()
Dim appWord As Word.Application
Dim docs As Word.Documents
Dim doc As Word.Document
Dim campoWord As Object
Dim strRutaPlantilla As String
Dim strTestPlantilla As String
Dim strNuevoDocumento As String
On Error GoTo ManejadorError
strRutaPlantilla = "C:\Accidentes\Plantillas\Fotos.dot"
strNuevoDocumento = "C:\Accidentes\Almacen Fotos\" & Me.IDG03 & ".doc"
strTestPlantilla = Nz(Dir(strNuevoDocumento))
If strTestPlantilla <> "" Then
If MsgBox("El Documento ya existe. ¿Desea actualizarlo", _
vbInformation + vbYesNo + vbDefaultButton2, _
"I2000 GADAR Actualizar Documento") = vbNo Then
'Esta linea la ponemos solo sí queremos que se abra el documento
Exit Sub
End If
End If
Set appWord = CreateObject(Class:="Word.Application")
Set docs = appWord.Documents
Set doc = docs.Add(strRutaPlantilla)
Set campoWord = doc.CustomDocumentProperties
On Error Resume Next
campoWord.Item("IDG02").Value = IDG02
campoWord.Item("IDG03").Value = IDG03
campoWord.Item("TF01").Value = TF01
campoWord.Item("TF02").Value = TF02
campoWord.Item("TF03").Value = TF03
campoWord.Item("TF04").Value = TF04
campoWord.Item("TF05").Value = TF05
campoWord.Item("TF06").Value = TF06
With appWord
.Visible = True
.Selection.WholeStory
.Selection.Fields.Update
.ActiveDocument.SaveAs strNuevoDocumento
.Activate
.Selection.EndKey Unit:=wdStory
.Selection.GoTo What:=wdGoToHeading, Which:=wdGoToFirst
End With
ManejadorErrorSalir:
Exit Sub
ManejadorError:
If Err.Number = 429 Then
Set appWord = CreateObject(Class:="Word.Application")
Resume Next
Else
MsgBox Err.Description, , "Error Nº: " & Err.Number
Resume ManejadorErrorSalir
End If
End Sub
Valora esta pregunta


0