Access - Odenación

 
Vista:

Odenación

Publicado por Tronic (28 intervenciones) el 07/11/2008 13:09:34
Hola a todos y gracias de antemano.

Tengo una tabla de una bd con los siguientes campos:

Código, texto. ej: 1.2 ó 3.14.5
Descripción, texto. ej: materia7 o ejercicios
Subcódigo, texto. ej: 1 ó 3.14

No sé si con lo de arriba os hareis una idea, la cuestión es que cada registro de la tabla esta relacionado con un otro registro de esta misma tabla por los campos código y subcódigo.

Por ejemplo el que tenga el código "2.15.3.12" estará relacionado con el registro que tenga el código "2.15.3" con lo cual el subcódigo del primero será el código del segundo "2.15.3"

Pues bien a la hora de ordenarlos access me los ordena mal ya que me coloca primero el código 2.15 que el el 2.5 no se como lo podría arreglar.

Mi idea era crear un campo llamado posición y que según el código del registro hiciera lo siguente

DATOS:

Código Descripción Subcódigo Posición
------------------------------------------------------------------
1.2 Ordenes 1 0102
1.7 Materia1 1 0107
1.15.6.12 casos practicos 1.15.6 01150612
1.7.13 Ejercicios 1.7 010713

Osea que la posicion la cogiera desglosando el registro código en grupos de dos dígitos
No se si esto se podrá hacer, es simple una idea para que me ordene los registros correctamente, si hay una forma mas simple o mejor bienvenida sea.

Un saludo y gracias de nuevo
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

RE:Odenación

Publicado por mi menda (1111 intervenciones) el 07/11/2008 16:08:13
Hola
Creo que te los ordena así porque 2.1 es anterior a 2.5, puedes cambiar el código así:
2.05., es decir anteponle un 0 a la unidad
2.05.3 sera anterior a 2.15.3, y por sí las moscas, sería mejor así:
2.05.03 y 2.15.03

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

RE:Odenación

Publicado por Tronic (28 intervenciones) el 07/11/2008 16:11:06
Gracias por responder "mi menda"

Eso ya lo sabía lo que pasa es que los registros ya están hechos y no puedo cambiarlos manualmente uno a uno ya que me llevaría mucho tiempo. Por eso preguntaba si atraves de codigo o de una consulta de actualización se pudiese cambiar ese codigo y ponerle como tu dices.

Un saludo y 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

RE:Odenación

Publicado por mi menda (1111 intervenciones) el 07/11/2008 17:30:56
Hola
Prueba a ver esta función en una consulta de actualización

Public Function darFormato(str As String) As String
Dim x As Variant
Dim i As Integer
Dim strFormat As String

x = Split(str, ".")

For i = 0 To UBound(x)
strFormat = strFormat & Format(x(i), "00") & "."
Next i

darFormato = Left(strFormat, Len(strFormat) - 1)
End Function

Esta función actualizará el campo al formato 00.00.00, es decir te añadirá un 0 a las unidades.
Como siempre haz pruebas antes de utilizarla.

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

RE:Odenación

Publicado por Tronic (28 intervenciones) el 07/11/2008 17:45:16
Hola de nuevo mi menda.

Múchisimas gracias ha funcionado a la perfección.

Además he aprendido tambien que puedes crear un función en vb y utilizarla en access, que no tenía ni idea de que eso se pudiera hacer. muchas gracias de verás.

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

RE:Odenación

Publicado por erika rueda (1 intervención) el 09/11/2008 22:00:52
yo no se de que trata esto
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