Posicionarse en el recordset

08/09/2004 - 10:01 por Setnis | Informe spam
Hola a todos,

Tengo un problema con un recordset, tengo una pantalla
que me lleva a otra donde inserto registros, al insertar
registros en la segunda pantalla necesito que se
actualicen ciertos cambios de la primera para ello
realizo las siguientes instrucciones en visual basic
script:

'Guardamos y le pasamos el recordset del expediente para
que se actualicen los campos
retorno = Actuacion.Guardar
(usuario,top.self.document.frames.item
("topFrame").Document.dsoActuaciones.recordset,
rsActuaciones, conex, top.opener.top.document.frames.item
("mainFrame").Document.dsoExpediente.recordset,
rsExpedientes, ultimaSqlExp)
'Asignamos el nuevo RecordSet del expediente
top.opener.top.document.frames.item
("mainFrame").dsoExpediente.SourceRecordset =
rsExpedientes
'Nos situamos en el expediente actual
top.opener.top.document.frames.item
("mainFrame").dsoExpediente.recordset.movefirst
top.opener.top.document.frames.item
("mainFrame").dsoExpediente.recordset.find "carunion='" &
auxcarunion & "'",,1

Es decir trato de posicionarme en el registro qu estaba
anteriormente con las datos actualizados.

El problema es que se posiciona en el registro primero.
Es decir como si el find no funcionase, aunque si lo hago
paso a paso compruebo que si se posiciona.
En el componente Actuacion.Guardar realizo las siguientes
intrucciones para devolver el rsExpedientes:

'Volvemos a crear el recordset actualizado
Set rsExpNew = New ADODB.Recordset
rsExpNew.ActiveConnection = conex
rsExpNew.CursorLocation = adUseClient ' Desconectar
rsExpNew.CursorType = adOpenKeyset ' No cursor
rsExpNew.LockType = adLockOptimistic ' Lock
rsExpNew.Open ultSQLExp

Set rsExpNew.ActiveConnection = Nothing

Alguien sabe que puedo estar haciendo mal, he probado con
diferentes CursorType y LockType.

Gracias de antemano.

Preguntas similare

Leer las respuestas

#1 Jhonny Vargas P. [MVP]
09/09/2004 - 01:33 | Informe spam
Hola,

Te recomiendo utilizar sentencias SQL Para actualizar, eliminar e insertar
registros.

como por ejemplo:

Sql = "Insert tabla (campo1, campo2) values (1, 2)"
objConnection.Execute Sql

Sql = "Update tabla Set campo1 = 1, campo2 = 2 where campo3 = 3 "
objConnection.Execute Sql

Sql = "Delete tabla where campo3 = 3 "
objConnection.Execute Sql

Saludos,
Jhonny Vargas P.
Santiago de Chile

"Setnis" escribió en el mensaje
news:7e7201c4957a$08595f00$
Hola a todos,

Tengo un problema con un recordset, tengo una pantalla
que me lleva a otra donde inserto registros, al insertar
registros en la segunda pantalla necesito que se
actualicen ciertos cambios de la primera para ello
realizo las siguientes instrucciones en visual basic
script:

'Guardamos y le pasamos el recordset del expediente para
que se actualicen los campos
retorno = Actuacion.Guardar
(usuario,top.self.document.frames.item
("topFrame").Document.dsoActuaciones.recordset,
rsActuaciones, conex, top.opener.top.document.frames.item
("mainFrame").Document.dsoExpediente.recordset,
rsExpedientes, ultimaSqlExp)
'Asignamos el nuevo RecordSet del expediente
top.opener.top.document.frames.item
("mainFrame").dsoExpediente.SourceRecordset > rsExpedientes
'Nos situamos en el expediente actual
top.opener.top.document.frames.item
("mainFrame").dsoExpediente.recordset.movefirst
top.opener.top.document.frames.item
("mainFrame").dsoExpediente.recordset.find "carunion='" &
auxcarunion & "'",,1

Es decir trato de posicionarme en el registro qu estaba
anteriormente con las datos actualizados.

El problema es que se posiciona en el registro primero.
Es decir como si el find no funcionase, aunque si lo hago
paso a paso compruebo que si se posiciona.
En el componente Actuacion.Guardar realizo las siguientes
intrucciones para devolver el rsExpedientes:

'Volvemos a crear el recordset actualizado
Set rsExpNew = New ADODB.Recordset
rsExpNew.ActiveConnection = conex
rsExpNew.CursorLocation = adUseClient ' Desconectar
rsExpNew.CursorType = adOpenKeyset ' No cursor
rsExpNew.LockType = adLockOptimistic ' Lock
rsExpNew.Open ultSQLExp

Set rsExpNew.ActiveConnection = Nothing

Alguien sabe que puedo estar haciendo mal, he probado con
diferentes CursorType y LockType.

Gracias de antemano.
Respuesta Responder a este mensaje
#2 Setnis
09/09/2004 - 09:27 | Informe spam
Hola, creo q el problema no está ahí xq cuando borro una
línea de la ventana activa tengo q actualizar el registro
de la ventana q tengo detrás y en ese caso realizo una
sentencia SQL (Update) y aún así se me posiciona en el
primer registro. O mejor dicho, eso es lo q visualizo xq
si lo hago paso a paso con el depurador veo q el
Absoluteposition está correctamente.

¿Puede q sea un tema de manejo de un recordset desde una
ventana q no es la propia?
He probado casi de todo y no doy con ello, pero muchas
gracias por tu ayuda.

Hola,

Te recomiendo utilizar sentencias SQL Para actualizar,


eliminar e insertar
registros.

como por ejemplo:

Sql = "Insert tabla (campo1, campo2) values (1, 2)"
objConnection.Execute Sql

Sql = "Update tabla Set campo1 = 1, campo2 = 2 where


campo3 = 3 "
objConnection.Execute Sql

Sql = "Delete tabla where campo3 = 3 "
objConnection.Execute Sql

Saludos,
Jhonny Vargas P.
Santiago de Chile

"Setnis" escribió en el mensaje
news:7e7201c4957a$08595f00$
Hola a todos,

Tengo un problema con un recordset, tengo una pantalla
que me lleva a otra donde inserto registros, al




insertar
registros en la segunda pantalla necesito que se
actualicen ciertos cambios de la primera para ello
realizo las siguientes instrucciones en visual basic
script:

'Guardamos y le pasamos el recordset del expediente




para
que se actualicen los campos
retorno = Actuacion.Guardar
(usuario,top.self.document.frames.item
("topFrame").Document.dsoActuaciones.recordset,
rsActuaciones, conex,




top.opener.top.document.frames.item
("mainFrame").Document.dsoExpediente.recordset,
rsExpedientes, ultimaSqlExp)
'Asignamos el nuevo RecordSet del expediente
top.opener.top.document.frames.item
("mainFrame").dsoExpediente.SourceRecordset >> rsExpedientes
'Nos situamos en el expediente actual
top.opener.top.document.frames.item
("mainFrame").dsoExpediente.recordset.movefirst
top.opener.top.document.frames.item





("mainFrame").dsoExpediente.recordset.find "carunion='" &
auxcarunion & "'",,1

Es decir trato de posicionarme en el registro qu estaba
anteriormente con las datos actualizados.

El problema es que se posiciona en el registro primero.
Es decir como si el find no funcionase, aunque si lo




hago
paso a paso compruebo que si se posiciona.
En el componente Actuacion.Guardar realizo las




siguientes
intrucciones para devolver el rsExpedientes:

'Volvemos a crear el recordset actualizado
Set rsExpNew = New ADODB.Recordset
rsExpNew.ActiveConnection = conex
rsExpNew.CursorLocation = adUseClient ' Desconectar
rsExpNew.CursorType = adOpenKeyset ' No cursor
rsExpNew.LockType = adLockOptimistic ' Lock
rsExpNew.Open ultSQLExp

Set rsExpNew.ActiveConnection = Nothing

Alguien sabe que puedo estar haciendo mal, he probado




con
diferentes CursorType y LockType.

Gracias de antemano.




.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida