Access - Encontrar numero vacío en tabla

   
Vista:

Encontrar numero vacío en tabla

Publicado por Fernando (8 intervenciones) el 13/02/2016 13:36:38
Buenas Tardes,
necesito hacer lo siguiente:
Tengo una tabla con el campo "CODIGO"- Numero que tiene valores de 4 dígitos:

11 - Producto 1
38 - Producto 2
77 - Producto 3
66 - Producto 4

Entonces necesito que en un formulario, busque en la tabla el primer número vacío a partir del número 10 y me lo muestre.
En este caso sería me debería devolver de esta forma.

10 - Nuevo producto 1
12 - Nuevo producto 2

Espero que me podáis ayudar.
Muchas gracias y un saludo.
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

Encontrar numero vacío en tabla

Publicado por Enrique Heliodoro (1663 intervenciones) el 13/02/2016 15:17:00
Personalmente NO aprecio códigos de cuatro dígitos y es un dato FUNDAMENTAL para crear búsquedas, porque habrá que generar una comparación y el tipo de dato tiene que ser el mismo (no es igual el '1' que el '0001')
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

Encontrar numero vacío en tabla

Publicado por Fernando (8 intervenciones) el 14/02/2016 13:14:11
Disculpad, ahora lo pongo bien.

Buenas Tardes,
necesito hacer lo siguiente:
Tengo una tabla con el campo "CODIGO"- Numero que tiene valores de 4 dígitos:

0011 - Producto 1
0038 - Producto 2
0077 - Producto 3
0066 - Producto 4

Entonces necesito que en un formulario, busque en la tabla el primer número vacío a partir del número 0010 y me lo muestre.
En este caso sería me debería devolver de esta forma.

0010 - Nuevo producto 1
0012 - Nuevo producto 2

Espero que me podáis ayudar.
Muchas gracias y un saludo.
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

Encontrar numero vacío en tabla

Publicado por Enrique Heliodoro (1663 intervenciones) el 14/02/2016 21:46:19
Lo que aprecio (en la información publicada) se asemeja mas a una renumeracion de la tabla que a la localización del primer hueco libre.

De forma directa no conozco ninguna función que lo logre, hay que crearla, lo mas aproximado consistiría en localizar el menor de sus mayores y en función de la respuesta tomar decisiones.

Para renumerar esos registros se precisaría de código, pues no solo hay que generar la secuencia si no (y además) darle el formato de texto (o no respetaría los ceros que anteceden al numero).

La función (el código, que se utilice como función es optativo) se podría parecer a este:

.- se dimensiona un recordset y una variable para llevar el control del incremento

.- se carga el recordset con los registros de la tabla (basta el campo a modificar y un orden que puede ser ese mismo campo)
.- se le asigna el valor inicial a la variable
.- se desplaza el recordset a su primer registro

.- se inicia un bucle que engloba los siguientes pasos:

.- editar el registro
.- asignarle el valor de la variable (con el formato adecuado)
.- guardar los cambios
.- incrementar la variable
.- desplazarse al siguiente registro

.- repetir hasta el final
.- liberar los recursos utilizados
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Encontrar numero vacío en tabla

Publicado por Fernando (8 intervenciones) el 16/02/2016 16:48:31
Muchas gracias Enrique,

¿Me podrías indicar el código porfa? Aunque sea solo una aproximación.
Es que no se me ocurre como empezar,
Muchas gracias,
Un saludo.
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

Encontrar numero vacío en tabla

Publicado por Enrique Heliodoro (1663 intervenciones) el 16/02/2016 17:33:44
.- se dimensiona un recordset y una variable para llevar el control del incremento
Dim UnaTabla As DAO.REcordset, Incremento AS Long
.- se carga el recordset con los registros de la tabla (basta el campo a modificar y un orden que puede ser ese mismo campo)
Set UnaTabla = CurrentDb.OpenRecordset("Select Codigo From ???? Order By Codigo")
.- se le asigna el valor inicial a la variable
Incremento = ???
.- se desplaza el recordset a su primer registro
UnaTabla.MoveFirst

.- se inicia un bucle que engloba los siguientes pasos:
Do Until UnaTabla.Eof

.- editar el registro
UnaTabla.Edit
.- asignarle el valor de la variable (con el formato adecuado)
UnaTabla!Codigo = Incremento .... (opción 2) UnaTabla!Codigo = Format(Incremento,"0000")
.- guardar los cambios
UnaTabla.Update
.- incrementar la variable
Incremento = Incremento +1
.- desplazarse al siguiente registro
UnaTabla.MoveNext

.- repetir hasta el final
Loop
.- liberar los recursos utilizados
UnaTabla.Close
Set UnaTabla = Nothing


Los interrogantes se corresponden con el nombre de la tabla (ignorado), el valor inicial (el adecuado a la necesidad)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar