** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Sentencia CASE en consulta de Access
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoSentencia CASE en consulta de Access

 Responder Responder
Autor
Mensaje
Sal Ver desplegable
Nuevo
Nuevo


Unido: 13/Noviembre/2015
Localización: Murcia
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Tema: Sentencia CASE en consulta de Access
    Enviado: 19/Febrero/2016 a las 19:34
Hola a todos.
Tengo esta curiosidad 
Esta consulta funciona perfectamente en SQLServer, ¿Existe una traduccion en Access distinta de los IFF anidados?, me refiero evidentemente a la instruccion CASE y que la consulta no sea de paso a traves.

INSERT INTO TBLTraducirMatrices ( idMatriz, idIdioma, sMatrizTraducida )
SELECT CInt([dbo_@IFG_ECSTRMATRIZ]![Code]) AS idMatriz,  
 CASE [dbo_@IFG_ECSTRMATRIZ].U_IDIOMA
WHEN 'GB' THEN 2
WHEN 'FR' THEN 4
WHEN 'DE' THEN 5
WHEN 'TR' THEN 3
      END AS idIdioma,
 [dbo_@IFG_ECSTRMATRIZ].U_TEXTOTRAD AS sMatrizTraducida
FROM [dbo_@IFG_ECSTRMATRIZ];

Gracias como siempre.
Sal
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 12529
Enlace directo a este mensaje Enviado: 19/Febrero/2016 a las 20:33
Podrías crearte una Function que te resolviera el problema, con un SELECT CASE si es lo que más te gusta, ... pero para que hacerlo si:

  IIF(Campo='GB', 2, IIF(Campo='FR', 4, IIF(Campo='DE', 5, IIF(Campo='TR', 3,0)))) As IdIdioma

te resuelve el problema ... ¿?


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
MexMan70 Ver desplegable
Colaborador
Colaborador


Unido: 17/Julio/2007
Localización: DarkSide
Estado: Sin conexión
Puntos: 9235
Enlace directo a este mensaje Enviado: 19/Febrero/2016 a las 22:39
También puedes usar la función Switch, ejemplo:

Switch(Campo = "GB",  2, Campo = "TR", 3, Campo = "FR", 4, Campo = "DE", 5)
OneDrive: http://sdrv.ms/Vk6eJd
Arriba
Sal Ver desplegable
Nuevo
Nuevo


Unido: 13/Noviembre/2015
Localización: Murcia
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Enviado: 22/Febrero/2016 a las 11:13
Gracias a los dos por contestar (como siempre).

Si, Mihura, asi se resuelve el problema, de hecho lo tenia ya resuelto con una consulta de paso a traves, pero me picaba la curiosidad.

Hola Roberto, creo que eso es lo que estaba buscando, voy a probar y cuento.

Saludos.

Arriba
Sal Ver desplegable
Nuevo
Nuevo


Unido: 13/Noviembre/2015
Localización: Murcia
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Enviado: 22/Febrero/2016 a las 11:21
Hola otra vez, efectivamente, funciona de lujo.

Dejo la sentencia:

En el visor de sql

INSERT INTO TBLTraducirMatrices ( idMatriz, idIdioma, sMatrizTraducida )
SELECT CInt([dbo_@IFG_ECSTRMATRIZ]![U_CODECAB]) AS idMatriz, Switch([dbo_@IFG_ECSTRMATRIZ]![U_IDIOMA]='GB',2,[dbo_@IFG_ECSTRMATRIZ]![U_IDIOMA]='FR',4,[dbo_@IFG_ECSTRMATRIZ]![U_IDIOMA]='TR',3,[dbo_@IFG_ECSTRMATRIZ]![U_IDIOMA]='DE',5) AS idIdioma, [dbo_@IFG_ECSTRMATRIZ].U_TEXTOTRAD
FROM [dbo_@IFG_ECSTRMATRIZ];

En el IDE grafico
idIdioma: Conmutador([dbo_@IFG_ECSTRMATRIZ]![U_IDIOMA]='GB';2;[dbo_@IFG_ECSTRMATRIZ]![U_IDIOMA]='FR';4;[dbo_@IFG_ECSTRMATRIZ]![U_IDIOMA]='TR';3;[dbo_@IFG_ECSTRMATRIZ]![U_IDIOMA]='DE';5)


Gracias otra vez y por favor, cerrar el hilo.
Sal.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable