Recordset.Movelast
A ver, defino una consulta, la ejecuto y obtengo lo valores, que pueden ser varios. Quiero irme al ultimo poniendo Recordset.Movelast y me sale el mensaje:
"El conjunto de filas no admite recuperación hacia atrás."
¿A que puede ser debido eso?
Antes de eso tengo
Set Recordset = Comando.Execute
Que me ejecuta una consulta de busqueda.
Un saludo
"El conjunto de filas no admite recuperación hacia atrás."
¿A que puede ser debido eso?
Antes de eso tengo
Set Recordset = Comando.Execute
Que me ejecuta una consulta de busqueda.
Un saludo
Hola,
Tampo me hagas mucho caso, pero ¿no deberÃas abrir el recordset para hacer las consultas?
es decir
dim rs as New adodb.RecordSet
dim strSql as String
strSql = "select..."
rs.Open strSql, conexion, 3, 3
rs.MoveLast
Saludos
sdemingo
entonces si podrás hacer Roc
Tampo me hagas mucho caso, pero ¿no deberÃas abrir el recordset para hacer las consultas?
es decir
dim rs as New adodb.RecordSet
dim strSql as String
strSql = "select..."
rs.Open strSql, conexion, 3, 3
rs.MoveLast
Saludos
sdemingo
entonces si podrás hacer Roc
Esta abierto, ya que he realizado al consulta con el command y luego la he igualado al recordset. Aunque me has dado una idea, voy a quitar el command y lo hare directamente con el recordset
Hola MªJosé, no sé si he entendido bien la pregunta pero si es esto ami me funciona:
Private Sub Command1_Click()
Adodc1.RecordSource = "select *from poblaciones where (provincia like '" & Text1.Text & "')"
Adodc1.Refresh
Adodc1.Recordset.MoveLast
End Sub
Private Sub Command1_Click()
Adodc1.RecordSource = "select *from poblaciones where (provincia like '" & Text1.Text & "')"
Adodc1.Refresh
Adodc1.Recordset.MoveLast
End Sub
A ver, esto es lo que tengo:
strConsultaDef = "SELECT REF_NUMERO_ORDEN FROM tblreferenciaorden WHERE REF_POBLACION='" & RefPoblacion & "'"
Comando7.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:escriturasmdbdbdatosescrituras.mdb;Persist Security Info=False"
Comando7.CommandType = adCmdText
Comando7.CommandText = strConsultaDef
Set Recordset7 = Comando7.Execute
RefNumOrden = Recordset7!REF_NUMERO_ORDEN
RefNumOrden = RefNumOrden + 1
Necesito, que cuando la consulta devuelva mas de un valor, pues coja el ultimo. Y poniendo el MoveLast me pone siempre que no puede recorrerse hacia atras. Y el error me sale encima del movelast.
Un saludo
strConsultaDef = "SELECT REF_NUMERO_ORDEN FROM tblreferenciaorden WHERE REF_POBLACION='" & RefPoblacion & "'"
Comando7.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:escriturasmdbdbdatosescrituras.mdb;Persist Security Info=False"
Comando7.CommandType = adCmdText
Comando7.CommandText = strConsultaDef
Set Recordset7 = Comando7.Execute
RefNumOrden = Recordset7!REF_NUMERO_ORDEN
RefNumOrden = RefNumOrden + 1
Necesito, que cuando la consulta devuelva mas de un valor, pues coja el ultimo. Y poniendo el MoveLast me pone siempre que no puede recorrerse hacia atras. Y el error me sale encima del movelast.
Un saludo
Hola. Realmente no se muy bien cual es el error, pero por ir analizando:
¿te funciona el movenext y el moveprevious?
¿y el move?
¿te funciona el movenext y el moveprevious?
¿y el move?
el movenext me va bien, y todos los que he probado, menos el movelast. algo muy extraño
Hola nuevamente.
Estas usando un recordset de tipo Forward-only.
Posiblemente estes usando DAO, yo te aconsejo usar ADO.
Estoy buscando como puedes cambiar el tipo de recordset
Estas usando un recordset de tipo Forward-only.
Posiblemente estes usando DAO, yo te aconsejo usar ADO.
Estoy buscando como puedes cambiar el tipo de recordset
Trabajo con ADO. Esta declarado al principio de la función.
Dim Recordset7 As ADODB.Recordset
Set Recordset7 = New ADODB.Recordset
Dim Comando7 As ADODB.Command
Set Comando7 = New ADODB.Command
Dim Recordset7 As ADODB.Recordset
Set Recordset7 = New ADODB.Recordset
Dim Comando7 As ADODB.Command
Set Comando7 = New ADODB.Command
Perdon, si lo pusiste antes no lo vi.
De todas formas, creo (y vuelvo a pedir disculpas por mi ignorancia si estoy equivocado) que no te es necesario el command. Lo puedes ejecutar directamente en el recordset.
Un saludo
De todas formas, creo (y vuelvo a pedir disculpas por mi ignorancia si estoy equivocado) que no te es necesario el command. Lo puedes ejecutar directamente en el recordset.
Un saludo
Ya, pero no llevo mucho programando y hasta que no coja la practica, hago todo paso a paso como lo he ido aprendiendo.
Otro error que me sale es:
El valor de BOF O EOF es True, o el actual registro se eliminó;la operación solicitada requiere un registro actual.
Otro error que me sale es:
El valor de BOF O EOF es True, o el actual registro se eliminó;la operación solicitada requiere un registro actual.