VBA: Date vs. Date$
05/06/2022VBA: obtener mi IP pública
07/06/2022
Function OrdenaForm(frm As Form, ByVal sOrden As String, ByVal tipo As String) As Boolean
'-----------------------------------------------------------------------------------------------------------------------------------------------
' Fuente : https://access-global.net/vba-una-funcion-para-ordenar-todos-los-formularios
'-----------------------------------------------------------------------------------------------------------------------------------------------
' Título : OrdenaForm
' Autor original : desconocido
' Adaptado : Luis Viadel | https://cowtechnologies.net
' Creado : No lo recuerdo
' Propósito : ordenar cualquier formulario por cualquier campoverdadero/faso según se porduzca la ordenación o no
' Argumento/s : La sintaxis de la función consta del siguiente argumento:
' Parte Modo Descripción
'-----------------------------------------------------------------------------------------------------------------------------------------------
' frm Obligatorio formulario que queremos ordenar
' sOrden Obligatorio campo por el que queremos ordenar
' tipo Obligatorio "ASC" o "DESC" según queramos ordenar ascendente o descendente
'-----------------------------------------------------------------------------------------------------------------------------------------------
' Más información : https://docs.microsoft.com/es-es/office/vba/api/Access.Form.OrderBy
' Test: : Para adaptar este código en tu aplicación puedes basarte en este procedimiento test. Copiar el bloque siguiente al
' portapapeles y pega en el editor de VBA. Descomentar la línea que nos interese y pulsar F5 para ver su funcionamiento.
'
' Sub OrdenaForm_test()
'
' debug.print OrdenaForm(Me, "MiCampo", "ASC")
'
' End Sub
'-----------------------------------------------------------------------------------------------------------------------------------------------
'
'Ejemplo proporcionado por Alba Salvá
'
' Sub OrdenaForm_test()
'
' If Not OrdenaForm(Me, "MiCampo", "ASC") Then
' MsgBox "No se pudo ordenar el formulario por el campo '" & MiCampo & "'", vbExclamation, "Ordenar por el campo " & MiCampo
' End If
'
' End Sub
Dim sform As String
On Error GoTo LinErr
sform = frm.Name
sOrden = sOrden & " " & tipo
If frm.OrderByOn And (frm.OrderBy = sOrden) Then Exit Function
frm.OrderBy = sOrden
frm.OrderByOn = True
OrdenaForm = True
Exit Function
LinErr:
OrdenaForm = False
End Function
1 Comment
Alba nos ha comentado un error que habíamos cometido y lo hemos rectificado. El error se produce cuando definimos una función como “boolean” pero no le damos las opciones “True” o “False” sino que, no devolvemos ningún valor, lo que significaría que siempre es “True”. También hemos cambiado la función test para adaptarla a esta circunstancia.
Además ha proporcionado un ejemplo haciendo uso del retorno de la función.
Gracias Alba.