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.
 

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.

Preguntas similares