Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Programación General (http://www.forosdelweb.com/f14/)
-   -   error: variable de tipo object o la variable... (http://www.forosdelweb.com/f14/error-variable-tipo-object-variable-247975/)

Linuxera 18/11/2004 03:00

error: variable de tipo object o la variable...
 
Por favor, necesito que alguien me diga que error es este (91), y como se puede solucionar.

esto ya lo plantearon ayer, pero no se llego a ninguna conclusion...
lo que hago es llamar a una funcion que esta dentro de un modulo, desde un formulario.

el error es:
"variable de tipo object o la variable de bloque with no esta establecida".
lo da nada mas entrar a la funcion.
si alguien puede ayudarme........
gracias!!!!
:'(

lucasiramos 18/11/2004 04:11

¿Podrias poner el código del procedimiento que te tira el error?

Linuxera 18/11/2004 04:32

Hola Lucasiramos:
el codigo es este:

llamo a una funcion que esta en un modulo estandar, desde un formulario:
'formulario:
Call RellenarMarcas

'modulo estandar:
Public Function RellenarMarcas()
Call objWord.WDEscribirEnMarca(Nom.text, Nom.tag)
Call objWord.WDEscribirEnMarca(Apell.text, Apell.tag)
Call objWord.WDEscribirEnMarca(Dir.text, Dir.tag)
Call objWord.WDEscribirEnMarca(Pob.text, Pob.tag)
Call objWord.WDEscribirEnMarca(Prov.text, Prov.tag)
Call objWord.WDEscribirEnMarca(cpostal.text, cpostal.tag)
Call objWord.WDEscribirEnMarca(nif.text, nif.tag)
Call objWord.WDEscribirEnMarca(fechan.text, fechan.tag)
Call objWord.WDEscribirEnMarca(Eda.text, Eda.tag)
Call objWord.WDEscribirEnMarca(Emp.text, Emp.tag)
Call objWord.WDEscribirEnMarca(fechai.text, fechai.tag)
Call objWord.WDEscribirEnMarca(Tip.text, Tip.tag)
Call objWord.WDEscribirEnMarca(Sex.text, Sex.tag)
Call objWord.WDEscribirEnMarca(prof.text, prof.tag)
Call objWord.WDEscribirEnMarca(Tel.text, Tel.tag)
Call objWord.WDEscribirEnMarca(letr.text, letr.tag)
End Function

'modulo de clase:
Public Sub WDEscribirEnMarca(sTexto As String, sName As String)
For Each marca In docWord.ActiveDocument.Bookmarks
If marca.Name = sName Then
docWord.ActiveDocument.Bookmarks(sName).Range.Inse rtAfter text:=sTexto
End If
Next marca
End Sub
me da el error en la primera linea del modulo de clase.
Puedes ayudarme???
Gracias......

lucasiramos 18/11/2004 06:16

A ver... A ver...
 
Este tipo de errores se da cuando haces referencia a una variable de objeto (Un Recordset, por ejemplo) que todavia no hace referencia a un objeto válido. En el caso del recordset seria, definir la variable y sin abrir una tabla, querer meterle datos con un INSERT, por ejemplo.

En tu caso debes fijarte como definis la variable, si la instanciaste correctamente. Como seria ...

'Definicion de formulario

Private WithEvents LaVariable as LaClase

'Load del formulario

Set LaVariable = New LaClase 'ACA ESTAMOS INSTANCIANDO

¿A ver si funciona?
Saludos. Lucas

Linuxera 18/11/2004 06:42

Muchas gracias por contestarme, pero no me funciona...
Seguiré con probatinas, porque no tengo idea de por donde tirar...
Si se te ocurre algo, me cuentas...
Saludossssssssss

lic_dahool 18/11/2004 09:13

Donde pones

Código:

For Each marca ....
marca donde lo declaras y de que tipo????

Saludos.

Linuxera 18/11/2004 09:20

A ver....
Tengo otro proyecto hecho ya, donde la función en la que me da error, es la misma, y no está declarada "marca" en ningún sitio, ya que actúa como un contador, y no me pide declaración.
Así que la copié, exactamente igual, y me da este error.
¿"marca" tendría que ser una variable de un type, declarado en un módulo estándar???
Voy a probarlo, y te digo...
Perdona por mis explicaciones; no son muy buenas...
Gracias..

lic_dahool 18/11/2004 09:34

Algo que no había visto, se supone que docWord es un objeto al que previamente (por lo que veo) deberías haber echo un set una aplicacion Winword, verdad?
El problema debe de estar en esta variable, es lo único que te podría devolver ese error.

Saludos.

Linuxera 18/11/2004 09:58

GRACIASSSSSSSSSSSS Lic dahol !!!!!!!!!!!!
Ha funcionado, lo que pasa que me escribe caracteres raros, y me da otro error: no me cierra el fichero y me da el error: "Incosistencia de tipos"...
¿No sabrás por qué es?

lic_dahool 18/11/2004 10:20

Quiero creer que los caracteres raros los escribe en el doc de word, es así?

En este caso habría que hacer un debug del código y ver dónde esta el problema, es decir, si esta en la función o si viene arrastrando de antes.
El error "inconsistencia de tipos" en que parte del código se produce?

Linuxera 18/11/2004 10:43

docWord.Documents.Close ficheroNuevo

aqui me da el error; al intentar cerrar el fichero.
he hecho el debug, y el error no viene de antes, sino que se produce concretamente en esta linea.

lic_dahool 18/11/2004 11:24

la sintaxis correcta del método Close sería:

Código:

docWord.Documents.Close [GuardarCambios], [Formato], ficheroNuevo
[GuardarCambios] y [Formato] son opcionales y usa valores de constantes propios de word, por ejemplo, en [GuardarCambios] las opciones pueden ser: No Guardar, Preguntar Si Guardar, Guardar.
Los valores de estas constantes puedes obtenerlos desde Word.

Si no incluyes las constantes, en tu caso sería:

Código:

docWord.Documents.Close , , ficheroNuevo

Espero te haya sido útil.

Saludos.

Linuxera 19/11/2004 01:05

Muchas gracias!!!
Esto era lo que necesitaba; me ha funcionado.
Gracias por tu ayuda, y.....hasta otra......


La zona horaria es GMT -6. Ahora son las 01:49.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.