• Domingo 12 de Mayo de 2024, 15:46

Autor Tema:  reportes en excel  (Leído 1822 veces)

Reinberg

  • Nuevo Miembro
  • *
  • Mensajes: 22
  • Nacionalidad: mx
    • Ver Perfil
reportes en excel
« en: Jueves 17 de Julio de 2008, 02:18 »
0
Hola,

Bueno pues les pido nuevamente ayuda esta ves tengo un problema en una aplicacion echa en vb.net 2005 en la cual estoy tratando de mandar reportes a excel.

Código: Text
  1.  
  2.  
  3. Imports System.Data.OleDb
  4.  
  5. Public Class Ppal
  6.     Inherits System.Windows.Forms.Form
  7.     Dim objex As New Excel.Application
  8.     Dim libro As Excel.Workbook
  9.     Dim hoja As Excel.Worksheet
  10.     Dim i As Integer = 9
  11.     Dim r As DataRow
  12.  
  13. Private Sub MiembrosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MiembrosToolStripMenuItem.Click
  14.  
  15.         Try
  16.             Dim cn As OleDbConnection = New OleDbConnection
  17.             Dim cs As String
  18.             cs = "Provider = Mcrosoft.JET.OLEDB.4.0; Data Source = " + Application.StartupPath(+"bd.mdb)")
  19.             Dim Da As OleDbDataAdapter
  20.             Dim tabla As DataTable
  21.             tabla = New DataTable("usuarios")
  22.             Dim sql As String
  23.             sql = "Select * From usuarios"
  24.  
  25.  
  26.             libro = objex.Workbooks.Open(Application.StartupPath + "plantillausuarios.xls")
  27.  
  28.             [color=#FF0000]Da = New(sql, cn)[/color]
  29.             Da.Fill(tabla)
  30.             hoja = libro.Worksheets(1)
  31.             hoja.Cells(16, 2) = "Nombre"
  32.             hoja.Cells(16, 3) = "Apellido"
  33.             hoja.Cells(16, 4) = "Carrera"
  34.             hoja.Cells(16, 5) = "Campus"
  35.             hoja.Cells(16, 6) = "Expediente"
  36.             hoja.Cells(16, 7) = "Telefono"
  37.             hoja.Cells(16, 8) = "Correo"
  38.  
  39.             For Each r In tabla.Rows
  40.                 If tabla.Rows.Count > 0 Then
  41.  
  42.                     libro.Worksheets(libro.Worksheets.Count).copy(libro.Worksheets.Count - 1)
  43.                     hoja.Activate()
  44.                     hoja.Cells(i, 2) = r.Item("Nombre.")
  45.                     hoja.Cells(i, 3) = r.Item("Apellido")
  46.                     hoja.Cells(i, 4) = r.Item("Carrera")
  47.                     hoja.Cells(i, 5) = r.Item("Campus")
  48.                     hoja.Cells(i, 6) = r.Item("Expediente")
  49.                     hoja.Cells(i, 7) = r.Item("Telefono")
  50.                     hoja.Cells(i, 8) = r.Item("Correo")
  51.                     hoja.Cells(i, 3) = r.Item(i - 8)
  52.                     i += 1
  53.                 End If
  54.             Next
  55.             objex.Visible = True
  56.             objex = Nothing
  57.         Catch ex As Exception
  58.             MsgBox(ex.Message)
  59.         End Try
  60.  
  61.     End Sub
  62.  
  63.  

La linea que da el error esta en rojo, la cuestion es que sin las lineas del dataAdapter el codigo funciona correctamente y alponerlo se genera un error de tipo "Type expected" y pues la neta no tengo ni la menor idea de como resolverlo xD, espero me puedan ayudar.

gracias.
 :beer:

"En este basto universo de conocimiento, no se esta solo, siempre hay alguien que sabe mas uno"

SysEdw

  • Miembro activo
  • **
  • Mensajes: 28
  • Nacionalidad: pe
    • Ver Perfil
Re: reportes en excel
« Respuesta #1 en: Martes 22 de Julio de 2008, 05:59 »
0
hola estas oviando la conexion, esta es la correcto
Código: Text
  1.  
  2.         Dim cn As OleDbConnection
  3.         Dim cs As String
  4.         Dim ds As DataSet
  5.         cs = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Application.StartupPath + "bd.mdb"
  6.         cn = New OleDbConnection(cs)
  7.         cn.Open()
  8.         Dim Da As OleDbDataAdapter
  9.         Dim tabla As DataTable
  10.         tabla = New DataTable("usuarios")
  11.         Dim sql As String
  12.         ds = New Data.DataSet
  13.         sql = "Select * From usuarios"
  14.         libro = objex.Workbooks.Open(Application.StartupPath + "plantillausuarios.xls")
  15.         Da = New OleDbDataAdapter(sql, cn)
  16.         Da.Fill(ds, "usuarios")
  17.               hoja = libro.Worksheets(1)
  18.             hoja.Cells(16, 2) = "Nombre"
  19.             hoja.Cells(16, 3) = "Apellido"
  20.             hoja.Cells(16, 4) = "Carrera"
  21.             hoja.Cells(16, 5) = "Campus"
  22.             hoja.Cells(16, 6) = "Expediente"
  23.             hoja.Cells(16, 7) = "Telefono"
  24.             hoja.Cells(16, 8) = "Correo"
  25.  
  26.             For Each r In tabla.Rows
  27.                 If tabla.Rows.Count > 0 Then
  28.  
  29.                     libro.Worksheets(libro.Worksheets.Count).copy(libro.Worksheets.Count - 1)
  30.                     hoja.Activate()
  31.                     hoja.Cells(i, 2) = r.Item("Nombre.")
  32.                     hoja.Cells(i, 3) = r.Item("Apellido")
  33.                     hoja.Cells(i, 4) = r.Item("Carrera")
  34.                     hoja.Cells(i, 5) = r.Item("Campus")
  35.                     hoja.Cells(i, 6) = r.Item("Expediente")
  36.                     hoja.Cells(i, 7) = r.Item("Telefono")
  37.                     hoja.Cells(i, 8) = r.Item("Correo")
  38.                     hoja.Cells(i, 3) = r.Item(i - 8)
  39.                     i += 1
  40.                 End If
  41.             Next
  42.             objex.Visible = True
  43.             objex = Nothing
  44.  
  45.  
______________________________________________________________________________________
                        [size=100]   Si se puede imaginar... se puede programar.
Me encanta depender de la tegnología y vengarme de ella para dominarla como los locos.[/size]

Reinberg

  • Nuevo Miembro
  • *
  • Mensajes: 22
  • Nacionalidad: mx
    • Ver Perfil
Re: reportes en excel
« Respuesta #2 en: Miércoles 23 de Julio de 2008, 04:19 »
0
Hola SysEdw  gracias por responderme, me ha servido gracias de nuevo.

 :beer:   :hitcomp:   :beer:   :comp:

"En este basto universo de conocimiento, no se esta solo, siempre hay alguien que sabe mas uno"