Visual Basic - ordenar una base de datos de tipo string

Life is soft - evento anual de software empresarial
   
Vista:

ordenar una base de datos de tipo string

Publicado por CARLOS KU MIS (6 intervenciones) el 01/04/2008 22:53:28
Hola saludos, soy nuevo en esto de programacion, alguien puede ayudarme con este caso? el problema hice una base de datos llamado CLIENTES y a un registro lo llame ORDEN el cual utilizo como consecutivo, pero inicia con una letra ejemplo: A1, A2 etc... pero mi error al crearlo lo puse como tipo TEXTO y el problema que tengo ahora con este es al querer ordenarlo ya que ahora ya estoy en el numero A101 pero ya mi consecutivo me lo deja en A100
ES DECIR QUE ME LO ORDENE DE ESTA MANERA Y ME ARROJE EN EL TEXT1 EL SIGUIENTE FOLIO QUE SERIA A102 PERO SOLO SE QUEDO HASTA A99 EL CUAL ME AROJA COMO RESULTADO A100:
EJEMPLO:
A98
A99
A100
A101... TEXT1=A102


ENVIO MI CODIGO QUE UTILIZO SI ALGUIEN TIENE ALGUNA OTRA OPCION DE CODIGO PASEMELO....

Dim mousepointer As Integer
mousepointer = Screen.mousepointer

Screen.mousepointer = vbHourglass

Rs2.Open "Select *from Clientes order by ORDEN", Db2, adOpenKeyset, adLockOptimistic
Rs2.MoveFirst
Do While Not Rs2.EOF
Rs2.MoveLast
TEXT1 = Rs2.Fields("ORDEN")

Exit Do
Rs2.MoveNext
Loop
Rs2.Close
Screen.mousepointer = mousepointer
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:ordenar una base de datos de tipo string

Publicado por marron (59 intervenciones) el 01/04/2008 23:21:06
Nunca vi tan cantidad de despropositos en un código
¿para qué sirve declarar mousepointer?

¿para qué haces un bucle para listar los registros y en la primera línea le dices que vaya al último?

¿porqué le dices a continuación que salga del bucle, si ya llegó al final?

¿Y porqué después de salir del bucle le dices que se mueva al siguiente registro?

y al final no se entiende la pregunta con lo que tratas de explicar
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:ordenar una base de datos de tipo string

Publicado por Augusto (158 intervenciones) el 01/04/2008 23:49:26
En estricta teoría el código al parecer funcionaría si el campo ORDEN fuese algún numérico.

MousePointer le permite conservar el estado del cursor.

El bucle está de más. Le solicita que vaya al último porque no ha hecho un ORDER BY ... DESC

Sale del bucle porque ya proceso el recordset.

Como dije el bucle está de mas y supongo que lo puso por un ejemplo que vio o el tipico Copy-Paste

La pregunta la entendí casi al 100 simplemente no me quedo claro si quieres ordenar u obtener el siguiente 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

RE:ordenar una base de datos de tipo string

Publicado por CARLOS KU MIS (6 intervenciones) el 02/04/2008 01:22:48
OK,, GRACIAS POR CONTESTAR, QUIERO REALIZAR LAS DOS COSAS ORDENAR EL REGISTRO LLAMADO "ORDEN" DE LA TABLA LLAMADA "CLIENTES" Y OTRA QUE ME DIERA EL SIGUIENTE CONSECUTIVO (O ID COMO DICE USTED)
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:ordenar una base de datos de tipo string

Publicado por respondon (26 intervenciones) el 01/04/2008 23:32:31
Si quieres ordernar usa el Order By

Pero como es texto que sea por los numeros

SELECT *
FROM TABLA
ORDER BY RIGHT(ORDEN,LEN(ORDEN)-1)

Con eso seguro y funciona, tu código esta demas.
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:ordenar una base de datos de tipo string

Publicado por Augusto (158 intervenciones) el 01/04/2008 23:45:20
Solo como observación la función right devolverá una cadena y si no me equivoco ordenara asi:

1
100
101
2
3
4
...

Habría que hacerle nada mas un CAST o un CONVERT
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:ordenar una base de datos de tipo string

Publicado por respondon (26 intervenciones) el 02/04/2008 00:07:34
No es necesario.

Primero pruebalo y luego postea.
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:ordenar una base de datos de tipo string

Publicado por Augusto (158 intervenciones) el 02/04/2008 00:19:58
Listo. Comprobado (estoy en lo correcto)

--Los datos de entrada
insert into ctg_dw_canceladas(status) values('A1')
insert into ctg_dw_canceladas(status) values('A100')
insert into ctg_dw_canceladas(status) values('A101')
insert into ctg_dw_canceladas(status) values('A2')

--Este es tu query y su salida
SELECT *
FROM ctg_dw_canceladas
ORDER BY RIGHT(status,LEN(status)-1) asc

status
A1
A100
A101
A2

--Aqui esta el mio
SELECT status
FROM ctg_dw_canceladas
ORDER BY convert( int, RIGHT(status,LEN(status)-1) ) asc

status
A1
A2
A100
A101
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:ordenar una base de datos de tipo string

Publicado por respondon (26 intervenciones) el 02/04/2008 00:36:12
Ah estas en lo cierto.
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:ordenar una base de datos de tipo string

Publicado por CARLOS KU MIS (6 intervenciones) el 02/04/2008 02:10:59
hola ingrese el codigo igual al tuyo pero me esta indicando el siguiete error: LA FUNCION 'CONVERT' NO ESTA DEFINIDA EN LA EXPRESION este es el codigo que ingrese:

Rs2.Open "SELECT ORDEN From CLIENTES ORDER BY Convert(int,RIGHT(ORDEN,LEN(ORDEN)-1) )asc", Db2, adOpenKeyset, adLockOptimistic

Set MSHFlexGrid1.DataSource = Rs2

Rs2.Close
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:ordenar una base de datos de tipo string

Publicado por Augusto (158 intervenciones) el 02/04/2008 02:40:34
Que manejador de base de datos estas utilizando?

La sentencia esta codificada para MS SQL Server
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:ordenar una base de datos de tipo string

Publicado por CARLOS KU MIS (6 intervenciones) el 02/04/2008 03:24:29
MANEJO ADODB NO MANEJO MS SQL SERVER, SOY NOVATO EN ESTO DE LA PROGRAMACION.
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:ordenar una base de datos de tipo string

Publicado por Augusto (158 intervenciones) el 02/04/2008 16:56:39
ADODB es la tecnología de acceso a datos, esta te sirve para explotar una base de datos que puede ser gestionada con MS SQL Server, MS Access u Oracle (aunque hay varias más, estas son las mas comunes)
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:ordenar una base de datos de tipo string

Publicado por CARLOS KU MIS (6 intervenciones) el 02/04/2008 17:30:49
ya ve que si soy nuevo en esto, pero gracias por su colaboracion a sido usted muy amable, entonces seria por medio de MS ACCESS.
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:ordenar una base de datos de tipo string

Publicado por Augusto (158 intervenciones) el 02/04/2008 18:20:17
Ok intenta esto:

SELECT status
FROM ctg_dw_canceladas
ORDER BY CInt(RIGHT(status,LEN(status)-1) ) asc

creo que con esa funciona en Access, es que no tengo Access instalado :S
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:ordenar una base de datos de tipo string

Publicado por CARLOS KU MIS (6 intervenciones) el 02/04/2008 19:50:16
ok.. gracias funciono con esta ultima opcion.... se lo agradesco
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