Sobre fecha (año) en textbox

Os comento lo que pretendo y no consigo, tengo un textbox (txtResultado) con el siguiente formato ddmmaa, todo junto, cuando en un mismo día hay varios expedientes los separo con un guion y el numero que le corresponda (ddmmaa-x). Tengo la siguiente instrucción: (txtAño = Mid(txtResultado, 5, 2), que lo que me hace es del txtResultado cogerme el año, es decir si tengo 270616 en txtAño sale 16. Lo que pretendo es que en vez de que me salga 16 me salga AÑO2016. Como tengo que plantearlo. Un saludo.

Esto es lo que tengo y no me sale

Private Sub txtResultado_AfterUpdate()

txtAño = Mid(txtResultado, 5, 2)

End sub

3

3 respuestas

Respuesta
2

No dices como pones el campo fecha, pero vamos a suponer que lo escribes como dices. Me da la impresión de que lo rellenas a cada registro. Supongamos que tienes una tabla Clientes con Id, Nombre, Fecha, Expediente y Año. Y supongamos que los datos los metes en un formulario Clientes

En el evento después de actualizar del cuadro de texto Fecha puedes poner

DoCmd. RunCommand acCmdSaveRecord
a = DCount("nombre", "clientes", "fecha=forms!clientes!fecha and id<=forms!clientes!id")
If a = 1 Then
expediente = Fecha
Else
expediente = Fecha & "-" & (a - 1)
End If

Año=format(right(fecha,2);"2000")

Así cuando en el cuadro fecha pongas una, contará cuantos registros hay con esa fecha y le irá poniendo números sucesivos al Expediente, per al primero no le pondrá nada. Esto tiene las ventajas de que no te tienes que andar preocupando de si hace el numero 2 5 etc. Y además, si en el registro 34 tienes la misma fecha que en el registro 14, te lo cuenta y no tienes que andar pensando ni retrocediendo para mirar cual era el último.

En el caso de que ya tuvieras muchos registros escritos con pone un botón y en el evento al hcer clic poner

docmd.gotorecord,,acfirst

Dim i As Integer, a As Integer
For i = 1 To Form.Recordset.RecordCount
a = DCount("nombre", "clients", "fecha=forms!clientes!fecha and id<=forms!clients!id")
If a = 1 Then
Expediente = Fecha
Else
Expediente = Fecha & "-" & (a - 1)
End If
DoCmd.GoToRecord , , acNext

Next
DoCmd. GoToRecord,, acFirst

Ira "recorriendo" los registros actualizando el campo expediente

Respuesta
1

Puedes hacer lo siguiente:

TxtAño = "AÑO20" & Mid(txtResultado, 5, 2)

... ahora bien, si en el textbox ingresas la fecha de esta manera "27/06/2016" puedes hacer lo siguiente que es mucho más sencillo:

txtAño = "AÑO" & format([nombre del textbox],"yyyy")
Respuesta
1

Supongo que txtResultado es una fecha, así que la cosa quedaría:

txtAño = "AÑO" & Format(txtResultado, "yyyy")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas