Solucionar error 5981 access al abrir plantilla word

Tengo el siguiente problema que no se solucionar.

Tengo un access con un botón de comando que me abre una determinada plantilla de word (.dot). Para ello utilizo el siguiente código que me fue recomendado:

Private Sub Comando7_Click()
Const rutaPlantilla As String = "Z:\Comun\kil.dotm"
Dim miWord As Object
Set miWord = CreateObject("Word.Application")
miWord.Documents.Add rutaPlantilla
miWord.Application.Visible = True
Set miWord = Nothing
End Sub

El problema es que al ir a ejecutarlo, me sale lo siguiente:

Se ha producido el error 5981 en tiempo de ejecución:

Error definido por la aplicación o el objeto.

Al ir a depurar me pone en color amarillo la siguiente frase del código:

MiWord. Documents. Add rutaPlantilla

Pero no tengo ni idea como hacer para que funcione.

Si me podéis ayudar lo agradecería mucho.

1 respuesta

Respuesta
1

Supongamos que en el formulario tienes un cuadro de texto llamado, por ejemplo, TextoA donde tienes escrito, por ejemplo, Visitas.doc.

En el evento del botón prueba con

Dim ruta As String
ruta = "c:\users\cabarcos\documents" & "\" & "" & Me.[TextoA] & ""
Application. FollowHyperlink ruta

Así, al pulsar el botón te abrirá el doc de Word.

Lógicamente tendrás que cambiar la ruta por la tuya

Solamente tengo un botón que me abre una plantilla de Word. El tema del código que me dieron es que iba muy bien pero al cambiar de Windows me da el error que he mencionado. Probaré con la forma que me dices pero me parece que me abrirá la plantilla original y eso no me vale ya que necesito abrir el documento1 que se abre al clickar la plantilla y no la original ya que me la podrían modificar y eso no me interesa. 

La instrucción Application... te abre lo que sea. Se "fija" en la extensión y eso es lo que te abre.

Por ejemplo, si pone

... jpg te abre la imagen con el editor predetrminado

... Accdb te abre esa bate de datos

... dotx te abre la plantilla

Etc

Si, he visto que se me abre, pero necesito que no se me abra la plantilla original sino un documento nuevo que no permita al usuario cambiar la plantilla original.

Entiendo que el problema puede estar en que se me ha cambiado el word xp por el word 2010, y me imagino que en mi código no reconoce el word2010 y debo hacer algún cambio en él pero no se que cambio debo hacer.

Si por plantilla original te refieres a la que viene "de fabrica" con el Office, no tienes problema, la abres, le haces los cambios que quieras y la guardas, o bien con el mismo nombre, o bien con otro en cualquier carpeta de tus documentos. Cuando la guardas en otro lado ya le pone la extensión .docx

Por tanto, si en TextoA pones, por ejemplo, Fecha.docx te abre ese documento y no la plantilla.

Gracias pero no he tenido que hacerlo bien.

he puesto tu codigo y quitando & "\" & "" & Me.[TextoA] & "" al final se me abre la plantilla original

yo lo que necesito es no abrir la plantilla original (plantilla se llama contactos) y necesito que se me abra la que se genera al hacer click en la plantilla (Documento1). para que de esa forma no se me pueda modificar la plantilla original (contactos)

Vamos a ver si me explico. Si tu abres una plantilla de Word, que "de fábrica" vienen con la extensión dotx y pulsas archivo-guardar como, le pones el nombre que quieras y la guardas donde quieras, te la guarda con la extensión docx, que es un documento normal de Word.

Por tanto, si en el formulario pones la instrucción que te dije te abre el documento con extensión docx, y la plantilla original no se toca.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas