Access - cambiar los valores de un campo

 
Vista:

cambiar los valores de un campo

Publicado por rince (7 intervenciones) el 30/12/2005 12:24:02
Buenas! Dos consultas:

1- Tengo un campo texto del tipo 123456 (pueden ser valores de entre 3 y 6 caracteres, no solo todos iguales), y necestaria dejarlo en 1234-56 o, mejor, 56-1234.
He intentado crear un campo nuevo y, definiendo máscara de entrada, he logrado tener xxxx-xx, el problema es cuando hay menos de 6 acaracteres, que me lo deja xxxx- , por ejemplo .
Hay alguna manera de definir una máscara de entrada, o una consulta o algo, me cambie el campo a: loscaracteresquesea-00?

2- Alguna manetra de, si tengo en un mismo campo dos apellidos, me cree automáticamente una ID que sean las 2 primeras letras de cada apellido más un número (por ejemplo el numero de registro o valor de un campo autonumérico?
Ej: Martínez Soria --> MASO53 (si no puede ser lo del número aleatorio, sólo lo de sacar los dos apellidos)

Muchas gracias por la ayuda!!
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:cambiar los valores de un campo

Publicado por Enrique (1299 intervenciones) el 31/12/2005 13:13:46
Hola Rince:
Mira a ver si te apañas con esto. Los Eventos pueden ser Al recibir el Enfoque el campo nuevo o al pulsar un botón, eso lo decides tu.

Primer caso:
txtNuevo = Right(txtOrigen, 2) & "-" & Mid(txtOrigen, 1, Len(txtOrigen) - 2)

Para este segundo caso igual, tu decides el Evento:
Dim K As Long, Ape1, Ape2 As Variant
Ape1 = Left(Apellidos, 2)
For K = 1 To Len(Apellidos)
If Mid(Apellidos, K, 1) = " " Then Ape2 = Mid(Apellidos, K + 1, 2)
Next K
ID = Ape1 & Ape2 & Format(Me.CurrentRecord, "00")

Apellidos sería el campo que contiene los dos apellidos, ID el campo que recibirá las 4 letras más el número de registro. Supongo que los apellidos siempre estarán separados por un espacio en el Campo Origen.

Saludos y Feliz entrada de año.
Enrique
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:cambiar los valores de un campo

Publicado por rince (7 intervenciones) el 01/01/2006 22:05:07
Muchísimas gracias Enrique!

He probado el primer caso y funciona perfectamente! Mañana pruebo el resto cuando llegue al trabajo, una vez esté con la base de datos entera.

Gracias y feliz año!!!
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:cambiar los valores de un campo

Publicado por rince (7 intervenciones) el 02/01/2006 21:53:20
Buenas!

Enrique, tengo un ligero problema con el segundo ejemplo. La verdad es que apenas he trabajado con código y no se bien qué hacer con él; es decir, he de crear una consulta en SQL y poner el código que me has dado (cambiando los campos, se entiende) o generar una expresión nueva en una consulta poninedo ese código.

Si me dijeras dónde he de insertarlo, te estaría muy agradecido.

Muchas gracias por tu paciencia!
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:cambiar los valores de un campo

Publicado por Enrique (1299 intervenciones) el 03/01/2006 19:06:37
Hola Rince:

No tienes que crear ninguna consulta Sql ni nada por el estilo, sólo tienes que cambiar "Apellidos" por el nombre de tu campo procedente de la tabla donde se guardan los dos apellidos; éste es el único cambio que tienes que hacer porque Ape1 y Ape2 son variables y puedes dejarlas con estos nombres. Ahora hay que ver en qué Evento lo metes y dependerá de como tengas el formulario. Supongamos que tienes un formulario en vista simple que muestra un sólo registro por pantalla, entonces en ese formulario debe mostrarse, entre otros, el Campo "Apellidos" y el Campo ID que tendrá el Origen del Control en la misma tabla, por ejemplo:

Apellidos: MARTINEZ SORIA ID: En blanco

Los Eventos pueden ser:
"Al recibir el Enfoque" el campo ID:
Private Sub ID_GotFocus()
Aquí todo el código que te indiqué
End Sub

"Al perder el Enfoque" el campo Apellidos:
Private Sub Apellidos_LostFocus()
Aquí el código
End Sub

"Al pulsar un botón de comando:
Private Sub NombreBoton_Click()
Aquí el código
End Sub

Al ejecutarse cualquiera de estos Procedimientos de Evento, en el campo ID aparecerá MASOXX, donde XX será el número de registro activo y luego al cambiar de registro o salir del formulario, MASOXX se graba en el campo ID de la tabla y ya lo tienes disponible para trabajar con él donde lo necesites.

Si ves que no te sale, no te preocupes, dímelo y te envío un ejemplo práctico en Access 2000.

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