• Miércoles 21 de Febrero de 2024, 19:38

Mostrar Mensajes

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
VB .NET / Re:Exportar solo columnas visibles de datagrid a Excel
« 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.

Código: [Seleccionar]
If CheckBox1.Checked = False Then
                Me.DataGridView1.Columns.Remove("columna_a_eliminar")
            End If

2
VB .NET / Exportar solo columnas visibles de datagrid a Excel
« 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!

Código: [Seleccionar]
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
VB .NET / Re:Actualizar tabla Access con datagrid
« 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!

Código: [Seleccionar]
       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
VB .NET / Cargar registro especifico seleccionado desde un datagrid
« 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.

Código: [Seleccionar]
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
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
VB .NET / Actualizar tabla Access con datagrid
« 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:

Código: [Seleccionar]
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:

Código: [Seleccionar]
        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
Visual Basic 6.0 e inferiores / Re:Problemas para enlazar un textbox con un datagrid
« 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:

Código: [Seleccionar]
    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
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:

Código: [Seleccionar]
    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
Visual Basic 6.0 e inferiores / Problemas para enlazar un textbox con un datagrid
« 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]