Access - Como se puede hacer esto

 
Vista:

Como se puede hacer esto

Publicado por owe (6 intervenciones) el 15/12/2004 19:35:32
Hola foro acudo a ustedes para ver como me pueden ayudar con este problema, tengo un cliente el el cual tengo instalada un aplicacion y que utiliza un modulo con un conatdor el cual funciona muy bien arrogandome elo siguiente numero :

Diciembre 0001
Diciembre 0002

Hasta aca todo bien el problema es que necesito que cuando cambie el mes el contador se resete es decir que deberia quedar asi me gustaria que el ejemplo se puedaaplica a dicho codigo desde ya gracias como siempre y saludos desde la argentina.

Diciembre 0001
Diciembre 0002
Enero 0001

Y Para utilizo el siguiente codigo:

'Se abre un nuevo registro'
DoCmd.GoToRecord , , acNewRec
DoCmd.OpenForm "ORDENDETRABAJO(Instancia)", , , , , acHidden
'Aca van las variables de base de datos y registros'
Dim Db As Database
Dim Rs As Recordset
Dim Temp As Long
Dim Mes As String
'Se establece la referencia a la base de datos'
Set Db = CurrentDb
'Se establece la referencia la conjunto de registros'
Set Rs = Db.OpenRecordset("ORDEN DE TRABAJO", dbOpenDynaset)
'Se establece la variable a 0'
Temp = 0
'Se establece el bucle'
Do Until Rs.EOF
Temp = Temp + 1
If Val(Rs![Numero]) > Temp Then
Else
Rs.MoveNext
End If
Loop
Temp = Temp + 1
'Se cierran la referencias'
Rs.Close
Db.Close
'Se hace referencia a los campos que se utilizan'
Me.Numero = Format$(Str(Temp), "0000")
Me.Cliente.SetFocus

O.W.E.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Reiniciar contador mensualmente en una aplicación de numeración

Publicado por Alejandro (4142 intervenciones) el 20/05/2023 00:00:15
Para reiniciar el contador mensualmente en tu aplicación de numeración, puedes utilizar el siguiente código VBA como ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Dim Temp As Long
Dim Mes As String
 
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("ORDEN DE TRABAJO", dbOpenDynaset)
Temp = 0
 
' Obtener el mes actual
Mes = Format$(Date, "mmmm")
 
' Comprobar si el mes actual es diferente al mes almacenado
If Mes <> Nz(DLookup("Mes", "TablaMesAnterior"), "") Then
    ' Reiniciar el contador
    Temp = 1
    ' Actualizar el mes almacenado
    Db.Execute "UPDATE TablaMesAnterior SET Mes='" & Mes & "'"
Else
    ' Obtener el último número registrado para el mes actual
    Rs.MoveLast
    Temp = Nz(Rs![Numero], 0) + 1
End If
 
' Cerrar las referencias
Rs.Close
Db.Close
 
' Asignar el nuevo número al campo correspondiente
Me.Numero = Format$(Str(Temp), "0000")
Me.Cliente.SetFocus

Ten en cuenta que este es solo un ejemplo y debes adaptarlo a tu estructura de base de datos y nombres de objetos.

La idea principal es mantener una tabla (en este caso llamada "TablaMesAnterior") que almacene el mes anterior para compararlo con el mes actual y reiniciar el contador si son diferentes.

Espero que esta solución te sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar