Access - enumerar registros por grupos en tabla de access

 
Vista:
sin imagen de perfil
Val: 11
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

enumerar registros por grupos en tabla de access

Publicado por Edwin (6 intervenciones) el 27/10/2019 22:57:44
Muy buen dia, es mi primer post en esta pagina y quisiera algo de su ayuda en un proyecto de access.

tengo una tabla en access llamada archivo en la cual existen varios campos, entre ellos se encuentran agenda_id, jornada_id, cliente.

deseo actualizar cada uno de esos registros modificando agenda_id de tal forma que empieze a numerar desde 1 hasta la cantidad de registros que hayan y que ese numero se reinicie cuando el jornada_id cambie.

esta numeracion la intento hacer en codigo vba al dar click en un boton de un formulario que no esta enlazado a dicha tabla.
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

enumerar registros por grupos en tabla de access

Publicado por Anonimo (3316 intervenciones) el 27/10/2019 23:22:14
1
Nz(Dmax("Agenda_Id", "Archivo","Jornada_Id = " & me.Jornada_Id ) , 0) + 1

Si se dispone de un cuadro de texto con una referencia a 'Jornada_Id' (en el ejemplo he considerado que es un numero y que esta en un cuadro de texto de un formulario), esa formula proporcionaría el siguiente al mayor 'Agenda_Id' (en la tabla) y se reiniciaría con cada 'Jornada_Id'

Habra que adecuarla a los valores y tipos de datos reales y es indispensable poder acceder (en modo lectura por lo menos) a la tabla 'Archivo'

Respecto al botón … suele ser mas interesante automatizar la generación de esa clave en la propia creación de ese registro, pero nada impide que se utilice de cualquier otra forma.
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
sin imagen de perfil
Val: 11
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

enumerar registros por grupos en tabla de access

Publicado por Edwin (6 intervenciones) el 27/10/2019 23:41:37
gracias por tus comentarios, sin embargo en el formulario no tengo asociada la tabla en cuestion, lo que quiero es que en un formulario cualquiera, al dar click en un boton vaya a una tabla "archivo" y empieze a escribir en el campo "agenda_id" numeros continuos desde uno hasta el ultimo registro, pero que cuando ese registro pertenezca a otra jornada_id empieze desde 1 y vuelva a asignar valores numericos desde uno.

espero haberme echo entender

Gracias
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
sin imagen de perfil
Val: 11
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

enumerar registros por grupos en tabla de access

Publicado por Edwin (6 intervenciones) el 28/10/2019 02:40:11
envio pantallazo de la tabla en cuestion, en la primera columna deseo ingresar numeros consecutivos desde uno dependiendo de si cambia la segunda columna.
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

enumerar registros por grupos en tabla de access

Publicado por Anonimo (3316 intervenciones) el 28/10/2019 08:33:07
No aprecio adjunto alguno, y tampoco veo problema alguno en que se utilice esa metodología para la generación de números secuenciales que cumplan la regla de pertenecer a un subconjunto.

Que se utilice un botón en un formulario, que ese formulario tenga o no como origen de datos esa u otra tabla es indiferente, lo expuesto genera (en base al ultimo y mayor conocido y si no existe inicia la serie) el siguiente numero a crear.

La creación es otro punto que nada tiene que ver, se puede hacer de mil maneras diferentes, una de ellas es la 'clásica': una SQL de inserción y si deseo generar (a partir del ultimo que exista) una serie de doscientos registros …. pues un simple bucle (For ...Next, DO ….Lop ,...)

Y vale para dos y para doscientos, pues conocido el primero a crear, el resto es ir sumándole una unida para llegar al numero deseado, algo que se puede hacer con VBA e incluso con MACROS, lo único que se necesita es tener claro lo que se pretende.
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
sin imagen de perfil
Val: 11
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

enumerar registros por grupos en tabla de access

Publicado por Edwin (6 intervenciones) el 29/10/2019 03:29:22
he logrado con el siguiente codigo generar numeros consecutivos en el campo agenda_id, pero aun no logro descifrar como hacer para que cuando cambie jornada_id el contador se reinicie desde 1.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Dim dbTemporal As DAO.Database
Dim Rs As DAO.Recordset
Dim  Contador As Integer
 
Set dbTemporal = CurrentDb
Set Rs = CurrentDb.OpenRecordset("archivoexcel")
Contador = 1
 
Rs.MoveLast
Rs.MoveFirst
 
Do While Not Rs.EOF
    Rs.Edit
    Rs!agenda_id = Contador
    Rs.Update
    Rs.MoveNext
    Contador = Contador + 1
Loop
 
Rs.Close
dbTemporal.Close
Set rsREGISTROS = Nothing
Set dbTemporal = Nothing
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
sin imagen de perfil
Val: 11
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

enumerar registros por grupos en tabla de access

Publicado por Edwin (6 intervenciones) el 29/10/2019 03:54:44
duda2
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

enumerar registros por grupos en tabla de access

Publicado por Anonimo (3316 intervenciones) el 29/10/2019 19:51:51
No aprecio referencia alguna al cambio de jornada ¿es un dato que se tiene que inventar Access? ….

Al inicio del bucle se guarda (en una variable del tipo adecuado) el valor de la jornada

En cada 'vuelta del bucle' se compara el valor guardado con el valor de ese campo (del registro que se pretende actualizar)

Caben dos posibilidades:
.- Es el mismo dato (la misma jornada) … no se hace nada
.- Es un dato diferente (otra nueva jornada) … se pone el contador a cero (o a uno, depende de como discurra el código)

Condición INDISPENSABLE …. que se ordene por jornada el origen de datos (y a continuación por otros campos si es necesario)
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

enumerar registros por grupos en tabla de access

Publicado por echizo (1 intervención) el 20/08/2022 15:21:35
Public Function NumeroDeOrden(ByVal Dato As Variant) As String
Static lngNumero As Long
Static DatoAnterior As String
If Dato = DatoAnterior Then
lngNumero = lngNumero + 1
Else
DatoAnterior = Dato
lngNumero = 1
End If
NumeroDeOrden = Format(lngNumero, "")
End Function

////////////////////////////////////////////////////////////////
Consecutivo: NumeroDeOrden([Jornada_Id])
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
sin imagen de perfil
Val: 11
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

enumerar registros por grupos en tabla de access

Publicado por Edwin (6 intervenciones) el 29/10/2019 03:27:04
duda
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