Obtener datos de una tabla desde visual basic

Quiero obtener el dato de una campo determinado de una tabla determinada, el último registro para ser concretos. Y para obtener el ultimo registro, ¿con un criterio sobre otro campo?

1 respuesta

Respuesta
1
Hay bastantes y documentadas formas de hacer esto, puedes probar el siguiente subprocedimiento con neptuno.mdb. Pega el Sub en cualquier modulo o crea uno nuevo para el propósito:
Ejemplo del método Move
Este ejemplo utiliza el método Move para posicionar el puntero del registro basado en una entrada del usuario.
Sub MoveX()
Dim dbsNeptuno As Database
Dim rstProveedores As Recordset
Dim varMarcador As Variant
Dim strComando As String
Dim lngMover As Long
Set dbsNeptuno = CurrentDb
Set rstProveedores = _
dbsNeptuno.OpenRecordset("SELECT NombreCompañía, " & _
"Ciudad, País FROM Proveedores ORDER BY NombreCompañía", _
DbOpenDynaset)
' Salida de la Consulta
With rstProveedores
' Llena el Recordset.
.MoveLast
.MoveFirst
Do While True
' Muestra la información acerca del registro
' Actual y pregunta al usuario cuántos registros desea mover.
strComando = InputBox( _
"Registro " & (.AbsolutePosition + 1) & " de " & _
.RecordCount & vbCr & "Compañía: " & _
!NombreCompañía & vbCr & "Ciudad: " & !Ciudad & _
", " & !País & vbCr & vbCr & _
"Introduzca el número de registros a mover " & _
"(positivo o negativo).")
If strComando = "" Then Exit Do
' Almacena el marcador de posición en caso de que no funcione Move.
varMarcador = .Bookmark
' El método Move necesita el parámetro del tipo de datos Long.
lngMover = CLng(strComando)
.Move lngMover
' Intercepta el BOF o el EOF.
If .BOF Then
MsgBox "¡Demasiado hacia atrás! " & _
"Volviendo al registro actual."
.Bookmark = varMarcador
End If
If .EOF Then
MsgBox "¡Demasiado hacia adelante! " & _
"Volviendo al registro actual."
.Bookmark = varMarcador
End If
Loop
.Close
End With
dbsNeptuno.Close
End Sub
Para obtener el ultimo registro, con un criterio sobre otro campo, puedes usar el mismo Filtro que te aconseje en una respuesta anterior, solo que modificado:
Añades un cuadro de texto independiente para que nos sirva de cadena de criterios, y un botón de comando para ejecutar el siguiente Sub:
Sub EsFiltro()
On Error Resume Next
Dim frm As Form, cadMsg As String
Dim cadInput As String, cadFiltro As String
' Abrir
DoCmd.OpenForm "ClientesFiltro"
' Devolver variable de objeto Formulario
Set frm = Forms!ClientesFiltro
cadInput = Me.CtlTextIndp 'el texto que escribamos finalizado con un * servirá
'para construir la cadena de criterios usando el campo IdCliente.
cadFiltro = BuildCriteria("IdCliente", dbText, cadInput)
' Establecer propiedad Filtro para aplicar Filtro.
frm.Filter = cadFiltro
' Establecer la propiedad ActivarFiltro; el formulario muestra ahora los registros filtrados.
frm.FilterOn = True
DoCmd.GoToRecord , , acLast 'mover al ultimo registro del conjunto recordset filtrado
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas