Imprimir página | Cerrar ventana

Consultas. Simulación Autonumérico 3

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Tus Funciones Favoritas & Aportaciones & Artí­culos
Descripción del foro: Para publicar código interesante, aportaciones y artículos
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=77401
Fecha de impresión: 03/Agosto/2020 a las 14:30


Tema: Consultas. Simulación Autonumérico 3
Publicado por: genoma111
Asunto: Consultas. Simulación Autonumérico 3
Fecha de publicación: 21/Agosto/2013 a las 17:42
Palabras Clave: Simulación, Simulacion, Autonumérico, Autonumerico, Numeración, Numeracion, Consulta.

Esta variación de numeración en consultas la creé para responder un hilo específico, pero creo que será de utilidad para alguien más.

Lo que hace es reiniciar la numeración cada vez que cambia el valor de un campo, en este caso, un campo fecha.

Uso:

Expr1: Numeracion2("TuCampoID",[TuCampoID],"TuCampoFecha", "TuConsultaActual")

Los campos contemplados deben estar incluidos y ser visibles en la consulta.

El ordenamiento se hace en la propia consulta, lo que da más flexibilidad al usuario.


'*****************************************************************
' Función   : Numeracion2
' Propósito : Reinicia el contador cuando cambia la fecha.
' Autor     : Diego F. Pereira-Perdomo
' Fecha     : 3/Junio/2012
'*****************************************************************
Public Function Numeracion2(NombreCampoID As String, _
                             ValorCampoID As Long, _
                         NombreCampoFecha As String, _
                           NombreConsulta As String) As Long

Static lngVA    As Long
Dim rst         As DAO.Recordset
Dim Fecha1      As Date
Dim Fecha2      As Date

On Error Resume Next

   Set rst = CurrentDb.OpenRecordset(NombreConsulta, dbOpenDynaset)
   
   With rst
       .FindFirst "[" & NombreCampoID & "] = " & ValorCampoID
           Fecha1 = rst(NombreCampoFecha)
       .MovePrevious
           Fecha2 = rst(NombreCampoFecha)
       
       If Fecha1 = Fecha2 Then
           lngVA = lngVA + 1
       Else
           lngVA = 1
       End If
       
   End With

Numeracion2 = lngVA

End Function


-------------
"To VBA or not to VBA... that's the question" DFP



Imprimir página | Cerrar ventana