|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - pirlespi
Páginas: [1]
1
« en: Lunes 12 de Agosto de 2013, 11:38 »
Buenas Gerloxxx,
Como el usuario es quién decide los campos que se deben ocultar en el datagrid para no exportarse al excel marcándolos con checkboxes lo que he hecho ha sido eliminar las columnas que seleccionen y listo.
If CheckBox1.Checked = False Then Me.DataGridView1.Columns.Remove("columna_a_eliminar") End If
2
« en: Miércoles 7 de Agosto de 2013, 12:44 »
Buenas,
Tengo el siguiente código y funciona perfectamente, salvo que exporta todas las columnas de mi datagrid mientras que solo necesito que exporte las que son visibles.
¿alguno sabe como conseguirlo?
Gracias!
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'Creamos las variables
Dim exApp As New Microsoft.Office.Interop.Excel.Application
Dim exLibro As Microsoft.Office.Interop.Excel.Workbook
Dim exHoja As Microsoft.Office.Interop.Excel.Worksheet
Try
'Añadimos el Libro al programa, y la hoja al libro
exLibro = exApp.Workbooks.Add
exHoja = exLibro.Worksheets.Add()
' ¿Cuantas columnas y cuantas filas?
Dim NCol As Integer = DataGridView1.ColumnCount
Dim NRow As Integer = DataGridView1.RowCount
'Aqui recorremos todas las filas, y por cada fila todas las columnas
'y vamos escribiendo.
For i As Integer = 1 To NCol
exHoja.Cells.Item(1, i) = DataGridView1.Columns(i - 1).Name.ToString
Next
For Fila As Integer = 0 To NRow - 1
For Col As Integer = 0 To NCol - 1
exHoja.Cells.Item(Fila + 2, Col + 1) = DataGridView1.Rows(Fila).Cells(Col).Value()
Next
Next
'Titulo en negrita, Alineado al centro y que el tamaño de la columna
'se ajuste al texto
exHoja.Rows.Item(1).Font.Bold = 1
exHoja.Rows.Item(1).HorizontalAlignment = 3
exHoja.Columns.AutoFit()
'Aplicación visible
exApp.Application.Visible = True
exHoja = Nothing
exLibro = Nothing
exApp = Nothing
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error al exportar a Excel")
End Try
End Sub
3
« en: Lunes 5 de Agosto de 2013, 13:23 »
Muy buenas Jose Alberto,
Te agradezco mucho tu post, aunque finalmente no he usado el código que me pasabas, me ha servido para "caer del burro". Lo que he hecho ha sido poner un INSERT y arreglado.
Un saludo y gracias!
Try conexion2 = New OleDb.OleDbConnection(Scon2) conexion2.Open() cmd = New OleDb.OleDbCommand("INSERT INTO evolutivo (siniestro, fecha, obs) values ('" + FormPrincipal.NumeroTextBox.Text + "', '" + DateTimePicker1.Text + "', '" + TextBox2.Text + "')", conexion2)
cmd.ExecuteNonQuery()
4
« en: Lunes 5 de Agosto de 2013, 13:15 »
Hola,
Tengo dos formularios. En el primero se muestran varios textbox de un mismo registro de access y en el segundo, un formulario de búsqueda apuntando a la misma BBDD que filtra los resultados en base a los criterios que se introduzcan.
Mi problema es que necesito que al seleccionar del datagrid una columna los datos de dicho registro se vuelquen al form principal. No puedo asignarle que celda del datagrid corresponde a cada textbox porque son muchísimos, la idea es que como se trata de la misma tabla, cargue todo el registro.
Este es el código que tengo.
Imports System Imports System.Data Imports System.Data.SqlClient Imports System.Windows.Forms Imports System.Data.OleDb
Public Class FormBuscar
Dim conexion As OleDb.OleDbConnection Dim MiDt As New DataTable Dim BdS As Windows.Forms.BindingSource Dim Scon As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= \\BBDD.mdb" Private BindingSource As Windows.Forms.BindingSource = New BindingSource
Private Sub Aplicar_Filtro()
conexion = New OleDb.OleDbConnection(Scon) conexion.Open()
Dim MiDa As New OleDbDataAdapter("SELECT General.Numero, General.Nombre, General.Vehículo, General.matricula, General.Ciudad, General.dni FROM [general] WHERE General.Nombre like '%" & TextBox1.Text.Trim & "%' and General.Vehículo like '%" & TextBox2.Text.Trim & "%' and General.matricula like '%" & TextBox3.Text.Trim & "%' and General.ciudad like '%" & TextBox4.Text.Trim & "%'", conexion) MiDt.Clear() MiDa.Fill(MiDt) BdS = New BindingSource BdS.DataSource = MiDt Me.DataGridView1.DataSource = BdS.DataSource
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Aplicar_Filtro() End Sub End Class Espero que me puedan ayudar. Gracias!
5
« en: Jueves 1 de Agosto de 2013, 14:05 »
Muy buenas otra vez,
Efectivamente, he añadido un control button que llevaba a un nuevo form y ahí ya he podido cargar los datos de la tabla en el datagrid.
Funciona perfectamente.
Mil gracias!
6
« en: Jueves 1 de Agosto de 2013, 13:42 »
Muy buenas,
De nuevo me encuentro con un problema con los datagrid.
He creado un segundo form que recupera los datos de una tabla en Access y los filtra en base a un textbox del formulario principal. También tengo unos textbox que al rellenarlos crean un nuevo registro en el datagrid junto a los recuperados de la BBDD.
El problema es que, cuando lo cierro, los datos no se guardan en la tabla de access, quedando solo los que ya existian.
¿alguien podría indicarme como realizar esto?
Este es el código que tengo hasta ahora:
Public Class Form2
Dim conexion As OleDb.OleDbConnection Dim MiDt As New DataTable Dim BdS As Windows.Forms.BindingSource Dim Scon As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=BBDD.mdb"
Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
conexion = New OleDb.OleDbConnection(Scon) conexion.Open() Try Dim MiDa As New OleDbDataAdapter("SELECT siniestro, fecha, obs FROM evolutivo WHERE siniestro = '" & Form1.NumeroTextBox.Text & "'", conexion) MiDt.Clear() MiDa.Fill(MiDt) BdS = New BindingSource BdS.DataSource = MiDt Me.DataGridView1.DataSource = BdS.DataSource
End Try End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim dt As DataTable = DirectCast(DataGridView1.DataSource, DataTable)
Dim row As DataRow = dt.NewRow()
'asignas los campos
dt.Rows.Add(Form1.NumeroTextBox.Text, DateTimePicker1.Text, TextBox2.Text)
End Sub
End Class He intentado añadir al evento Button1_Click lo siguiente:
With MiDa .InsertCommand = New System.Data.OleDb.OleDbCommand .InsertCommand.Connection = conexion .InsertCommand.CommandText = "INSERT INTO evolutivo(siniestro,fecha,obs) VALUES (@siniestro,@fecha,@obs)" End With
Me.MiDa.Update(CType(Me.MiDt, DataTable)) Pero me al ejecutarlo me salta el siguiente error: "No se han especificado valores para algunos de los parámetros requeridos."
Muchas gracias!
7
« en: Miércoles 31 de Julio de 2013, 12:46 »
El tema del tutorial ya estoy en ello, pero esto es una cosa que necesito, pese a sobrepasarme en conocimientos, de ahí mi petición de ayuda.
Voy a intentar ser mas correcto.
veamos...
He incluido la línea que me comentaste, y he puesto todo en el evento load del form ya que lo que quiero es que el datagrid se visualice al abrirlo, quedando de la siguiente forma:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=BBDD.mdb; User Id=admin;Password=;"
Dim ocom As New OleDb.OleDbConnection(connectionString) Dim ds As New DataSet
Dim OleComand As New OleDbCommand Dim da As New OleDbDataAdapter da.SelectCommand = OleComand da.SelectCommand.Connection = ocom
OleComand.CommandText = ("SELECT ID_TABLA2, Fecha, OBS FROM TABLA2 WHERE ID_TABLA2= '" & NumeroTextBox.Text & "'")
ocom.Open()
OleComand.ExecuteNonQuery()
da.Fill(ds, "seguimiento")
DataGridView2.DataSource = ds.Tables("seguimiento") End Sub he añadido también ocom.open porque sin el devolvía lo siguiente:
ExecuteNonQuery requiere una Connection abierta y disponible. El estado actual de la conexión es cerrada.
La cosa es que el Grid sigue sin mostrar resultados...
8
« en: Lunes 29 de Julio de 2013, 10:15 »
Muy buenas ProfesorX,
Siento no ser muy especifico, tampoco es que me entere mucho todavía, la verdad.
La cosa es que no tengo el código, lo único que hice fue incluir un dataGridview con los datos de la tabla2 en el formulario que contiene los datos de la tabla1 esperando que solo mostrara los registros cuyo ID coincidiera en ambas ya que en la BBDD de Access existe una relación entre ellas.
He probado lo siguiente:
Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)
Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=NOMBRE BBDD"
Dim ocom As New OleDb.OleDbConnection(connectionString) Dim ds As New DataSet
Dim OleComand As New OleDbCommand Dim da As New OleDbDataAdapter da.SelectCommand = OleComand da.SelectCommand.Connection = ocom '-------------------- OleComand.CommandText = "SELECT ID_TABLA2, Fecha, OBS FROM TABLA2 WHERE ID_TABLA2=" & ID_TABLA1TextBox.Text
da.Fill(ds, "seguimiento")
DataGridView1.DataSource = ds.Tables("seguimiento") Lo he compuesto a partir de lo que he podido averiguar por ahí pero el datagrid aparece vacío en el form.
Gracias
9
« en: Viernes 12 de Julio de 2013, 13:38 »
Buenas a todos,
Acabo de empezar con esto de la programación y me encuentro estresado con este tema.
Tengo una BBDD en Access con dos tablas relacionadas por un campo común, un ID. Una de ellas contiene datos generales, mientras que la otra contiene fechas y observaciones de cada uno de los registros anteriores,
En el formulario que realicé se muestra el ID de la primera tabla y quiero que debajo se muestre un datagrid con las fechas y observaciones de la segunda tabla, pero solo cuando ID sea el mismo mostrado en el textbox del formulario. Por mas que lo intento el datagrid muestra todos los registros de la segunda tabla.
Espero que me puedan ayudar.
Gracias!
Páginas: [1]
|
|
|