Visual Basic - URGENTE:::Este es un verdadero RETO!!!

Life is soft - evento anual de software empresarial
 
Vista:

URGENTE:::Este es un verdadero RETO!!!

Publicado por Lemus (5 intervenciones) el 16/12/2002 09:56:53
Esto creo que esta medio raro, espero que alguienme pueda ayudar...

En Visual basic 6.0 me marca el siguiente error:

-----------
Error '91' en tiempo de ejecución:
Variable de tipo OBJECT o la variable de bloque WITH no esta establecida
-----------

Siendo el siguiente el unico procedimiento que existe en el programa:

-------------------------------------------------------------------------------------
Private Sub LIMPIA()
'/*/ Asigna el Nombre de la base de datos y la tabla para el data de las PC
DATA1.DatabaseName = App.Path + "\data\datos.mdb"
DATA1.RecordSource = "C_PCnodisponible"
DATA1.Recordset.MoveFirst
Do While Not DATA1.Recordset.EOF
If DATA1.Recordset.Fields("Activa") = "-" Then
DATA1.Recordset.Edit
DATA1.Recordset.Fields("Activa") = "+"
DATA1.Recordset.Update
End If
DATA1.Recordset.MoveNext
Loop
End
End Sub
-------------------------------------------------------------------------------------

De antemano les digo gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:URGENTE:::Este es un verdadero RETO!!!

Publicado por manelnight (69 intervenciones) el 16/12/2002 19:08:44
Donde te da el error???
Si el error te da cuando haces data1.recordset.movefirst , será porque la tabla está vacia. YO probaria poniendolo así:
Private Sub LIMPIA()
'/*/ Asigna el Nombre de la base de datos y la tabla para el data de las PC
DATA1.DatabaseName = App.Path + "\data\datos.mdb"
DATA1.RecordSource = "C_PCnodisponible"
if not data1.recordset.eof then
DATA1.Recordset.MoveFirst
Do While Not DATA1.Recordset.EOF
If DATA1.Recordset.Fields("Activa") = "-" Then
DATA1.Recordset.Edit
DATA1.Recordset.Fields("Activa") = "+"
DATA1.Recordset.Update
End If
DATA1.Recordset.MoveNext
Loop
End if
End Sub

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE:::Este es un verdadero RETO!!!

Publicado por Lemus (5 intervenciones) el 17/12/2002 10:45:21
manelnight gracias, pro fijate que el problema sigue y sigue, y la verdad no se como solucionar esto, ("la tabla si contiene cercas de 10 registros")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE:::Este es un verdadero RETO!!!

Publicado por Fernando (166 intervenciones) el 17/12/2002 21:03:06
Si la tabla estubiera vacia, te daria otro error, el error 91 da por que no fue cargada alguna variable. Debes estar llamando al procedimiento ese, desde el evento FormLoad. Si es asi, cambialo, llamalo desde FormActivate, y desaparecera ese error. El error es por que (si lo estas llamando desde FormLoad) en el evento load, ejecuta el código, pero lo ejecuta antes de que el formulario cargue los controles, con lo cual el control data no esta cargado en el formulario, entonces, al decirle data1.... da error, por que todavia no existe data1.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE:::Este es un verdadero RETO!!!

Publicado por Juan Luis G (7 intervenciones) el 19/12/2002 05:51:37
Revice a ojo de pajaro y encontr un \"end\" que termina no se que???? podria estar ahi el problema

Private Sub LIMPIA()
\'/*/ Asigna el Nombre de la base de datos y la tabla para el data de las PC
DATA1.DatabaseName = App.Path + \"\\data\\datos.mdb\"
DATA1.RecordSource = \"C_PCnodisponible\"
DATA1.Recordset.MoveFirst
Do While Not DATA1.Recordset.EOF \' ---Comienza Do While (1)
If DATA1.Recordset.Fields(\"Activa\") = \"-\" Then \'------- comienza if (2)
DATA1.Recordset.Edit
DATA1.Recordset.Fields(\"Activa\") = \"+\"
DATA1.Recordset.Update
End If \'--Termina if (2)
DATA1.Recordset.MoveNext
Loop \' ------- Termina Do Whilw (1)
End \' ---- ??????????????????? Que se supone que termina aqui
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

TODOS ESTAN ERRADOS

Publicado por Johan Donado (8 intervenciones) el 28/12/2002 21:48:20

EL PROBLEMA CONSISTE EN QUE CADA VEZ QUE MODIFICAS DESDE CODIGO LAS PROPIEDADES DATABASENAME Y RECORDSOURCE, DEBES REFRESCAR EL CONTROL DATA ASI:

DATA1.DATABASENAME="C:\BASE.MDB"
DATA1.RECORDSOURCE="TABLA"
DATA1.REFRESH

LISTO. ESO ERA TODO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar