** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Mostrar mayor valor
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoMostrar mayor valor

 Responder Responder
Autor
Mensaje
noise56 Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 18/Noviembre/2006
Localización: España
Estado: Sin conexión
Puntos: 489
Enlace directo a este mensaje Tema: Mostrar mayor valor
    Enviado: 17/Junio/2022 a las 22:09
Buenas tardes.
Windows 10
Access 2016
Tengo una base de datos y quería a ver si alguien por favor, me puede decir cómo hacer para que en un cuadro de texto en un formulario, me pinte el mayor valor de la columna "Ubicación", al abrir el formulario. Teniendo en cuenta que en dicha columna, existen diferentes formatos de valores y que se irán introduciendo más registros con mayores valores.
Realmente lo que me interesa es el mayor valor de los dígitos después del guión bajo.
Como se puede ver en la imagen adjunta, el mayor valor que se debería mostrar sería 983 
Gracias de antemano
Saludos

Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5519
Enlace directo a este mensaje Enviado: 18/Junio/2022 a las 00:41
Puedes hacer con una consulta para crear un campo donde solo sea números, con ayuda de las Funciones de texto, por ejemplo con InStr, Len y Mid, y luego lo conviertes a numero con CInt. una vez hecho esto no tienes mas que decirle que te de el top 1 de la consulta o con una función de dominio como DMax.

Saludos
Arriba
main Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 31/Agosto/2009
Localización: OVIEDO
Estado: Sin conexión
Puntos: 1234
Enlace directo a este mensaje Enviado: 18/Junio/2022 a las 10:10
Hola, esta es una pequeña función que extrae lo que hay en una cadena a partir del primer caracter deseado, encontrado.
A poco que la adaptes ya lo tienes.
y como dice emilove, debes anteponer la funcion Cint
Ten en cuenta el registro que carece del caracter "_" ya que ese caso la funcion no devolveria un número.
Para este ultimo caso la funcion deberia devolver cero(0)

Function TextoDespuesdeChar(scadena As String, schar As String) As String
If InStr(scadena, schar) > 0 Then
    If Right(scadena, 1) = schar Then scadena = Left(scadena, Len(scadena) - 1)
    TextoDespuesdeChar = Mid(scadena, InStrRev(scadena, schar) + 1)
Else
TextoDespuesdeChar = scadena  ' 0
End If
End Function

Saludos
Arriba
noise56 Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 18/Noviembre/2006
Localización: España
Estado: Sin conexión
Puntos: 489
Enlace directo a este mensaje Enviado: 18/Junio/2022 a las 10:24
Buenos días.
Mucho me temo que mis conocimientos de Access no dan para tanto.
Gracias de todos modos Emilio.
Un abarazo
Arriba
noise56 Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 18/Noviembre/2006
Localización: España
Estado: Sin conexión
Puntos: 489
Enlace directo a este mensaje Enviado: 18/Junio/2022 a las 10:26
Buenos días Main.
Ahora no puedo pero en cuanto pueda haré algunas pruebas a ver si acierto.
Gracias.
Un abrazo
Arriba
noise56 Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 18/Noviembre/2006
Localización: España
Estado: Sin conexión
Puntos: 489
Enlace directo a este mensaje Enviado: 18/Junio/2022 a las 12:23
Hola de nuevo Main.
Como ya he dicho, mis conocimientos de Access son muy de andar por casa y no sé por dónde meter mano a tu mensaje anterior.
No veo que se haga referencia a la columna "Ubicación", ni al cuadro de texto. Si puedes hacer el favor de ponerme el ejemplo más completo te lo agradeceré.
Saludos
Arriba
main Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 31/Agosto/2009
Localización: OVIEDO
Estado: Sin conexión
Puntos: 1234
Enlace directo a este mensaje Enviado: 20/Junio/2022 a las 09:03
Hola de nuevo
Lo primero que debes hacer es crear o añadir a un modulo existente la función que te di.
A continuacion pruébala en la ventana de inmediato del módulo escribiendo lo siguiente:
?TextoDespuesdeChar("HD_0983","_")
Verás que devuelve  "0983"
y si escribes
?CInt(TextoDespuesdeChar("HD_0983","_"))
te devuelve  983

Saludos





Arriba
noise56 Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 18/Noviembre/2006
Localización: España
Estado: Sin conexión
Puntos: 489
Enlace directo a este mensaje Enviado: 20/Junio/2022 a las 14:21
Hola Main, gracias otra vez.
He hecho lo que me has dicho y he probado lo que me dices de la ventana inmediato del módulo.
Como ves todo perfecto, pero no sé dónde poner lo de "CInt" ni qué hacer para que me muestre el resultado en un cuadro de texto del formulario.





Arriba
noise56 Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 18/Noviembre/2006
Localización: España
Estado: Sin conexión
Puntos: 489
Enlace directo a este mensaje Enviado: 20/Junio/2022 a las 21:47
Hola Main
Por fin he podido solucionar el problema y hacer que funcione como yo quería
Muchas gracias a todos, muy amables.
Asunto resuelto.
Saludos. Clap
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable