Contador compuesto en VBA access

Tengo un formulario donde necesito un contador pero compuesto que se ejecute al oprimir un botón:

Si es decir que este rellene doce dígitos de la siguiente manera:

Los primeros 4 indican el año actual, ejemplo 2014

Los siguientes 4 indican el correlativo: 0001 (al cambiar el año reinicie el correlativo)

Los siguientes 2 indican el mes: 07

Y los últimos 2 dígitos el día actual: 09

O sea: 201400010709 (sin espacios ni guiones)

1 Respuesta

Respuesta
1

En el código de tu botón pon este código:

Dim vUltimo As Integer
<span class="scayt-misspell" data-scaytid="470" data-scayt_word="Dim">Dim</span> vContador As String
<span class="scayt-misspell" data-scaytid="471" data-scayt_word="Dim">Dim</span> rst As DAO.Recordset
Const miSQL As String = "SELECT Mid([Contador],5,4) AS Expr1 FROM Tabla WHERE ((Left([Contador ],4)=Year(Date()))) ORDER BY Mid([Contador],5,4)"
Set rst = CurrentDb.OpenRecordset(miSQL)
'Si no devuelve registro, inicias el contador
If rst.RecordCount = 0 Then
<span class="scayt-misspell" data-scaytid="473" data-scayt_word="vUltimo">vUltimo</span> = 0
Else
'Si devuelve registros, coges el último
<span class="scayt-misspell" data-scaytid="484" data-scayt_word="rst">rst</span>.MoveLast
<span class="scayt-misspell" data-scaytid="474" data-scayt_word="vUltimo">vUltimo</span> = rst(0)
End If
'Cierras el recordset
<span class="scayt-misspell" data-scaytid="486" data-scayt_word="rst">rst</span>.Close
Set rst = Nothing
'Le añades uno al contador
vUltimo = vUltimo + 1
'Creas el contador
vContador = Year(Date) & Format(vUltimo, "0000") & Format(Month(Date), "00") & Format(Day(Date), "00")
'Lo muestras en el cuadro de texto:
Me.Contador = vContador

Tienes que cambiar lo que está en negrita (Contador y Tabla) por los nombres que tu tengas: Contador por el nombre del campo y Tabla por el nombre de la tabla donde guardas el valor.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas