Desde un formulario situado en cualquier registro de la tabla "T_INGRESOS", al pulsar el botón ANADIR REGISTRO, me dirige a una "Sub" donde al abrir el Recordset, quiero tomar el valor del campo "T_ING_CODSRV" del último registro del recordset, para ello utilizo dentro de WITH la función ".Movelast", pero mi sorpresa es que no me trae el valor de ese campo para el último registro sino del registro que está mostrándose en el formulario. ¿Alguien puede orientarme en por qué no se traslada al último registro?.
Sea como fuere, muchas gracias.
' Código para actualizar o grabar un registro
Private Sub B_ANADIR_Click()
Dim CODIGO_SOLICITUD As String, SQL_CODSRV As String, ANO_SOLICITUD As String, CODSRV As String, ORDEN As String
Dim TOTAL As Integer, NUEVA_SOLICITUD As Integer, CONTADOR As Integer, NUEVO_ANO As Integer, NUEVO As Integer, NUMERODEREGISTROS As Integer
Dim Conn As Object 'ADODB.Connection
ANO_SOLICITUD = LTrim(Str(Year(Date)))
NUEVO = 0
CONTADOR = 0
SQL_CODSRV = "SELECT * FROM T_INGRESOS " 'WHERE ([T_INGRESOS.T_ING_ANO] Like '" + ANO_SOLICITUD + "');"
Set DB = CurrentDb
Set RS = CurrentDb.OpenRecordset("T_INGRESOS")
With RS
If RS.EOF Then 'SI NO ESTÁ VACÍO ES QUE YA HAY REGISTROS EN ESE AÑO
NUEVO_ANO = 1 ' SI ES NUEVO AÑO
ORDEN = 1
CODSRV = "1-" & ANO_SOLICITUD
Else 'AL NO SER UN NUEVO AÑO....
NUMERODEREGISTROS = Recordset.RecordCount
.MoveLast
ORDEN = Trim(InStr(1, T_ING_CODSRV, "-"))
ORDEN = Left(T_ING_CODSRV, ORDEN - 1) ' El ORDEN será el último más 1
T_ING_CODSRV.Value = ORDEN & "-" & ANO_SOLICITUD
.MoveFirst
Do While Not .EOF
CONTADOR = CONTADOR + 1 ' CUENTA TODOS LOS REGISTROS QUE HAY EN LA TABLA
ORDEN = Trim(InStr(1, T_ING_CODSRV, "-"))
ORDEN = Left(T_ING_CODSRV, ORDEN - 1) ' El ORDEN será el último más 1
.MoveNext
Loop
.AddNew
DoCmd.GoToRecord , , acNewRec
!T_ING_CODSRV = Me.T_ING_CODSRV
!T_ING_ORDEN = Me.T_ING_ORDEN
!T_ING_ANO = Me.T_ING_ANO
!T_ING_DNI = Trim(Me.T_ING_DNI)
!T_ING_FI = Me.T_ING_FI
!T_ING_FACTURA = Me.T_ING_FACTURA
!T_ING_N_FACTURA = Me.T_ING_N_FACTURA
!T_ING_DESCUENTO = Me.T_ING_DESCUENTO
!T_ING_IVA = Me.T_ING_IVA
!T_ING_IMPORTE = Me.T_ING_IMPORTE
!T_ING_FIANZA = Me.T_ING_FIANZA
!T_ING_FIANZA_DEVUELTA = Me.T_ING_FIANZA_DEVUELTA
End If
.Close
End With