Visual Basic.NET - Error al cambiar rango de valores en ejeX de objeto Chart

 
Vista:
sin imagen de perfil
Val: 229
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por José Vicente (113 intervenciones) el 28/12/2020 12:20:11
Hola, primero de todo Felices fiestas, estoy intentando hacer una gráfica en la que desde un listbox le diga cuantos meses tiene que mostrar, el problema viene después de seleccionar el primere valor, que muestra bien, pero si intento volver a seleccionar otro, me da el error:
1
2
System.ObjectDisposedException: 'No se puede obtener acceso al objeto desechado.
Nombre del objeto: 'NpgsqlConnection'.'
No sé como arreglarlo. Os paso mi código para ver si me echáis una mano. Gracias.

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
Private Sub mes_lbox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles mes_lbox.SelectedIndexChanged
 
        Dim valor As Int16
        Dim Message As String = "EL VALOR ELEGIDO NO PUEDE SER MAYOR QUE EL MES ACTUAL"
        Dim Caption As String = "ERROR DE ELECCIÓN"
        Dim Buttons As MessageBoxButtons = MessageBoxButtons.OK
        Dim Resultado As DialogResult
 
        valor = mes_lbox.SelectedItem
 
        If valor >= mes Or mes <= 0 Then
 
            Resultado = MessageBox.Show(Message, Caption, Buttons)
            mes = 1
 
        ElseIf (mes - valor) <= 0 Then
 
            mes = 1
 
        Else
 
            mes -= valor - 1
 
        End If
 
        Dim nombre As String = UCase(MonthName(mes))
        Dim titulo As String = "VALORES DE LAS TOMAS ENTRE " & nombre & " Y HOY"
 
        adapter = New NpgsqlDataAdapter("SELECT * FROM valores WHERE fecha BETWEEN '01/" & mes & "/" & anio & "' AND CURRENT_DATE;", conexion)
        adapter.Fill(MiDt) 'Aquí da el error
        adapter.Dispose()
 
        conexion.Close()
        conexion.Dispose()
 
        Chart1.Titles.Clear()
 
        Chart1.Titles.Add(titulo)
        Chart1.Series(0).LegendText = "Valores."
 
        Chart1.Series.RemoveAt(0)
 
        Chart1.Series.Add(MiDt.Columns(4).ColumnName)
        Chart1.Series.Add(MiDt.Columns(3).ColumnName)
        Chart1.Series.Add(MiDt.Columns(1).ColumnName)
        Chart1.Series.Add(MiDt.Columns(2).ColumnName)
 
        Chart1.Series(MiDt.Columns(4).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
        Chart1.Series(MiDt.Columns(4).ColumnName).YValueMembers = MiDt.Columns(4).ColumnName
        Chart1.Series(MiDt.Columns(4).ColumnName).ChartType = SeriesChartType.Column
        Chart1.Series(MiDt.Columns(4).ColumnName).Color = color.Aqua
 
        Chart1.Series(MiDt.Columns(3).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
        Chart1.Series(MiDt.Columns(3).ColumnName).YValueMembers = MiDt.Columns(3).ColumnName
        Chart1.Series(MiDt.Columns(3).ColumnName).ChartType = SeriesChartType.Column
        Chart1.Series(MiDt.Columns(3).ColumnName).Color = color.Red
 
        Chart1.Series(MiDt.Columns(1).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
        Chart1.Series(MiDt.Columns(1).ColumnName).YValueMembers = MiDt.Columns(1).ColumnName
        Chart1.Series(MiDt.Columns(1).ColumnName).ChartType = SeriesChartType.Column
        Chart1.Series(MiDt.Columns(1).ColumnName).Color = color.GreenYellow
 
        Chart1.Series(MiDt.Columns(2).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
        Chart1.Series(MiDt.Columns(2).ColumnName).YValueMembers = MiDt.Columns(2).ColumnName
        Chart1.Series(MiDt.Columns(2).ColumnName).ChartType = SeriesChartType.Column
        Chart1.Series(MiDt.Columns(2).ColumnName).Color = color.MediumBlue
 
        Chart1.BackColor = color.SlateGray
        Chart1.ChartAreas(0).BackColor = color.CadetBlue
        Chart1.BackSecondaryColor = color.Gainsboro
        Chart1.BackGradientStyle = GradientStyle.TopBottom
        Chart1.BorderlineDashStyle = ChartDashStyle.Solid
        Chart1.BorderSkin.SkinStyle = BorderSkinStyle.Emboss
        Chart1.BorderlineColor = color.Bisque
 
        Chart1.ChartAreas(0).AxisX.Interval = 0
        Chart1.ChartAreas(0).AxisY.Interval = 2
        Chart1.ChartAreas(0).AxisY.Minimum = 4
        Chart1.ChartAreas(0).AxisY.Maximum = 100
        Chart1.ChartAreas(0).AxisY.LabelAutoFitStyle = LabelAutoFitStyles.LabelsAngleStep90
 
        Chart1.ChartAreas(0).AxisY.Title = "VALORES"
        Chart1.ChartAreas(0).AxisX.Title = "FECHA"
        Chart1.ChartAreas(0).AxisX.TitleFont = New Font("Verdana", 14, FontStyle.Bold)
        Chart1.ChartAreas(0).AxisX.TitleForeColor = color.Red
        Chart1.ChartAreas(0).AxisX.TitleAlignment = StringAlignment.Center
        Chart1.ChartAreas(0).AxisY.TitleFont = New Font("Verdana", 14, FontStyle.Bold)
        Chart1.ChartAreas(0).AxisY.TitleForeColor = color.Red
        Chart1.ChartAreas(0).AxisY.TitleAlignment = StringAlignment.Center
 
        Chart1.Titles(0).Font = New Font("Trebuchet MS", 24, FontStyle.Bold) 'FUENTE, TAMAÑO Y ESTILO DEL TÍTULO.
        Chart1.Titles(0).ForeColor = color.DarkSlateGray 'COLOR DE LA FUENTE DEL TÍTULO.
        Chart1.Titles(0).ShadowOffset = 3 'TAMAÑO DE LA SOMBRA DEL TÍTULO.
        Chart1.Titles(0).ShadowColor = color.DarkGray 'COLOR DE LA SOMBRA DEL TÍTULO.
 
        Chart1.DataSource = MiDt
 
    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
sin imagen de perfil
Val: 129
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por Jaime (50 intervenciones) el 28/12/2020 18:01:51
Declara el dataadapter asi:
1
Dim adapter as New NpgsqlDataAdapter("SELECT * FROM valores WHERE fecha BETWEEN '01/" & mes & "/" & anio & "' AND CURRENT_DATE;", conexion)
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: 229
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por José Vicente (113 intervenciones) el 28/12/2020 19:02:04
Hola, perdona pero ya lo tenía declarado en el load como:
1
Public adapter As NpgsqlDataAdapter
, no lo había puesto porque creía que se sobreentendía, el error está al volver a rellenar el datatable.
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: 129
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por Jaime (50 intervenciones) el 28/12/2020 22:00:20
Pues tu sólo te respondes, al tenerlo declarado en el load y llamar una vez al método Dispose ya no vas a tener acceso al dataadapter, en vez de en el load declaralo antes de instanciarlo en el mismo procedimiento. Incluso te diría que uses un bloque Using dentro de un try cast para hacer la consulta a la base de datos. Prueba y me dices
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: 129
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por Jaime (50 intervenciones) el 28/12/2020 22:16:22
Con el Using no tienes que usar Dispose, lo hace sólo al acabar el bloque
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: 229
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por José Vicente (113 intervenciones) el 28/12/2020 22:25:41
Hola, no funciona, sigue dando el mismo error.
No he usado nunca un bloque Using y no sé como implementarlo en mi caso. Agradecería una ayudita. Gracias.

Captura_1
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: 129
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por Jaime (50 intervenciones) el 29/12/2020 01:05:20
Quita del load la declaración y haz los cambios en el evento selectindexchanged para que quede asi:
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
Private Sub mes_lbox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles mes_lbox.SelectedIndexChanged
 
        Dim valor As Int16
        Dim Message As String = "EL VALOR ELEGIDO NO PUEDE SER MAYOR QUE EL MES ACTUAL"
        Dim Caption As String = "ERROR DE ELECCIÓN"
        Dim Buttons As MessageBoxButtons = MessageBoxButtons.OK
        Dim Resultado As DialogResult
 
        valor = mes_lbox.SelectedItem
 
        If valor >= mes Or mes <= 0 Then
 
            Resultado = MessageBox.Show(Message, Caption, Buttons)
            mes = 1
 
        ElseIf (mes - valor) <= 0 Then
 
            mes = 1
 
        Else
 
            mes -= valor - 1
 
        End If
 
        Dim nombre As String = UCase(MonthName(mes))
        Dim titulo As String = "VALORES DE LAS TOMAS ENTRE " & nombre & " Y HOY"
 
Try
      Using  adapter As New NpgsqlDataAdapter("SELECT * FROM valores WHERE fecha BETWEEN '01/" & mes & "/" & anio & "' AND CURRENT_DATE;", conexion)
        adapter.Fill(MiDt) 'Aquí da el error
 
        conexion.Close()
 
     End Using
 
Catch ex As Exception
    MsgBox(ex.Message)
End Try
 
 
        Chart1.Titles.Clear()
 
        Chart1.Titles.Add(titulo)
        Chart1.Series(0).LegendText = "Valores."
 
        Chart1.Series.RemoveAt(0)
 
        Chart1.Series.Add(MiDt.Columns(4).ColumnName)
        Chart1.Series.Add(MiDt.Columns(3).ColumnName)
        Chart1.Series.Add(MiDt.Columns(1).ColumnName)
        Chart1.Series.Add(MiDt.Columns(2).ColumnName)
 
        Chart1.Series(MiDt.Columns(4).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
        Chart1.Series(MiDt.Columns(4).ColumnName).YValueMembers = MiDt.Columns(4).ColumnName
        Chart1.Series(MiDt.Columns(4).ColumnName).ChartType = SeriesChartType.Column
        Chart1.Series(MiDt.Columns(4).ColumnName).Color = color.Aqua
 
        Chart1.Series(MiDt.Columns(3).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
        Chart1.Series(MiDt.Columns(3).ColumnName).YValueMembers = MiDt.Columns(3).ColumnName
        Chart1.Series(MiDt.Columns(3).ColumnName).ChartType = SeriesChartType.Column
        Chart1.Series(MiDt.Columns(3).ColumnName).Color = color.Red
 
        Chart1.Series(MiDt.Columns(1).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
        Chart1.Series(MiDt.Columns(1).ColumnName).YValueMembers = MiDt.Columns(1).ColumnName
        Chart1.Series(MiDt.Columns(1).ColumnName).ChartType = SeriesChartType.Column
        Chart1.Series(MiDt.Columns(1).ColumnName).Color = color.GreenYellow
 
        Chart1.Series(MiDt.Columns(2).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
        Chart1.Series(MiDt.Columns(2).ColumnName).YValueMembers = MiDt.Columns(2).ColumnName
        Chart1.Series(MiDt.Columns(2).ColumnName).ChartType = SeriesChartType.Column
        Chart1.Series(MiDt.Columns(2).ColumnName).Color = color.MediumBlue
 
        Chart1.BackColor = color.SlateGray
        Chart1.ChartAreas(0).BackColor = color.CadetBlue
        Chart1.BackSecondaryColor = color.Gainsboro
        Chart1.BackGradientStyle = GradientStyle.TopBottom
        Chart1.BorderlineDashStyle = ChartDashStyle.Solid
        Chart1.BorderSkin.SkinStyle = BorderSkinStyle.Emboss
        Chart1.BorderlineColor = color.Bisque
 
        Chart1.ChartAreas(0).AxisX.Interval = 0
        Chart1.ChartAreas(0).AxisY.Interval = 2
        Chart1.ChartAreas(0).AxisY.Minimum = 4
        Chart1.ChartAreas(0).AxisY.Maximum = 100
        Chart1.ChartAreas(0).AxisY.LabelAutoFitStyle = LabelAutoFitStyles.LabelsAngleStep90
 
        Chart1.ChartAreas(0).AxisY.Title = "VALORES"
        Chart1.ChartAreas(0).AxisX.Title = "FECHA"
        Chart1.ChartAreas(0).AxisX.TitleFont = New Font("Verdana", 14, FontStyle.Bold)
        Chart1.ChartAreas(0).AxisX.TitleForeColor = color.Red
        Chart1.ChartAreas(0).AxisX.TitleAlignment = StringAlignment.Center
        Chart1.ChartAreas(0).AxisY.TitleFont = New Font("Verdana", 14, FontStyle.Bold)
        Chart1.ChartAreas(0).AxisY.TitleForeColor = color.Red
        Chart1.ChartAreas(0).AxisY.TitleAlignment = StringAlignment.Center
 
        Chart1.Titles(0).Font = New Font("Trebuchet MS", 24, FontStyle.Bold) 'FUENTE, TAMAÑO Y ESTILO DEL TÍTULO.
        Chart1.Titles(0).ForeColor = color.DarkSlateGray 'COLOR DE LA FUENTE DEL TÍTULO.
        Chart1.Titles(0).ShadowOffset = 3 'TAMAÑO DE LA SOMBRA DEL TÍTULO.
        Chart1.Titles(0).ShadowColor = color.DarkGray 'COLOR DE LA SOMBRA DEL TÍTULO.
 
        Chart1.DataSource = MiDt
 
    End Sub

En tu código tampoco veo como abres la conexión, veo que tienes un método para cerrarlo pero no para abrirlo antes del dataadapter, ni la declaracion e inicializacion del mismo. El error que te marca aqui es que desechas el NpgSqlConnection, tienes que hacer otro bloque Using anidado declarando he iniciando la conexion,
Y antes de llenar el dataAdapter llamar al procedimiento conexion.Open (que imagino que lo has creado en la clase conexion)
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: 229
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por José Vicente (113 intervenciones) el 29/12/2020 06:40:12
Hola, gracias por tu respuesta. Ahora el error lo da al intentar hacer la segunda gráfica en:

1
Chart1.Series.Add(MiDt.Columns(3).ColumnName)

Captura_1
He intentado hacer un clear de la gráfica pero me sigue dando el mismo error.
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: 129
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por Jaime (50 intervenciones) el 29/12/2020 08:33:00
No se tu intención en esta linea
1
Chart1.Series.RemoveAt(0)
Pero si tu intención es borrar las series existentes antes de introducir las series otra vez deberías usar
1
Chart1.Series.Clear

No te olvides de valorar las respuestas si te han funcionado, otros lectores te lo agradecerán ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 229
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por José Vicente (113 intervenciones) el 29/12/2020 09:34:57
Gracias, ya funciona. El código queda así:
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
Private Sub mes_lbox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles mes_lbox.SelectedIndexChanged
 
    Dim valor As Int16
    Dim Message As String = "EL VALOR ELEGIDO NO PUEDE SER MAYOR QUE EL MES ACTUAL"
    Dim Caption As String = "ERROR DE ELECCIÓN"
    Dim Buttons As MessageBoxButtons = MessageBoxButtons.OK
    Dim Resultado As DialogResult
 
    valor = mes_lbox.SelectedItem
 
    If valor >= mes Or mes <= 0 Then
 
        Resultado = MessageBox.Show(Message, Caption, Buttons)
        mes = 1
 
    ElseIf (mes - valor) <= 0 Then
 
        mes = 1
 
    Else
 
        mes -= valor - 1
 
    End If
 
    Dim nombre As String = UCase(MonthName(mes))
    Dim titulo As String = "VALORES DE LAS TOMAS ENTRE " & nombre & " Y HOY"
 
    Try
 
        Using adapter As New NpgsqlDataAdapter("SELECT * FROM valores WHERE fecha BETWEEN '01/" & mes & "/" & anio & "' AND CURRENT_DATE;", conexion)
 
            adapter.Fill(MiDt)
 
            conexion.Close()
 
        End Using
 
    Catch ex As Exception
 
        MsgBox(ex.Message)
 
    End Try
 
    Chart1.Titles.Clear()
 
    Chart1.Titles.Add(titulo)
    Chart1.Series(0).LegendText = "Valores."
 
    Chart1.Series.Clear()
 
    Chart1.Series.Add(MiDt.Columns(4).ColumnName)
    Chart1.Series.Add(MiDt.Columns(3).ColumnName)
    Chart1.Series.Add(MiDt.Columns(1).ColumnName)
    Chart1.Series.Add(MiDt.Columns(2).ColumnName)
 
    Chart1.Series(MiDt.Columns(4).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
    Chart1.Series(MiDt.Columns(4).ColumnName).YValueMembers = MiDt.Columns(4).ColumnName
    Chart1.Series(MiDt.Columns(4).ColumnName).ChartType = SeriesChartType.Column
    Chart1.Series(MiDt.Columns(4).ColumnName).Color = color.Aqua
 
    Chart1.Series(MiDt.Columns(3).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
    Chart1.Series(MiDt.Columns(3).ColumnName).YValueMembers = MiDt.Columns(3).ColumnName
    Chart1.Series(MiDt.Columns(3).ColumnName).ChartType = SeriesChartType.Column
    Chart1.Series(MiDt.Columns(3).ColumnName).Color = color.Red
 
    Chart1.Series(MiDt.Columns(1).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
    Chart1.Series(MiDt.Columns(1).ColumnName).YValueMembers = MiDt.Columns(1).ColumnName
    Chart1.Series(MiDt.Columns(1).ColumnName).ChartType = SeriesChartType.Column
    Chart1.Series(MiDt.Columns(1).ColumnName).Color = color.GreenYellow
 
    Chart1.Series(MiDt.Columns(2).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
    Chart1.Series(MiDt.Columns(2).ColumnName).YValueMembers = MiDt.Columns(2).ColumnName
    Chart1.Series(MiDt.Columns(2).ColumnName).ChartType = SeriesChartType.Column
    Chart1.Series(MiDt.Columns(2).ColumnName).Color = color.MediumBlue
 
    Chart1.BackColor = color.SlateGray
    Chart1.ChartAreas(0).BackColor = color.CadetBlue
    Chart1.BackSecondaryColor = color.Gainsboro
    Chart1.BackGradientStyle = GradientStyle.TopBottom
    Chart1.BorderlineDashStyle = ChartDashStyle.Solid
    Chart1.BorderSkin.SkinStyle = BorderSkinStyle.Emboss
    Chart1.BorderlineColor = color.Bisque
 
    Chart1.ChartAreas(0).AxisX.Interval = 1
    Chart1.ChartAreas(0).AxisY.Interval = 2
    Chart1.ChartAreas(0).AxisY.Minimum = 4
    Chart1.ChartAreas(0).AxisY.Maximum = 100
    Chart1.ChartAreas(0).AxisX.LabelStyle.Angle = -90
 
    Chart1.ChartAreas(0).AxisY.Title = "VALORES"
    Chart1.ChartAreas(0).AxisX.Title = "FECHA"
    Chart1.ChartAreas(0).AxisX.TitleFont = New Font("Verdana", 14, FontStyle.Bold)
    Chart1.ChartAreas(0).AxisX.TitleForeColor = color.Red
    Chart1.ChartAreas(0).AxisX.TitleAlignment = StringAlignment.Center
    Chart1.ChartAreas(0).AxisY.TitleFont = New Font("Verdana", 14, FontStyle.Bold)
    Chart1.ChartAreas(0).AxisY.TitleForeColor = color.Red
    Chart1.ChartAreas(0).AxisY.TitleAlignment = StringAlignment.Center
 
    Chart1.Titles(0).Font = New Font("Trebuchet MS", 24, FontStyle.Bold) 'FUENTE, TAMAÑO Y ESTILO DEL TÍTULO.
    Chart1.Titles(0).ForeColor = color.DarkSlateGray 'COLOR DE LA FUENTE DEL TÍTULO.
    Chart1.Titles(0).ShadowOffset = 3 'TAMAÑO DE LA SOMBRA DEL TÍTULO.
    Chart1.Titles(0).ShadowColor = color.DarkGray 'COLOR DE LA SOMBRA DEL TÍTULO.
 
    Chart1.DataSource = MiDt
 
End Sub

Funciona con incremento del listbox pero no con decremento, pero funciona.
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: 129
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por Jaime (50 intervenciones) el 29/12/2020 10:13:36
No se a que te refieres con incremento y decremento del ListBox pero supongo que será más un error de lógica respecto a los condicionales If entre Mes y Valor, pero me alegro que te funcione como querías, feliz navidad!!!!!
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: 229
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por José Vicente (113 intervenciones) el 29/12/2020 10:21:21
Hola, me refiero a que en el listbox tengo del 1 al 12 para mostrar de 1 a 12 meses en la gráfica, si voy subiendo 2-3-4... no hay problema y lo hace bien, el problema es cuando intento bajar que es cuando me da el error.
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: 129
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por Jaime (50 intervenciones) el 29/12/2020 11:19:58
Pero que error te da?
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: 229
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por José Vicente (113 intervenciones) el 29/12/2020 11:30:28
Hola, simplemente que no "refresca" la gráfica y aáde mas valores a la que hay, si le pido primero un mes y luego 2 me muestra 3
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: 129
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por Jaime (50 intervenciones) el 29/12/2020 11:47:32
Declara la variable Mes al principio del evento (no en el Load) así:
1
Dim Mes As Integer = Now.Month
Tu problema es que en los If varias el valor de Mes y lo utilizas para la consulta, y cuando se vuelve a disparar el evento la variable Mes no es el número de mes actual sino el que le haya asignado el condicional. Haciéndolo así cada ve que se dispare el evento, Mes será igual al mes actual
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: 229
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por José Vicente (113 intervenciones) el 29/12/2020 12:03:48
Hola, lo he hecho así y lo único que cambia es el título de la gráfica, el resto sigue igual. Te dejo el código por si he metido la pata en algo. Gracias.

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
Private Sub mes_lbox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles mes_lbox.SelectedIndexChanged
 
    Dim valor As Int16
    Dim Mes As Int16 = Now.Month
    Dim Message As String = "EL VALOR ELEGIDO NO PUEDE SER MAYOR QUE EL MES ACTUAL"
    Dim Caption As String = "ERROR DE ELECCIÓN"
    Dim Buttons As MessageBoxButtons = MessageBoxButtons.OK
    Dim Resultado As DialogResult
 
    valor = mes_lbox.SelectedItem
 
    If valor >= mes Or mes <= 0 Then
 
        Resultado = MessageBox.Show(Message, Caption, Buttons)
        mes = 1
 
    ElseIf (mes - valor) <= 0 Then
 
        mes = 1
 
    Else
 
        mes -= valor - 1
 
    End If
 
    Dim nombre As String = UCase(MonthName(mes))
    Dim titulo As String = "VALORES DE LAS TOMAS ENTRE " & nombre & " Y HOY"
 
    Try
 
        Using adapter As New NpgsqlDataAdapter("SELECT * FROM valores WHERE fecha BETWEEN '01/" & mes & "/" & anio & "' AND CURRENT_DATE;", conexion)
 
            adapter.Fill(MiDt)
 
            conexion.Close()
 
        End Using
 
    Catch ex As Exception
 
        MsgBox(ex.Message)
 
    End Try
 
    Chart1.Titles.Clear()
 
    Chart1.Titles.Add(titulo)
    Chart1.Series(0).LegendText = "Valores."
 
    Chart1.Series.Clear()
 
    Chart1.Series.Add(MiDt.Columns(4).ColumnName)
    Chart1.Series.Add(MiDt.Columns(3).ColumnName)
    Chart1.Series.Add(MiDt.Columns(1).ColumnName)
    Chart1.Series.Add(MiDt.Columns(2).ColumnName)
 
    Chart1.Series(MiDt.Columns(4).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
    Chart1.Series(MiDt.Columns(4).ColumnName).YValueMembers = MiDt.Columns(4).ColumnName
    Chart1.Series(MiDt.Columns(4).ColumnName).ChartType = SeriesChartType.Column
    Chart1.Series(MiDt.Columns(4).ColumnName).Color = color.Aqua
 
    Chart1.Series(MiDt.Columns(3).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
    Chart1.Series(MiDt.Columns(3).ColumnName).YValueMembers = MiDt.Columns(3).ColumnName
    Chart1.Series(MiDt.Columns(3).ColumnName).ChartType = SeriesChartType.Column
    Chart1.Series(MiDt.Columns(3).ColumnName).Color = color.Red
 
    Chart1.Series(MiDt.Columns(1).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
    Chart1.Series(MiDt.Columns(1).ColumnName).YValueMembers = MiDt.Columns(1).ColumnName
    Chart1.Series(MiDt.Columns(1).ColumnName).ChartType = SeriesChartType.Column
    Chart1.Series(MiDt.Columns(1).ColumnName).Color = color.GreenYellow
 
    Chart1.Series(MiDt.Columns(2).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
    Chart1.Series(MiDt.Columns(2).ColumnName).YValueMembers = MiDt.Columns(2).ColumnName
    Chart1.Series(MiDt.Columns(2).ColumnName).ChartType = SeriesChartType.Column
    Chart1.Series(MiDt.Columns(2).ColumnName).Color = color.MediumBlue
 
    Chart1.BackColor = color.SlateGray
    Chart1.ChartAreas(0).BackColor = color.CadetBlue
    Chart1.BackSecondaryColor = color.Gainsboro
    Chart1.BackGradientStyle = GradientStyle.TopBottom
    Chart1.BorderlineDashStyle = ChartDashStyle.Solid
    Chart1.BorderSkin.SkinStyle = BorderSkinStyle.Emboss
    Chart1.BorderlineColor = color.Bisque
 
    Chart1.ChartAreas(0).AxisX.Interval = 1
    Chart1.ChartAreas(0).AxisY.Interval = 2
    Chart1.ChartAreas(0).AxisY.Minimum = 4
    Chart1.ChartAreas(0).AxisY.Maximum = 100
    Chart1.ChartAreas(0).AxisX.LabelStyle.Angle = -90
 
    Chart1.ChartAreas(0).AxisY.Title = "VALORES"
    Chart1.ChartAreas(0).AxisX.Title = "FECHA"
    Chart1.ChartAreas(0).AxisX.TitleFont = New Font("Verdana", 14, FontStyle.Bold)
    Chart1.ChartAreas(0).AxisX.TitleForeColor = color.Red
    Chart1.ChartAreas(0).AxisX.TitleAlignment = StringAlignment.Center
    Chart1.ChartAreas(0).AxisY.TitleFont = New Font("Verdana", 14, FontStyle.Bold)
    Chart1.ChartAreas(0).AxisY.TitleForeColor = color.Red
    Chart1.ChartAreas(0).AxisY.TitleAlignment = StringAlignment.Center
 
    Chart1.Titles(0).Font = New Font("Trebuchet MS", 24, FontStyle.Bold) 'FUENTE, TAMAÑO Y ESTILO DEL TÍTULO.
    Chart1.Titles(0).ForeColor = color.DarkSlateGray 'COLOR DE LA FUENTE DEL TÍTULO.
    Chart1.Titles(0).ShadowOffset = 3 'TAMAÑO DE LA SOMBRA DEL TÍTULO.
    Chart1.Titles(0).ShadowColor = color.DarkGray 'COLOR DE LA SOMBRA DEL TÍTULO.
 
    Chart1.DataSource = MiDt
 
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
sin imagen de perfil
Val: 129
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por Jaime (50 intervenciones) el 29/12/2020 13:51:13
Analiza tus if:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
If valor >= mes Or mes <= 0 Then
 
        Resultado = MessageBox.Show(Message, Caption, Buttons)
        mes = 1
 
    ElseIf (mes - valor) <= 0 Then
 
        mes = 1
 
    Else
 
        mes -= valor - 1
 
    End If

En el primer If Mes nunca será igual o menor que 0.

En el ElseIf no entrara nunca porque en el if ya le dices si Valor es mayor o igual a Mes, por lo tanto si llega aqui quiere decir que es menor, si es menor que Mes nunca se cumplira la condición (Mes-Valor)<=0.

En el Else al Mes le restas Valor -1 porque? No lo entiendo o no se verle la lógica.
Entiendo que si estamos en agosto y se escoge septiembre, muestres el mensaje de error y le pongas a Mes=1 para que muestre desde enero hasta agosto por defecto. Creo que te estas complicando, es mucho mas simple:
1
2
3
4
5
6
If Valor>=Mes then
Msgbox(“blablabla”)
Mes=1
Else
Mes=Valor
End if

O bien si tu intención es que si se dice un mes posterior al actual que por defecto muestre el último mes en curso, simplemente elimina mes=1, mes se quedará al mes actual y tu consulta será del 1/mes actual hasta fecha actual
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: 229
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por José Vicente (113 intervenciones) el 29/12/2020 14:07:45
Hola de nuevo, lo del primer if con mes te lo compro, lo del ElseIf lo puse para el caso de seleccionar un valor que al restarlo de mes fuese negativo, por ejemplo elegir 6 estando en febrero saldría -4 y no es posible y, por último, le resto 1 al mes el el Else porque no sé por que misterio al coger un valor siempre me devuelve uno más.
De todas formas tu propuesta no funciona, me muestra en el título enero y no cambia los valores en la gráfica.
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: 129
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por Jaime (50 intervenciones) el 29/12/2020 14:37:07
Me tienes que comprar los dos jajajaj, al ElseIf tampoco puede entrar nunca si el primer If no se cumple ;)

Veo otra cosa que me escama, y es que los errores con consultas y fechas son muy frecuentes por no estar en el mismo orden en la base de datos.
Me explico, yo he tenido resultados no deseados porque hacia la consulta en dias/mes/año y la base de datos lo almacena en Año/mes/días u otro formato diferente.
Mi solución fue hacer la consulta con Between pero con Strings. Te paso el código completo con la modficaciones:
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
Private Sub mes_lbox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles mes_lbox.SelectedIndexChanged
 
    Dim valor As Int16
    Dim Mes As Int16 = Now.Month
    Dim Message As String = "EL VALOR ELEGIDO NO PUEDE SER MAYOR QUE EL MES ACTUAL"
    Dim Caption As String = "ERROR DE ELECCIÓN"
    Dim Buttons As MessageBoxButtons = MessageBoxButtons.OK
    Dim Resultado As DialogResult
 
    valor = mes_lbox.SelectedItem
 
   If Valor>=Mes then
 
       Resultado = MessageBox.Show(Message, Caption, Buttons)
 
       Mes=1
 
   Else
 
      Mes=Valor
 
   End if
 
 
    Dim nombre As String = UCase(MonthName(mes))
    Dim titulo As String = "VALORES DE LAS TOMAS ENTRE " & nombre & " Y HOY"
 
    Try
 
    Dim Desde As String = Now.Year & "-" & Mes & "-1"
 
    Dim Hasta As String = Now.Year & "-" Now.Month & "-" & Now.Day & " 23:59:59"
 
        Using adapter As New NpgsqlDataAdapter("SELECT * FROM valores WHERE fecha BETWEEN  #" & Desde & "# AND #" & Hasta & "#", conexion)
 
            adapter.Fill(MiDt)
 
            conexion.Close()
 
        End Using
 
    Catch ex As Exception
 
        MsgBox(ex.Message)
 
    End Try
 
    Chart1.Titles.Clear()
 
    Chart1.Titles.Add(titulo)
    Chart1.Series(0).LegendText = "Valores."
 
    Chart1.Series.Clear()
 
    Chart1.Series.Add(MiDt.Columns(4).ColumnName)
    Chart1.Series.Add(MiDt.Columns(3).ColumnName)
    Chart1.Series.Add(MiDt.Columns(1).ColumnName)
    Chart1.Series.Add(MiDt.Columns(2).ColumnName)
 
    Chart1.Series(MiDt.Columns(4).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
    Chart1.Series(MiDt.Columns(4).ColumnName).YValueMembers = MiDt.Columns(4).ColumnName
    Chart1.Series(MiDt.Columns(4).ColumnName).ChartType = SeriesChartType.Column
    Chart1.Series(MiDt.Columns(4).ColumnName).Color = color.Aqua
 
    Chart1.Series(MiDt.Columns(3).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
    Chart1.Series(MiDt.Columns(3).ColumnName).YValueMembers = MiDt.Columns(3).ColumnName
    Chart1.Series(MiDt.Columns(3).ColumnName).ChartType = SeriesChartType.Column
    Chart1.Series(MiDt.Columns(3).ColumnName).Color = color.Red
 
    Chart1.Series(MiDt.Columns(1).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
    Chart1.Series(MiDt.Columns(1).ColumnName).YValueMembers = MiDt.Columns(1).ColumnName
    Chart1.Series(MiDt.Columns(1).ColumnName).ChartType = SeriesChartType.Column
    Chart1.Series(MiDt.Columns(1).ColumnName).Color = color.GreenYellow
 
    Chart1.Series(MiDt.Columns(2).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
    Chart1.Series(MiDt.Columns(2).ColumnName).YValueMembers = MiDt.Columns(2).ColumnName
    Chart1.Series(MiDt.Columns(2).ColumnName).ChartType = SeriesChartType.Column
    Chart1.Series(MiDt.Columns(2).ColumnName).Color = color.MediumBlue
 
    Chart1.BackColor = color.SlateGray
    Chart1.ChartAreas(0).BackColor = color.CadetBlue
    Chart1.BackSecondaryColor = color.Gainsboro
    Chart1.BackGradientStyle = GradientStyle.TopBottom
    Chart1.BorderlineDashStyle = ChartDashStyle.Solid
    Chart1.BorderSkin.SkinStyle = BorderSkinStyle.Emboss
    Chart1.BorderlineColor = color.Bisque
 
    Chart1.ChartAreas(0).AxisX.Interval = 1
    Chart1.ChartAreas(0).AxisY.Interval = 2
    Chart1.ChartAreas(0).AxisY.Minimum = 4
    Chart1.ChartAreas(0).AxisY.Maximum = 100
    Chart1.ChartAreas(0).AxisX.LabelStyle.Angle = -90
 
    Chart1.ChartAreas(0).AxisY.Title = "VALORES"
    Chart1.ChartAreas(0).AxisX.Title = "FECHA"
    Chart1.ChartAreas(0).AxisX.TitleFont = New Font("Verdana", 14, FontStyle.Bold)
    Chart1.ChartAreas(0).AxisX.TitleForeColor = color.Red
    Chart1.ChartAreas(0).AxisX.TitleAlignment = StringAlignment.Center
    Chart1.ChartAreas(0).AxisY.TitleFont = New Font("Verdana", 14, FontStyle.Bold)
    Chart1.ChartAreas(0).AxisY.TitleForeColor = color.Red
    Chart1.ChartAreas(0).AxisY.TitleAlignment = StringAlignment.Center
 
    Chart1.Titles(0).Font = New Font("Trebuchet MS", 24, FontStyle.Bold) 'FUENTE, TAMAÑO Y ESTILO DEL TÍTULO.
    Chart1.Titles(0).ForeColor = color.DarkSlateGray 'COLOR DE LA FUENTE DEL TÍTULO.
    Chart1.Titles(0).ShadowOffset = 3 'TAMAÑO DE LA SOMBRA DEL TÍTULO.
    Chart1.Titles(0).ShadowColor = color.DarkGray 'COLOR DE LA SOMBRA DEL TÍTULO.
 
    Chart1.DataSource = MiDt
 
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
sin imagen de perfil
Val: 229
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por José Vicente (113 intervenciones) el 29/12/2020 15:39:54
Hola, yo uso PostgreSQL y no da problemas con las fechas. Adaptando tu Using me queda:

1
Using adapter As New NpgsqlDataAdapter("SELECT * FROM valores WHERE fecha BETWEEN " & Chr(34) & Desde & Chr(34) & " AND " & Chr(34) & Hasta & Chr(34) & ";", conexion)
El resultado es que no encuentra la fecha. Te paso el código completo del botón y el de la BD por si te aclara un poco el problema.
1
2
3
4
5
6
7
CREATE TABLE public.valores
 (	fecha date NOT NULL,
	sistolica numeric(3,1) NOT NULL DEFAULT 0,
	diastolica numeric(3,1) NOT NULL DEFAULT 0,
	pulsaciones int2 NOT NULL DEFAULT 0,
	saturacion int2 NOT NULL DEFAULT 0,
	CONSTRAINT valores_pkey PRIMARY KEY (fecha) );

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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
Imports Npgsql
Imports System.Windows.Forms.DataVisualization.Charting
Imports color = System.Drawing.Color
 
Public Class evolucion
 
    Friend conexion As NpgsqlConnection = New NpgsqlConnection("Server=localhost;port=5432;UserId=postgres;Password=josevi;database=tension_bd;")
    Public adapter As NpgsqlDataAdapter
 
    Public ds As New DataSet
    Public MiDt As New DataTable
    Public anio As Int16 = Now.Year
 
    Private Sub evolucion_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        conexion.Open()
 
    End Sub
 
    Private Sub salir_btn_Click(sender As Object, e As EventArgs) Handles salir_btn.Click
 
        Me.Close()
 
    End Sub
 
    Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
 
        If CheckBox1.Checked = True Then
 
            mes_lbox.Visible = False
            mes_lbl.Visible = False
 
            Chart1.ChartAreas(0).Area3DStyle.Enable3D = True
            Chart1.BackColor = color.SlateGray
            Chart1.ChartAreas(0).BackColor = color.CadetBlue
            Chart1.BackSecondaryColor = color.Gainsboro
            Chart1.BackGradientStyle = GradientStyle.TopBottom
            Chart1.BorderlineDashStyle = ChartDashStyle.Solid
            Chart1.BorderSkin.SkinStyle = BorderSkinStyle.Emboss
            Chart1.BorderlineColor = color.Bisque
 
            Chart1.ChartAreas(0).AxisX.Interval = 1
            Chart1.ChartAreas(0).AxisY.Interval = 2
            Chart1.ChartAreas(0).AxisY.Minimum = 4
            Chart1.ChartAreas(0).AxisY.Maximum = 100
            Chart1.ChartAreas(0).AxisX.LabelAutoFitStyle = LabelAutoFitStyles.LabelsAngleStep90
 
            Chart1.ChartAreas(0).AxisY.Title = "VALORES"
            Chart1.ChartAreas(0).AxisX.Title = "FECHA"
 
            Chart1.ChartAreas(0).AxisX.TitleFont = New Font("Verdana", 14, FontStyle.Bold)
            Chart1.ChartAreas(0).AxisX.TitleForeColor = color.Red
            Chart1.ChartAreas(0).AxisX.TitleAlignment = StringAlignment.Center
            Chart1.ChartAreas(0).AxisY.TitleFont = New Font("Verdana", 14, FontStyle.Bold)
            Chart1.ChartAreas(0).AxisY.TitleForeColor = color.Red
            Chart1.ChartAreas(0).AxisY.TitleAlignment = StringAlignment.Center
 
            Chart1.Titles(0).Font = New Font("Trebuchet MS", 24, FontStyle.Bold) 'FUENTE, TAMAÑO Y ESTILO DEL TÍTULO.
            Chart1.Titles(0).ForeColor = color.DarkSlateGray 'COLOR DE LA FUENTE DEL TÍTULO.
            Chart1.Titles(0).ShadowOffset = 3 'TAMAÑO DE LA SOMBRA DEL TÍTULO.
            Chart1.Titles(0).ShadowColor = color.DarkGray 'COLOR DE LA SOMBRA DEL TÍTULO.
 
        Else
 
            mes_lbox.Visible = True
            mes_lbl.Visible = True
 
            Chart1.ChartAreas(0).Area3DStyle.Enable3D = False
            Chart1.BackColor = color.SlateGray
            Chart1.ChartAreas(0).BackColor = color.CadetBlue
            Chart1.BackSecondaryColor = color.Gainsboro
            Chart1.BackGradientStyle = GradientStyle.TopBottom
            Chart1.BorderlineDashStyle = ChartDashStyle.Solid
            Chart1.BorderSkin.SkinStyle = BorderSkinStyle.Emboss
            Chart1.BorderlineColor = color.Bisque
 
            Chart1.ChartAreas(0).AxisX.Interval = 1
            Chart1.ChartAreas(0).AxisY.Interval = 2
            Chart1.ChartAreas(0).AxisY.Minimum = 4
            Chart1.ChartAreas(0).AxisY.Maximum = 100
            Chart1.ChartAreas(0).AxisX.LabelAutoFitStyle = LabelAutoFitStyles.LabelsAngleStep90
 
            Chart1.ChartAreas(0).AxisY.Title = "VALORES"
            Chart1.ChartAreas(0).AxisX.Title = "FECHA"
 
            Chart1.ChartAreas(0).AxisX.TitleFont = New Font("Verdana", 14, FontStyle.Bold)
            Chart1.ChartAreas(0).AxisX.TitleForeColor = color.Red
            Chart1.ChartAreas(0).AxisX.TitleAlignment = StringAlignment.Center
            Chart1.ChartAreas(0).AxisY.TitleFont = New Font("Verdana", 14, FontStyle.Bold)
            Chart1.ChartAreas(0).AxisY.TitleForeColor = color.Red
            Chart1.ChartAreas(0).AxisY.TitleAlignment = StringAlignment.Center
 
            Chart1.Titles(0).Font = New Font("Trebuchet MS", 24, FontStyle.Bold) 'Fuente, tamaño y estilo del título
            Chart1.Titles(0).ForeColor = color.DarkSlateGray 'Color de la fuente del título.
            Chart1.Titles(0).ShadowOffset = 3 'Tamaño de la sombra del título
            Chart1.Titles(0).ShadowColor = color.DarkGray 'Color de la sombra del título
 
        End If
 
    End Sub
 
    Private Sub mes_lbox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles mes_lbox.SelectedIndexChanged
 
        Dim valor As Int16
        Dim Mes As Int16 = Now.Month
        Dim Message As String = "EL VALOR ELEGIDO NO PUEDE SER MAYOR QUE EL MES ACTUAL"
        Dim Caption As String = "ERROR DE ELECCIÓN"
        Dim Buttons As MessageBoxButtons = MessageBoxButtons.OK
        Dim Resultado As DialogResult
 
        valor = mes_lbox.SelectedItem
 
        If valor >= Mes Then
 
            Resultado = MessageBox.Show(Message, Caption, Buttons)
            Mes = 1
 
        Else
 
            Mes -= valor - 1
 
        End If
 
        Dim nombre As String = UCase(MonthName(mes))
        Dim titulo As String = "VALORES DE LAS TOMAS ENTRE " & nombre & " Y HOY"
 
        Try
 
            Using adapter As New NpgsqlDataAdapter("SELECT * FROM valores WHERE fecha BETWEEN '01/" & Mes & "/" & anio & "' AND CURRENT_DATE;", conexion)
 
                adapter.Fill(MiDt)
 
                conexion.Close()
 
            End Using
 
        Catch ex As Exception
 
            MsgBox(ex.Message)
 
        End Try
 
        Chart1.Titles.Clear()
 
        Chart1.Titles.Add(titulo)
        Chart1.Series(0).LegendText = "Valores."
 
        Chart1.Series.Clear()
 
        Chart1.Series.Add(MiDt.Columns(4).ColumnName)
        Chart1.Series.Add(MiDt.Columns(3).ColumnName)
        Chart1.Series.Add(MiDt.Columns(1).ColumnName)
        Chart1.Series.Add(MiDt.Columns(2).ColumnName)
 
        Chart1.Series(MiDt.Columns(4).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
        Chart1.Series(MiDt.Columns(4).ColumnName).YValueMembers = MiDt.Columns(4).ColumnName
        Chart1.Series(MiDt.Columns(4).ColumnName).ChartType = SeriesChartType.Column
        Chart1.Series(MiDt.Columns(4).ColumnName).Color = color.Aqua
 
        Chart1.Series(MiDt.Columns(3).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
        Chart1.Series(MiDt.Columns(3).ColumnName).YValueMembers = MiDt.Columns(3).ColumnName
        Chart1.Series(MiDt.Columns(3).ColumnName).ChartType = SeriesChartType.Column
        Chart1.Series(MiDt.Columns(3).ColumnName).Color = color.Red
 
        Chart1.Series(MiDt.Columns(1).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
        Chart1.Series(MiDt.Columns(1).ColumnName).YValueMembers = MiDt.Columns(1).ColumnName
        Chart1.Series(MiDt.Columns(1).ColumnName).ChartType = SeriesChartType.Column
        Chart1.Series(MiDt.Columns(1).ColumnName).Color = color.GreenYellow
 
        Chart1.Series(MiDt.Columns(2).ColumnName).XValueMember = MiDt.Columns(0).ColumnName
        Chart1.Series(MiDt.Columns(2).ColumnName).YValueMembers = MiDt.Columns(2).ColumnName
        Chart1.Series(MiDt.Columns(2).ColumnName).ChartType = SeriesChartType.Column
        Chart1.Series(MiDt.Columns(2).ColumnName).Color = color.MediumBlue
 
        Chart1.BackColor = color.SlateGray
        Chart1.ChartAreas(0).BackColor = color.CadetBlue
        Chart1.BackSecondaryColor = color.Gainsboro
        Chart1.BackGradientStyle = GradientStyle.TopBottom
        Chart1.BorderlineDashStyle = ChartDashStyle.Solid
        Chart1.BorderSkin.SkinStyle = BorderSkinStyle.Emboss
        Chart1.BorderlineColor = color.Bisque
 
        Chart1.ChartAreas(0).AxisX.Interval = 1
        Chart1.ChartAreas(0).AxisY.Interval = 2
        Chart1.ChartAreas(0).AxisY.Minimum = 4
        Chart1.ChartAreas(0).AxisY.Maximum = 100
        Chart1.ChartAreas(0).AxisX.LabelStyle.Angle = -90
 
        Chart1.ChartAreas(0).AxisY.Title = "VALORES"
        Chart1.ChartAreas(0).AxisX.Title = "FECHA"
        Chart1.ChartAreas(0).AxisX.TitleFont = New Font("Verdana", 14, FontStyle.Bold)
        Chart1.ChartAreas(0).AxisX.TitleForeColor = color.Red
        Chart1.ChartAreas(0).AxisX.TitleAlignment = StringAlignment.Center
        Chart1.ChartAreas(0).AxisY.TitleFont = New Font("Verdana", 14, FontStyle.Bold)
        Chart1.ChartAreas(0).AxisY.TitleForeColor = color.Red
        Chart1.ChartAreas(0).AxisY.TitleAlignment = StringAlignment.Center
 
        Chart1.Titles(0).Font = New Font("Trebuchet MS", 24, FontStyle.Bold) 'FUENTE, TAMAÑO Y ESTILO DEL TÍTULO.
        Chart1.Titles(0).ForeColor = color.DarkSlateGray 'COLOR DE LA FUENTE DEL TÍTULO.
        Chart1.Titles(0).ShadowOffset = 3 'TAMAÑO DE LA SOMBRA DEL TÍTULO.
        Chart1.Titles(0).ShadowColor = color.DarkGray 'COLOR DE LA SOMBRA DEL TÍTULO.
 
        Chart1.DataSource = MiDt
 
    End Sub
 
End Class
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: 129
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por Jaime (50 intervenciones) el 29/12/2020 16:19:58
Prueba asi:
1
Using adapter As New NpgsqlDataAdapter("SELECT * FROM valores WHERE fecha BETWEEN ‘" & Desde & “‘“ & " AND ‘" & Hasta  & "’;", conexion)
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: 229
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por José Vicente (113 intervenciones) el 29/12/2020 16:56:51
Hola, te paso captura del error que muestra:

Captura_1

Yo le había puesto las comillas dobles en vez de las simples con Chr(34), pero como te dije antes así no encuentra la fecha.
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: 129
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por Jaime (50 intervenciones) el 29/12/2020 19:02:28
Sacado de PostgreSQLTutorial.com:

Si desea comprobar un valor con respecto a los intervalos de fechas, debe utilizar la fecha literal en formato ISO 8601, es decir, AAAA-MM-DD. Por ejemplo, para obtener el pago cuya fecha de pago se encuentra entre y , utilice la siguiente consulta:2007-02-07 2007-02-15

1
2
3
4
5
6
7
8
9
SELECT
	customer_id,
	payment_id,
	amount,
 payment_date
FROM
	payment
WHERE
	payment_date BETWEEN '2007-02-07' AND '2007-02-15';

Prueba a poner un punto de interrupción y mira que valores tiene Desde y Hasta. Puede que si el mes es menor de 10 le falte un 0, y al día también.
Revisa en la tabla como guarda la fecha PostgreSQL.
Según tú con el formato 'día/mes/año' te realiza bien las consultas, pues puedes probar a montar Desde y Hasta así, no se me ocurre nada más que revises bien esos valores en la consulta. Si no te funciona, tambén puedes probar ha declarar Desde y Hasta como Date
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: 129
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por Jaime (50 intervenciones) el 29/12/2020 19:07:07
y si nada te funciona prueba así:

1
Using adapter As New NpgsqlDataAdapter("SELECT * FROM valores WHERE fecha BETWEEN '" & anio & "/" & Mes & "/01' AND CURRENT_DATE;", conexion)
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: 229
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por José Vicente (113 intervenciones) el 30/12/2020 07:44:37
Hola, después de probar todas tus ideas he llegado a la conclusión de que no funciona el cambio de la sentencia Sql ni del formato de las fechas. Una vez vuelto todo al estado anterior, con la corrección del If que decías, eso sí, sigo con el problema, es decir, si la selección del listbox es ascendente 2, 3, 4,...,12 no hay problema y se muestran el número de meses selecionados sin problema, el error viene cuando la selección es descendente que ya no lo hace, sólo cambia el nombre del mes en el título de la gráfica.
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: 129
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error al cambiar rango de valores en ejeX de objeto Chart

Publicado por Jaime (50 intervenciones) el 30/12/2020 18:38:35
No se me ocurre nada más sin poder comprobar variables en tiempo de ejecución, siento no poderte ayudar más
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