** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Tus Funciones Favoritas & Aportaciones & Artí­culos
  Mensajes nuevos Mensajes nuevos RSS - Consultas. Simulación Autonumérico 3
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoConsultas. Simulación Autonumérico 3

 Responder Responder
Autor
Mensaje
genoma111 Ver desplegable
Administrador
Administrador
Avatar

Unido: 28/Marzo/2011
Localización: ...
Estado: Sin conexión
Puntos: 3248
Enlace directo a este mensaje Tema: Consultas. Simulación Autonumérico 3
    Enviado: 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


Editado por genoma111 - 21/Agosto/2013 a las 18:52
"To VBA or not to VBA... that's the question" DFP
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable