Hola Fer.
PRIMERO: Creamos la función a medida con código VBA.
SEGUNDO: Invocamos la funcion anterior desde una SELECT, exactamente igual
a como lo hariamos con una función predefinida.
Por ejemplo:
La siguiente SELECT utiliza la función UCASE predefinida en VBA (pruebala)
SELECT Nombre, UCASE(Nombre) AS NombreMayuscula
FROM Clientes
Del mismo modo, puedes sustituir la función predefinida UCASE por otra
definida a medida por ti mismo:
SELECT Nombre, MiFuncionUCASE(Nombre) AS NombreMayuscula
FROM Clientes
Para ello deberas crear tu funcion MiFuncionUCASE en un módulo, de la
siguiente manera:
Public Function MiFuncionUCASE(ByVal cadena as string) as string
MiFuncionUCASE = Ucase(cadena)
End Function
Por supuesto, dentro de esta función puedes poner el codigo que quieras,
por ejemplo una estructura CASE como decias antes.
Procura que no sea un código muy complejo, ya que se ejecutara tantas
veces como registros devuelva tu consulta, y por tanto puede ralentizarla
mucho.
Muy importante: aunque parezca obvio, el principal error que cometemos en
estos casos es no declarar la funcion como Public. Si no es Public, la
Select no "reconocera" la función y por tanto dará un error.
Un saludo y no dudes en preguntar si te da problemas.
Flashman.
Post by FerHola a todos,
Aprendiendo el uso (o no uso) de CASE leà una
exposición de Emilio en donde habla de crear una función en VBA y llamarla
desde una consulta en lenguaje SQL. Alguién podrÃa darme un ejemplo sencillo.
Post by FerDesde ya muchas gracias. En particular a Eduardo, Emilio, Chea, Flashman y Victor
que me ayudaron con mi duda del sabado.