Visual Basic - Error 3219?

Life is soft - evento anual de software empresarial
 
Vista:

Error 3219?

Publicado por Jc (13 intervenciones) el 29/06/2001 04:43:17
Realizo una conexión de la siguiente forma:

Set cn = New ADODB.Connection

cn.ConnectionString = "DSN=Contable;uid=sa"
cn.Open

Set rs = New ADODB.Recordset
rs.LockType = adLockOptimistic

rs.CursorType = adOpenKeyset

Luego defino en uno de mis programas un recordset publico (con eventos) de la siguiente forma:

Public WithEvents rsCuentas As Recordset

tengo los siguientes problemas:

1.- Cuando realizo un RS.MOVEPREVIOUS se cae, indicandome el error 3219, "La operación solicitada por la aplicación no está permitida en este conexto" ???????

2.-Cuando controlo el EOF de la siguiente forma...

Private Sub rsCuentas_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)

If rsCuentas.EOF Then
MsgBox "Se alcanzo el último registro", , "Plan de cuentas"
rsCuentas.MovePrevious
End If
End Sub

El programa queda en un LOOP, y cuando pruebo desde VB, debo apagar el programa.

¿Por qué sucede esto? ayuda por favor...
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:Error 3219?

Publicado por Erik (77 intervenciones) el 30/06/2001 18:02:35
Hola. El primer problema no sé por qué se produce, pero el segundo tiene una respuesta muy sencilla:

Ten en cuenta que estás codificando en el procedimiento de evento MoveComplete, es decir, que se ejecuta cada vez que te muevas de registro. Lo que ocurre es que si el recordset está vacío, tanto BOF como EOF devuelven True. Por este motivo, cada vez que haces un MovePrevious se vuelve a ejecutar el evento MoveComplete, y sin embargo, EOF sigue siendo true.

Lo solucionas fácilmente comprobando si RecordCount = 0.

Un saludo
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