Cambio de valor a un campo

Tengo un tabla1 y uno de los campos es "Estado" este campo puede asumir 7 tipos de respuestas posibles. A partir de esta tabla creo una consulta de creación de tabla la tabla2 con algunos campos de la tabla1. Ahora bien como podría en esta tabla2 al momento de crearla podría camiar le valor de ese campo "Estado" por ej. Si el campo "Estado" dice en la tabla1 para un registro "listo" me lo cambia por "complete" y si para otros valores que tome ese campo.

2 respuestas

Respuesta
1
Creo que la respuesta en sencilla.
Te planteo dos soluciones. Utiliza la que más sencilla te resulte.
Solución 1:
Esta solución utiliza una tabla puente llamada, por ejemplo, "ConversionEstado" donde tengas los valores del campo estado para cada una de tus tablas tabla1 y tabla2. Te indico paso a paso cómo sería:
1. Crea una tabla "ConversionEstado" con dos campos: estado1 y estado2
2. En el campo estado1 introduce los 7 posibles valores del campo estado de la tabla1
3. En el campo estado2 tendrás que escribir el valor que corresponde en la tabla2 a cada uno de los valores de estado de la tabla1.
Por ejemplo, el primer registro de esta tabla ConversionEstado sería:
Estado1: listo Estado2: complete
Y así con los otros 6.
4. Ahora, en la consulta, añade la tabla "ConversionEstado" y lígala a la tabla1 mediante una relación entre los campos tabla1. Estado --> ConversionEstado. Estado1
5. Cambia las propiedades de la relación al tipo:
"Todos los registros de 'Tabla1' y sólo aquellos registros de 'ConversionEstado' donde los campos combinados sean iguales"
6. En la consulta, toma el campo estado2 de la tabla ConversionEstado y asígnalo al campo destino de tabla2.
Considero que es más práctica, porque si tienes que añadir un valor de estado nuevo, simplemente tienes que escribirlo en la tabla Conversionestado.
Solución 2:
Si la solución anterior no te convence, puedes usar la función siinm()
En la consulta donde creas la tabla2, en el campo donde asignas [estado], debes utilizar la función siinm() o iif()
Silnm(Condición, ParteVerdadera, ParteFalsa)
- Condición = Expresión a comprobar. En tu caso [Estado]="listo"
- ParteVerdadera = Si la expresión anterior es verdadera, aquí deberás escribir el valor que quieres que recoja el campo. En tu caso "complete"
- ParteFalsa = Valor que quieres mostrar cuando la Condición no se cumpla. En tu caso tendrás que poner otra función siinm para evaluar otro posible valor de estado.
En la casilla campo, tienes que utilizar esta función para asignar los valores que deseas.
Si tienes 7 valores, tendrás que encadenar 7 funciones siinm. Te debería quedar algo así:
Siinm([Estado]="valor1";"valor1A"; siinm([Estado]="valor2"; "valor2A"; siinm([Estado]="valor3";"valor3A";)))
Este ejemplo anida 3 funciones siinm.
Literalmente, lo que hace es:
Si Estado es "valor1", escribe "valor1A"
Si no, si estado es "valor2", escribe "valor2A"
Si no, si estado es "valor3", escribe "Valor3A"
Esta solución puede valer para casos en los que no tengas muchos valores que convertir, pero debes tener en cuenta lo siguiente:
1. Los nombres de campos de tablas deben ir entre corchetes []
2. Los valores de tipo texto deberán ir entre comillas dobles ""
3. No te pierdas con los paréntesis de cada siinm()
4. Cada vez que añadas un valor nuevo de estado, tendrás que modificar la consulta
Te agradezco por tu respuesta ya mismo me pondré a probar y te comento, te agradezco muchísimo tu tiempo que tengas un buen día.
Miguel
Disculpa que te moleste estoy con un problema tome la primera opción que me diste pero el punto 6 (disculpa mi ignorancia) no comprendo como hacerlo serías tan amable de darme una mano.
Gracias
No hace falta ya me di cuenta era tan tonto que no me daba cuenta.
Te comento realmente estuviste simplemente genial debo decirte que tengo un poquito de envidia ver lo mucho que sabes y tu altruismo por ayudar a otros.
Gracias y me gustaría saber si puedes ayudarme en otro paso que hoy lo resuelvo pero desde un programa externo. Esto que hice es porque me piden exportar la nueva tabla pero en Ingles ahora bien hay alguna manera de exportar a MySQL desde Access no vía ODBC ya que tengo windows vista y no se porque no anda. Yo encontré en Internet un modulo de Pedro Freire de CYNERGI que funciona bien pero cuando exporta lo hace de todas las tablas y yo solo necesito una. Si me puedes ayudar te estaré agradecido
Me temo que puedo serte de mucha ayuda en esta ocasión, pues no he trabajado nunca con MySQL, y muy poco con Windows Vista.
De todas formas, supongo que lo que necesitas es una versión nueva del controlador de ODBC que utilizas para exportar a MySQL, que sirva para Windows Vista.
¿Has probado a buscar en Internet una versión más nueva del controlador ODBC que utilizas?
Respuesta
1
Tu respuesta no es difícil, pero es complicado de explicártelo sin los datos. Básicamente lo que tu quieres hay que hacerlo con un script de código sencillo que Diga algo así:
If Me.Estado.value = "listo" Then
Me.Estado.value = "complete"
End if
Esto debe ir antes justo del código que crea la tabla.
Para hacer esto primero debes crear un formulario con un botón que en su procedimiento de evento Al hacer clic ejecute la sentencia de creación de tabla que será algo así SELECT Nombretabla. Nombrecampo.... INTO NombrenuevaTabla .
Tu código de creación de tabla lo puedes ver en la vista SQL de la consulta que crea la tabla. Lo copias y lo pones en el código del botón que has creado, justo después de el código anterior.
Ya se que es un poco lioso y complicado, si no te aclaras mándame la base de datos, junto con lo que quieres hacer detallado y te lo intento hacer.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas