Fallo en código de botón
Publicado por José Vicente (113 intervenciones) el 31/08/2021 12:13:02
Hola, tengo un botón en el que quiero actualizar una hoja Excel desde un Datagridview enlazado con una Bd.
El código que tengo hasta ahora es:
En exHoja = exLibro.Worksheets("Histórico tensión " & anio & ".xlsx") me falla por lo que no piedo comprobar si el resto del código está bien, aunque creo que en la query también fallará. ¿Podéis echarle un ojo y darme una solución? Gracias.
El código que tengo hasta ahora es:
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
Private Sub actualiza_btn_Click(sender As Object, e As EventArgs) Handles actualiza_btn.Click
Dim cadenaConexion As String = "Provider = Microsoft.ACE.OLEDB.12.0;" & "Data Source= C:\Users\joviz\Desktop\Historico tension.xlsx;" & "Extended Properties=Excel 12.0 Xml;HDR=YES;"
Dim anio As Int16 = Now.Year
DataGridView1.CurrentCell = DataGridView1.Rows(DataGridView1.RowCount - 2).Cells(0)
exLibro = exApp.Workbooks.Open("C:\Users\joviz\Desktop\Historico tension.xlsx")
exHoja = exLibro.Worksheets("Histórico tensión " & anio & ".xlsx")
exHoja.Select()
Dim valorCelda As Date = DataGridView1.SelectedRows(0).Cells(0).Value
Dim menorFecha As Date = exHoja.Range("A1").End(Excel.XlDirection.xlDown).Value
Try
' ESTABLECEMOS CONEXION CON EL LIBRO EXCEL
Using con As New OleDbConnection(cadenaConexion)
' CREAMOS UN COMANDO
Dim cmd As OleDbCommand = con.CreateCommand()
' ESPECIFICAMOS UNA CONSULTA INSERT INTO CON PARÁMETROS POR POSICIÓN.
cmd.CommandText = "INSERT INTO [Hoja1$] SELECT * FROM valores WHERE fecha >" & menorFecha & ";"
' Añadimos los parámetros en el mismo orden en el que
' se encuentran especificados los campos en la consulta
' SQL de datos añadidos (INSERT INTO)
'
cmd.Parameters.AddWithValue("", DataGridView1.CurrentRow.Cells(0).Value)
cmd.Parameters.AddWithValue("", DataGridView1.CurrentRow.Cells(1).Value)
cmd.Parameters.AddWithValue("", DataGridView1.CurrentRow.Cells(2).Value)
cmd.Parameters.AddWithValue("", DataGridView1.CurrentRow.Cells(3).Value)
cmd.Parameters.AddWithValue("", DataGridView1.CurrentRow.Cells(4).Value)
' ABRIMOS LA CONEXIÓN
con.Open()
' EJECUTAMOS LA CONSULTA
cmd.ExecuteNonQuery()
End Using
Catch ex As Exception
' SI HAY ERROR MOSTRAMOS EL MENSAJE
MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Valora esta pregunta


0