Consulta Expresión Demasiado Compleja Access

¿Me podrán ayudar con esto? ¿Ya qué no se como hacer para que en la columna de una tabla de acuerdo a un código me traiga la provincia que corresponde?.

Esto seria lo que hice pero no me lo toma por ser demasiado complejo, y no me sirve hacerlo en excel y importar los datos ya que esta online con un formulario de carga.

Desde ya muchas gracias! El código es el siguiente:

 SiInm([Extrae_Emplazamiento]="ARBA","BUENOS AIRES",SiInm([Extrae_Emplazamiento]="ARCF","CABA",SiInm([Extrae_Emplazamiento]="ARCO","CENTRO",SiInm([Extrae_Emplazamiento]="ARLR","CENTRO",SiInm([Extrae_Emplazamiento]="ARME","CUYO",SiInm([Extrae_Emplazamiento]="ARSJ","CUYO",SiInm([Extrae_Emplazamiento]="ARSL","CUYO",SiInm([Extrae_Emplazamiento]="ARCH","LITORAL",SiInm([Extrae_Emplazamiento]="ARCN","LITORAL",SiInm([Extrae_Emplazamiento]="ARER","LITORAL",SiInm([Extrae_Emplazamiento]="ARFO","LITORAL",SiInm([Extrae_Emplazamiento]="ARMI","LITORAL",SiInm([Extrae_Emplazamiento]="ARSF","LITORAL",SiInm([Extrae_Emplazamiento]="ARCT","NOA",SiInm([Extrae_Emplazamiento]="ARJU","NOA",SiInm([Extrae_Emplazamiento]="ARSA","NOA",SiInm([Extrae_Emplazamiento]="ARSE","NOA",SiInm([Extrae_Emplazamiento]="ARTC","LITORAL",SiInm([Extrae_Emplazamiento]="ARCB","PATAGONIA",SiInm([Extrae_Emplazamiento]="ARPA","PATAGONIA",SiInm([Extrae_Emplazamiento]="ARNQ","PATAGONIA",SiInm([Extrae_Emplazamiento]="ARRN","PATAGONIA",SiInm([Extrae_Emplazamiento]="ARSC","PATAGONIA",SiInm([Extrae_Emplazamiento]="ARTF","PATAGONIA",0))))))))))))))))))))))))

1 Respuesta

Respuesta
1

Sigue estos pasos:

1º/ Pulsa Atl+F11 para abrir el editor de VBA. En el menú, vete a Insertar-> Módulo

2º/ Pega esta función:

Public Function fncProvincia(elCodigo as string) as string
Select Case elCodigo
Case "ARBA"
fncProvincia="BUENOS AIRES"
Case "ARCF"
fncProvincia=CABA"
Case "ARCO"
fncProvincia="CENTRO"
...
End Select
End Function

y acaba de completar todos los casos donde están los puntos suspensivos.

3º/ En tu consulta, en vez de los SiInm, pon simplemente:

fncProvincia([Extrae_Emplazamiento])

Buenas tardes! Desde ya mil gracias por la ayuda!, lo hice de acuerdo a lo planteado paso a paso, pero después al guardar me dice un error de que el campo no puede ser calculado, ¿sera por el formato?

¿A qué formato te refieres?

El campo [Extrae_Emplazamiento] entiendo que es de texto, y el que calculas (donde pondrás la provincia) también lo ha de ser.

Claro justamente a eso me refería... el formato es texto...

Y la función te devuelve un valor de texto (Public Function fncProvincia(elCodigo as string) as string)

No entiendo a qué te refieres.

Si quieres pásame una copia de tu bd, con la tabla y la consulta, para que lo vea.

¡Gracias! Ya pude arreglarlo! Agradezco muchísimo la predisposición y preocupación por el tema! Al final estaba insertando mal el módulo ja! Desde ya mil gracias! Ahí te valore como Excelente... ¿con eso basta o se puede hacer más? Por que realmente me sirvió muchísimo la ayuda! No se como agradecerte! =) abrazo!

hola como estas?

me dejo de funcionar la función, sera que habré hecho algo mal? podre subirte la base y consulta para ver que pudo pasar? desde ya muchas gracias!

Si, sube si quieres.

Ahí va! La base hay que abrirla con Shift+doble click para poder editar, en la consulta en el campo provincia es donde esta la función, que iría a buscar el campo [Extrae_Emplazamiento] que es un campo calculado, cualquier cosa acá estoy! Mil gracias!

https://drive.google.com/a/exinegocios.com.ar/file/d/0B67Un6c3GQm4bndKUm0xX0d3Umc/view?usp=sharing 

Mil gracias!

No puedo descargar la BD. Utiliza otro método (dropbox, filebig...), y sería mejor que me pasaras una copia sólo con los elementos que intervienen (las tablas en que se basa la consulta, la consulta y el módulo en el que tienes la función)

Ahí va en Dropbox:

https://www.dropbox.com/s/e6watkrwcb0k40j/Base_Nuevos_Macro1.accdb?dl=0 

Pido disculpas por los inconvenientes!

No le veo sentido a lo que intentas hacer. Me explico, si la provincia la obtienes a partir del campo Emplazamiento, lo que tendrías que hacer es eliminar de la tabla el campo provincia, y calcularlo directamente en la consulta (poniendo en una columna Provincia: fnProvincia([Extrae_Emplazamiento]) ) que para eso es la función, devuelve la provincia que se corresponde al codigo emplazamiento

Lo que tu haces, es filtrar los resultados de la consulta por la provincia que se corresponde al código del campo "Extrae emplazamiento", lo que implica que te va a devolver los mismos registros que si no pusieras el criterio, pues en realidad, no estás filtrando nada.

Dicho esto, el problema de que no te funcione la función, viene porque le has cambiado el nombre, de fncProvincia() a fnProvincia() en el encabezado de la misma en el módulo, pero no lo cambiaste en cada uno de los case dentro de la misma:

Public Function fncProvincia(elCodigo As String) As String
Select Case elCodigo
Case "ARBA"
fncProvincia = "BUENOS AIRES"
Case "ARCF"
fncProvincia = "CABA"

...

Solución: ponle a todo el mismo nombre.

¡Gracias!!!! Genial! se ve que lo borre de acelerado, ahí lo acomode como sugeriste y funciono! me salvaste el día! mil gracias por compartir el conocimiento y la paciencia por sobre todas las cosas! mil gracias!

Abrazo grande!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas