RE:Encontrar el numero mayor
Hola Fenix:
Aparentemente, la SELECT está bien, pero yo creo que en Approach, la sentencia SELECT no es estándar. Yo no he conseguido que las funciones (YEAR(), NOW(), etc.) que se pueden utilizar en la cláusula WHERE trabajen. Me las arreglo para no tener que usarlas.
En tu caso tienes 2 soluciones:
Sol. 1.
- Añadirle a la BD un campo más (ano_fec_lla), cómo fórmula de modificación que sea solamente el año del campo que te interesa (no sirve un campo calculado), tiene que estar físicamente en la BD.
- Definir en una variable el año de la fecha actual: ANOFECHA = Year(Today())
- Construir la SELECT con estos 2 valores:
"SELECT.... WHERE ano_fec_lla = '" & ANOFECHA & "'"
(fíjate que el valor de la variable va encerrada entre comillas simples). Quedaría así:
SELECT ...... WHERE ano_fec_lla = '2009'
Sol. 2.
- Hacerlo con un Find + un Sort
'========== Sentencias
Dim fFind As New Find
fFind.And "Lltc01.fec_lla", "if(AÑO(Lltc01.fec_lla) = AÑO(HOY()))"
CurrentWindow.FindSort fFind
Dim sSort As New Sort
sSort.Add "Lltc01.cod_lla", LtsSortAscending
CurrentWindow.FindSort sSort
CurrentWindow.LastRecord
NumRecords = CurrentWindow.NumRecordsFound
'============== fin
Esto también es rápido y efectivo. No tienes que añadir ningún campo más a la BD. Pero por contra, para obtener el valor que te interesa, tendrás que cambiarte a una vista con BD principal Lltc01, en la que figure el campo que te interesa y obtenerlo así:
'============
VALORMASALTO = CurrentView.Body.COD_LLA.Text
'============
Y también tienes que tener en cuenta, que cuando necesites trabajar con todos los registros, tendrás que añadir:
'====================
CurrentWindow.FindAll
'====================
Para disponer de nuevo de todos los registros de la BD.
De nuevo, suerte.
Un saludo desde A Coruña, España
Manolo