Access - Valores de referencia según edad y sexo

 
Vista:
sin imagen de perfil
Val: 7
Ha aumentado su posición en 5 puestos en Access (en relación al último mes)
Gráfica de Access

Valores de referencia según edad y sexo

Publicado por orlen (13 intervenciones) el 03/01/2022 15:10:43
Que tal estimad@s,

Me gustaría crear un campo donde el valor de referencia sea automático según la edad de la persona la cual puede ser: años, meses, días y el sexo. Ejemplo:

Juan Pérez 28 años sexo masculino.

Quiero que el informe en un campo defina: para una persona de 28 años masculino el rango alto es...(que lo tome de la tabla Rangos de referencia)

Cualquier ayuda será apreciada.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Eduardo

Valores de referencia según edad y sexo

Publicado por Eduardo (317 intervenciones) el 04/01/2022 03:05:35
Lo puede hacer con 2 funciones y una consulta.

TABLAS

empleados_00


empleados_01

CONSULTA

empleados_02

DISEÑO DE LA CONSULTA


empleados_03_diseno

FUNCIONES

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
Public Function rango(medad As Byte, msexo As String) As String
 
 Dim dvalor As Double
 
  dvalor = Nz(DLookup("[rango_alto]", "tblrangos", "edad=" & medad & " AND sexo='" & msexo & "'"), 0)
 
  If dvalor > 0 Then
    rango = "Para una persona de " & medad & " años " & msexo & " el rango alto es " & dvalor
  Else
     rango = "Rango no establecido..."
  End If
 
 
End Function
 
Public Function CalcEdad(Optional ByVal vFecha1 As Date, Optional ByVal vFecha2 As Date) As String
 
 '  Calcula la edad en Años, Meses y Días
 
 Dim vYears As Integer
 Dim vMeses As Integer
 Dim vDias As Integer
 Dim strDias As String
 Dim strMeses As String
 Dim strPeriodos As String
 
 If Not IsDate(vFecha1) Then
    CalcEdad = ""
 End If
 
If vFecha1 > vFecha2 Then
  MsgBox "La primera fecha no puede ser mayor que la segunda o está mal la fecha de destete", vbCritical, "Error..."
  Exit Function
End If
 
vMeses = DateDiff("m", vFecha1, vFecha2)
vDias = DateDiff("d", DateAdd("m", vMeses, vFecha1), vFecha2)
 
If vDias < 0 Then
 vMeses = vMeses - 1
 
vDias = DateDiff("d", DateAdd("m", vMeses, vFecha1), vFecha2)
End If
vYears = vMeses \ 12
vMeses = vMeses Mod 12
 
If vDias = 0 Then
  strDias = ""
ElseIf vDias = 1 Then
  strDias = " día "
ElseIf vDias > 1 Then
  strDias = " días "
End If
 
If vMeses = 0 Then
  strMeses = ""
ElseIf vMeses = 1 Then
  strMeses = " Mes "
Else
 strMeses = " Meses "
End If
 
If vYears = 0 Then
  strPeriodos = ""
ElseIf vYears = 1 Then
  strPeriodos = " Año, "
Else
 strPeriodos = " Años, "
End If
 
 
 If vYears = 0 And vMeses = 0 And (vDias > 1 And vDias < 31) Then
   CalcEdad = vDias & " días"
 ElseIf vYears > 0 And vMeses = 0 And (vDias > 0 And vDias < 31) Then 'ok
   If vYears = 1 And vMeses = 0 Then
     strPeriodos = " Año "
   Else
     strPeriodos = " Años "
   End If
   CalcEdad = vYears & strPeriodos & "y " & vDias & " días"
 ElseIf vYears > 0 And vMeses = 0 And vDias = 0 Then ''''gg
    If vYears = 1 Then
     strPeriodos = " Año "
   Else
     strPeriodos = " Años "
   End If
   CalcEdad = vYears & strPeriodos
 ElseIf vYears = 0 And vMeses > 0 And (vDias > 0 And vDias < 31) Then
   CalcEdad = vMeses & strMeses & "y " & vDias & strDias
 ElseIf vYears = 0 And vMeses > 0 And vDias = 0 Then ' ok
   CalcEdad = vMeses & strMeses
 ElseIf vYears = 0 And vMeses = 0 And vDias > 0 Then  'ok
   CalcEdad = vDias & strDias
 ElseIf vYears > 0 And vMeses > 0 And vDias = 0 Then
    If vYears = 1 Then
     strPeriodos = " Año y "
   Else
     strPeriodos = " Años y "
   End If
   CalcEdad = vYears & strPeriodos & vMeses & strMeses '
  ElseIf vYears = 0 And vMeses = 0 And vDias = 0 Then
   CalcEdad = "0 días"
 Else
   CalcEdad = vYears & strPeriodos & vMeses & strMeses & "y " & vDias & strDias
 End If
 
 
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 5 puestos en Access (en relación al último mes)
Gráfica de Access

Valores de referencia según edad y sexo

Publicado por orlen (13 intervenciones) el 02/03/2022 15:24:10
Muy agradecido con su ayuda, he notado que en cada participación es muy completo a la hora de colaborar, me gusto su aporte del envío de WhatsApp masivos.

Con respecto a este aporte, ¿tiene la BD de ejemplo que me cita?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar