Access - Calculos en textbox Access Urgente

 
Vista:
sin imagen de perfil

Calculos en textbox Access Urgente

Publicado por Eduardo (4 intervenciones) el 14/03/2017 16:08:24
Hola amigos estoy haciendo un proyecto para recursos humanos en access, en un modulo que se llama Vacaciones me piden que haga calculos ya teniendo la fecha de ingreso del empleado, en el modulo debo calcular dependiendo de los años que ya tiene el empleado en la empresa, los dias que le tocan como vacaciones, existen dos tipos de empleados, directos y administrativos, los administrativos obtienen mas dias de vacaciones que los directos, por medio de una consulta estoy sacando el total de años de cada empleado que tienen en la empresa y asi poner una condicion if que dependiendo los años se obtengan los dias mostrando el resultado en un textbox, la cuestion es de que no puedo hacer los calculos ya que me marca que mis campos tienen el valor de cero, si me pudieran ayudar ya que no encuentro por ningun lado la solucion, le sdejo mi codigo para qu elo analicen y me puedan decir donde tengo mi error

aqui les dejo mi codigo

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
Private Sub Command10_Click()
TextBox1.SetFocus
 
 
Dim TotalAños As Integer
Dim DiasAcomulados As Integer
Dim Suma As Integer
Dim Año1 As Integer
Dim Año2 As Integer
Dim Año3 As Integer
Dim Año4 As Integer
Dim Año5 As Integer
 
 
Año1 = 6
Año2 = 8
Año3 = 10
Año4 = 12
Año5 = 14
Suma = 0
 
 
TotalAños = Val(TextBox1.Text)
DiasAcomulados = InputBox("Introduce los dias acumulados que tiene la persona", "")
 
    If (TotalAños = 1) Then
    Suma = DiasAcomulados + Val(Año1)
    TextBox3.Text = str(Suma)
 
    ElseIf (TotalAños = 2) Then
    Suma = DiasAcomulados + Val(Año2)
    TextBox3.Text = str(Suma)
 
    ElseIf (TotalAños = 3) Then
    Suma = DiasAcomulados + Val(Año3)
    TextBox3.Text = str(Suma)
 
    ElseIf (TotalAños = 4) Then
    Suma = DiasAcomulados + Val(Año4)
    TextBox3.Text = str(Suma)
 
 
    End If
End Sub
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 jorge
Val: 1.039
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Calculos en textbox Access Urgente

Publicado por jorge (300 intervenciones) el 14/03/2017 17:05:38
hola pon una imagen de la interfaz saludos.

:)
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
sin imagen de perfil

Calculos en textbox Access Urgente

Publicado por Eduardo (4 intervenciones) el 14/03/2017 17:15:37
Esta es la interfaz o si alguien tiene una mejor idea de como hacerlo me seria de gran ayuda
Capture
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

Calculos en textbox Access Urgente

Publicado por Anonimo (2783 intervenciones) el 14/03/2017 21:56:41
No se debería utilizar la propiedad .Text, solo existe para el objeto activo (y el objeto activo es Command10)

Elimina lo de .Text (y si quieres poner algo, pon en su lugar '.Value')

No es practico lo de aplicar la función 'Val' a un objeto que es un numero, solo tiene sentido si se desea convertir un texto ( números en formato de texto) a un valor numérico para operar con el.

Me parece prescindible utilizar la función STR, cuya funcionalidad es 'convertir' a texto un numero (lo que puede ocasionar problemas para posteriores cálculos con ese valor 'numérico en formato de texto')
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
sin imagen de perfil

Calculos en textbox Access Urgente

Publicado por Eduardo (4 intervenciones) el 15/03/2017 16:22:03
Gracias me fue de gran ayuda tu explicacion, ahora tengo el problemaa de la condicon dependiendo de la categoria del empleado me aparece que la variable no esta declarada aqui te dejo mi codigo

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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
Dim TotalAños As Integer
Dim DiasAcomulados As Integer
Dim Categoria As String
Dim Suma As Integer
Dim DIAño1 As Integer
Dim DIAño2 As Integer
Dim DIAño3 As Integer
Dim DIAño4 As Integer
Dim DIAño5 As Integer
Dim DIAño6 As Integer
Dim DIAño7 As Integer
Dim DIAño8 As Integer
Dim DIAño9 As Integer
Dim DIAño10 As Integer
Dim DIAño11 As Integer
Dim DIAño12 As Integer
Dim DIAño13 As Integer
Dim DIAño14 As Integer
Dim DIAño15 As Integer
Dim DIAño16 As Integer
Dim AdAño1 As Integer
Dim AdAño2 As Integer
Dim AdAño3 As Integer
Dim AdAño4 As Integer
Dim AdAño5 As Integer
Dim AdAño6 As Integer
Dim AdAño7 As Integer
Dim AdAño8 As Integer
Dim AdAño9 As Integer
Dim AdAño10 As Integer
Dim AdAño11 As Integer
Dim AdAño12 As Integer
Dim AdAño13 As Integer
Dim AdAño14 As Integer
Dim AdAño15 As Integer
Dim AdAño16 As Integer
 
 
 
DIAño1 = 6
DIAño2 = 8
DIAño3 = 10
DIAño4 = 12
DIAño5 = 14
DIAño6 = 16
DIAño7 = 18
DIAño8 = 20
DIAño9 = 22
DIAño10 = 24
DIAño11 = 26
DIAño12 = 28
DIAño13 = 30
DIAño14 = 32
DIAño15 = 34
DIAño16 = 36
 
AdAño1 = 10
AdAño2 = 12
AdAño3 = 14
AdAño4 = 16
AdAño5 = 18
AdAño6 = 20
AdAño7 = 22
AdAño8 = 24
AdAño9 = 26
AdAño10 = 28
AdAño11 = 30
AdAño12 = 32
AdAño13 = 34
AdAño14 = 36
AdAño15 = 38
AdAño16 = 40
 
 
Suma = 0
 
 
TotalAños = TextBox1.Value
DiasAcomulados = TextBox2.Value
Categoria = TextBox4.Text
Categoria = ""
 
    If (Categoria = Directo) Or (Categoria = Indirecto) Then
                    If (TotalAños = 1) Then
                    Suma = TextBox2.Value + DIAño1
                    TextBox3.Value = str(Suma)
 
                    ElseIf (TotalAños = 2) Then
                    Suma = TextBox2.Value + DIAño2
                    TextBox3.Value = str(Suma)
 
                    ElseIf (TotalAños = 3) Then
                    Suma = TextBox2.Value + DIAño3
                    TextBox3.Value = str(Suma)
 
                    ElseIf (TotalAños = 4) Then
                    Suma = TextBox2.Value + DIAño4
                    TextBox3.Value = str(Suma)
 
                    ElseIf (TotalAños = 5) Then
                    Suma = TextBox2.Value + DIAño5
                    TextBox3.Value = str(Suma)
 
      ElseIf (Categoria = Administrativo) Then
                    If (TotalAños = 1) Then
                    Suma = TextBox2.Value + AdAño1
                    TextBox3.Value = str(Suma)
 
                    ElseIf (TotalAños = 2) Then
                    Suma = TextBox2.Value + AdAño2
                    TextBox3.Value = str(Suma)
 
                    ElseIf (TotalAños = 3) Then
                    Suma = TextBox2.Value + AdAño3
                    TextBox3.Value = str(Suma)
 
                    ElseIf (TotalAños = 4) Then
                    Suma = TextBox2.Value + AdAño4
                    TextBox3.Value = str(Suma)
 
                    ElseIf (TotalAños = 5) Then
                    Suma = TextBox2.Value + AdAño5
                    TextBox3.Value = str(Suma)
 
        End If
    End If
End Sub
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

Calculos en textbox Access Urgente

Publicado por Anonimo (2783 intervenciones) el 15/03/2017 17:40:48
No parece que apliques lo que funciona (lo remarco en el texto adjunto).


TotalAños = TextBox1.Value
DiasAcomulados = TextBox2.Value
Categoria = TextBox4.Text

--------------------

No le encuentro lógica a reiniciar una variable a una cadena vacia y tras ello compararlo con ¿¿¿¿????...

Categoria = TextBox4.Text
Categoria = ""

If (Categoria = Directo) Or (Categoria = Indirecto) Then

Lo normal seria limpiar la variable (asígnale una cadena vacía) y tras ello asignarle un valor que es lo antagonico a lo actual y seria asi:(Categoria = TextBox4) y si el objeto TextBox4 esta en el formulario donde se ejecuta el código, lo idóneo seria asi (Categoria = Me.TextBox4)

----------------------

No encuentro en el código adjuntado las variables:
If (Categoria = Directo) Or (Categoria = Indirecto) Then

-- y esta --

ElseIf (Categoria = Administrativo) Then

Si :
Directo, Indirecto, Administrativo

Son textos (lo mas lógico), se debería escribir asi:

If (Categoria = "Directo") Or (Categoria = "Indirecto") Then

-- y aquí --

ElseIf (Categoria = "Administrativo") Then

-----------------------

Creo que todo el código en su conjunto podría reescribirse utilizando menos recursos y (por no desperdiciar recursos) lograr mayor eficiencia y velocidad, no debería perderse de vista que la maquina trabaja con números y con ellos es mas eficiente que con textos (además que un calculo numérico es muy liviano).
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