no puedo imprimir reportes de excell en visual b
Publicado por paulina (9 intervenciones) el 10/02/2006 05:28:45
hola me urge sacar este programa y cada vez pasa algo,,, espero me puedan ayudar.
bueno miren, yo en visual basic utilizo un codigo para crear reportes en excell....... el reporte se hace bien se guarda y todo muy bonito, pero ,,,,,pero,,,,,, en el formulario de visual b yo tengo un boton que al darle clic, mande llamar al common dialog para que de ahí pueda seleccionar el reporte que quiero abrir... muy bien? ahi todo si esta bien pues lo selecciono y lo abro ...... pero....pero cuando quiero imprimirlo no puedo y no se que rayos es???
1.- en word puedo imprimir. (asi que mi impresora no es la chafa)
2- Estoy usando mal el código.?
3.- Al archivo le he quitado lo de solo lectura y esas propiedades pero no mas no se como imprimir!!!
lo que me he fijado es que los reportes se guardan con la extension *.xls pero no tiene el logo de la hoja de calculo tiene otro diferente será que lo estoy guardando mal ??? o es el codigo? o que es???? por favor ayudenme
como creo
.......................
CommonDialogprov.CancelError = True
On Error GoTo salir
Dim sSQLString As String, sSQLString2 As String
Dim X As Long
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(App.Path + "\provs.xls", False, False)
Set xlSheet = xlBook.ActiveSheet
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim rs2 As ADODB.Recordset
Set rs2 = New ADODB.Recordset
Dim correcto1 As Boolean, correcto2 As Boolean
correcto1 = False
''''
Adodc1.RecordSource = "SELECT proveedor.id_proveedor, proveedor.nombre, proveedor_pagos.id_pagos, proveedor_pagos.fecha, proveedor_pagos.saldo, proveedor_pagos.s_plastico, proveedor_pagos.s_madera FROM proveedor INNER JOIN proveedor_pagos ON proveedor.id_proveedor = proveedor_pagos.id_proveedor order by proveedor_pagos.id_proveedor, proveedor_pagos.fecha, proveedor_pagos.id_pagos "
Adodc1.Refresh
If Not Adodc1.Recordset.EOF Then
Adodc1.Recordset.MoveFirst
Else
MsgBox ("NO HAY SALDOS PENDIENTES")
rs.Close
conn.Close
GoTo Vacio
End If
SIGUIENTE:
''''
sSQLString = "SELECT DISTINCT tablacreada.nombre as nombre, tablacreada.id_valor as id_valor, last(id_pagos)as pagos, max(fecha) as fecha, last(saldo) as saldos, last(s_madera) as madera, last(s_plastico) as plastico From tablacreada GROUP BY id_valor, nombre;"
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & App.Path & "\basedatos\bodegafarias.mdb"
rs.Open sSQLString, conn, adOpenDynamic, adLockOptimistic
xlSheet.Cells(4, 5).Value = Date
X = 7
While Not rs.EOF
xlSheet.Cells(X, 1).Value = rs("fecha")
xlSheet.Cells(X, 2).Value = rs("id_valor")
xlSheet.Cells(X, 3).Value = rs("nombre")
xlSheet.Cells(X, 4).Value = rs("pagos")
xlSheet.Cells(X, 5).Value = rs("saldos")
xlSheet.Cells(X, 6).Value = rs("madera")
xlSheet.Cells(X, 7).Value = rs("plastico")
correcto1 = True
rs.MoveNext
X = X + 1
Wend
If correcto1 = True Then
CommonDialogprov.DialogTitle = "Exportar a un archivo de datos excel"
CommonDialogprov.Filter = "Hoja de cálculo Excel *.xls | *.xls"
CommonDialogprov.ShowSave
Else
MsgBox ("NO SE PUEDE REALIZAR REPORTE")
GoTo salir
End If
salir:
strFileName = CommonDialogprov.FileName
If strFileName <> "" Then
xlBook.Close True, strFileName
Else
xlBook.Close False
End If
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
Exit Sub
Vacio:
xlBook.Close False
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
......................
bueno miren, yo en visual basic utilizo un codigo para crear reportes en excell....... el reporte se hace bien se guarda y todo muy bonito, pero ,,,,,pero,,,,,, en el formulario de visual b yo tengo un boton que al darle clic, mande llamar al common dialog para que de ahí pueda seleccionar el reporte que quiero abrir... muy bien? ahi todo si esta bien pues lo selecciono y lo abro ...... pero....pero cuando quiero imprimirlo no puedo y no se que rayos es???
1.- en word puedo imprimir. (asi que mi impresora no es la chafa)
2- Estoy usando mal el código.?
3.- Al archivo le he quitado lo de solo lectura y esas propiedades pero no mas no se como imprimir!!!
lo que me he fijado es que los reportes se guardan con la extension *.xls pero no tiene el logo de la hoja de calculo tiene otro diferente será que lo estoy guardando mal ??? o es el codigo? o que es???? por favor ayudenme
como creo
.......................
CommonDialogprov.CancelError = True
On Error GoTo salir
Dim sSQLString As String, sSQLString2 As String
Dim X As Long
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(App.Path + "\provs.xls", False, False)
Set xlSheet = xlBook.ActiveSheet
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim rs2 As ADODB.Recordset
Set rs2 = New ADODB.Recordset
Dim correcto1 As Boolean, correcto2 As Boolean
correcto1 = False
''''
Adodc1.RecordSource = "SELECT proveedor.id_proveedor, proveedor.nombre, proveedor_pagos.id_pagos, proveedor_pagos.fecha, proveedor_pagos.saldo, proveedor_pagos.s_plastico, proveedor_pagos.s_madera FROM proveedor INNER JOIN proveedor_pagos ON proveedor.id_proveedor = proveedor_pagos.id_proveedor order by proveedor_pagos.id_proveedor, proveedor_pagos.fecha, proveedor_pagos.id_pagos "
Adodc1.Refresh
If Not Adodc1.Recordset.EOF Then
Adodc1.Recordset.MoveFirst
Else
MsgBox ("NO HAY SALDOS PENDIENTES")
rs.Close
conn.Close
GoTo Vacio
End If
SIGUIENTE:
''''
sSQLString = "SELECT DISTINCT tablacreada.nombre as nombre, tablacreada.id_valor as id_valor, last(id_pagos)as pagos, max(fecha) as fecha, last(saldo) as saldos, last(s_madera) as madera, last(s_plastico) as plastico From tablacreada GROUP BY id_valor, nombre;"
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & App.Path & "\basedatos\bodegafarias.mdb"
rs.Open sSQLString, conn, adOpenDynamic, adLockOptimistic
xlSheet.Cells(4, 5).Value = Date
X = 7
While Not rs.EOF
xlSheet.Cells(X, 1).Value = rs("fecha")
xlSheet.Cells(X, 2).Value = rs("id_valor")
xlSheet.Cells(X, 3).Value = rs("nombre")
xlSheet.Cells(X, 4).Value = rs("pagos")
xlSheet.Cells(X, 5).Value = rs("saldos")
xlSheet.Cells(X, 6).Value = rs("madera")
xlSheet.Cells(X, 7).Value = rs("plastico")
correcto1 = True
rs.MoveNext
X = X + 1
Wend
If correcto1 = True Then
CommonDialogprov.DialogTitle = "Exportar a un archivo de datos excel"
CommonDialogprov.Filter = "Hoja de cálculo Excel *.xls | *.xls"
CommonDialogprov.ShowSave
Else
MsgBox ("NO SE PUEDE REALIZAR REPORTE")
GoTo salir
End If
salir:
strFileName = CommonDialogprov.FileName
If strFileName <> "" Then
xlBook.Close True, strFileName
Else
xlBook.Close False
End If
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
Exit Sub
Vacio:
xlBook.Close False
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
......................
Valora esta pregunta


0