Access - Problemas con una variable matricial

 
Vista:
sin imagen de perfil
Val: 22
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Problemas con una variable matricial

Publicado por Toni (14 intervenciones) el 30/04/2020 16:11:18
Buenas tardes,

Quiero definir una variable de matriz para designar cantidades en función de tramos, de la siguiente manera:

' Tramos Cantidades
' 1, 2, 550€
' 3, 4, 600€
' 5, 6, 650€
' 7, 99, 700€

Mi idea es definir una variable de 4 filas y 2 columnas, para poder trabajar con los valores superiores de cada tramo. Para ello defino la variable:

1
MaxValor (3,1)

Y luego paso a darles valor:

1
2
3
4
5
6
7
8
9
MaxValor(0,0) = 2
MaxValor(1,0) = 4
MaxValor(2,0) = 6
MaxValor(3,0) = 99
 
MaxValor(0,1) = 550
MaxValor(1,1) = 600
MaxValor(2,1) = 650
MaxValor(3,1) = 700

Quiero definirlo en un mòdulo de variables para toda la base de datos, con la función Public:

Public MaxValor(3,1) as integer


Y, en el mismo módulo escribo los valores, pero obtengo 'Error de compilacion. El valor externo no es valido', y se detiene en el valor de la primera variable MaxValor(0,0), és decir 2

He intentado hacerlo en el código de un formulario, con Dim, pero el resultado es el mismo.

Podrian decirme cómo hacerlo?

Muchas gracias
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

Problemas con una variable matricial

Publicado por jose (830 intervenciones) el 30/04/2020 18:49:45
1
2
3
4
5
6
7
8
9
10
11
12
13
select case valor
 
        Case 1 To 2
                  (aqui puerdes buscar en la tabla(o donde lo tengas)  el valor del tramo primero)
                maxvalor =500
        Case 3 To 4
            maxvalor= =550
        Case 5To6
                maxvalor =600
        Case 7 To 8
            maxvalor= =650
 
end select

otra forma de ponerlo

1
2
3
4
5
6
7
8
9
10
11
12
select case valor
 
        Case 1, 2
                maxvalor =500
        Case 3 , 4
            maxvalor= =550
        Case 5,6
                maxvalor =600
        Case 7 , 8
            maxvalor= =650
 
end select
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
Val: 24
Ha aumentado su posición en 6 puestos en Access (en relación al último mes)
Gráfica de Access

Problemas con una variable matricial

Publicado por Pere (22 intervenciones) el 01/05/2020 09:35:23
Lo he provado (con alguna modificación) y me funciona (me muestra los valores en la ventana imediato)
crea un modulo nuevo, ponte dentro del código y dale al F5
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
Option Compare Database
Option Explicit
Public MaxValor(3, 3) As Integer
 
Sub prova()
 
 
    MaxValor(0, 0) = 2
    MaxValor(0, 1) = 4
    MaxValor(0, 2) = 6
    MaxValor(0, 3) = 99
 
    MaxValor(1, 0) = 550
    MaxValor(1, 1) = 600
    MaxValor(1, 2) = 650
    MaxValor(1, 3) = 700
 
    Dim indice As Integer
    Dim n As Integer
 
    Debug.Print "----------------mostramos los valores cargados en la matriz en ventana imediato--------------------------"
 
    For n = 0 To 1
        For indice = 0 To 3
            Debug.Print "" & indice & "  valor matriz " & n & " :" & MaxValor(n, indice)
        Next indice
    Next n
End Sub

ya comentaras si tienes algun problema
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
Val: 22
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Problemas con una variable matricial

Publicado por Toni (14 intervenciones) el 04/05/2020 13:38:14
Gràcies Pere,

Al final funcionó. Habia intentado dar valor a las variables en el apartado de declaración de variables, por eso me daba error. He creado una rutina Sub para dar esos valores, y ahora funciona.

Toni
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
Val: 22
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Problemas con una variable matricial

Publicado por Toni (14 intervenciones) el 04/05/2020 13:40:50
Gracias Jose,

Es una buena opción, aunque con la variable matricial consigo definir los valores una sola vez, y no hace falta llamar la rutina cada vez que necesite esos valores.

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

Problemas con una variable matricial

Publicado por Anonimo (3316 intervenciones) el 02/05/2020 02:07:43
Quizás una de las funciones incorporadas de Access sea útil, por ejemplo: Switch o también Choose

Otra es la opción de utilizar este método (se supone que 'VALOR' es el dato que se tiene, 'RESULTADO' el destino de su evaluación):

1
Resultado = 550 + 50 * Abs(Valor >= 3) + 50 * Abs(Valor >= 5) + 50 * Abs(Valor >= 7)
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