Visual Basic - no puedo imprimir reportes de excell en visual b

Life is soft - evento anual de software empresarial
 
Vista:

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

......................
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:no puedo imprimir reportes de excell en visual

Publicado por ivan (463 intervenciones) el 10/02/2006 18:43:09
Veo que usas el CommonDialog para grabar el archivo XLS, sobre ese control yo no tengo ni la menor idea de como se use, yo genero e imprimo los archivos de Excel de otra forma...

Por ejemplo... para abrirlo es...

Set objExcel = New excel.Application
objExcel.Visible = False
objExcel.Workbooks.Open FileName:=App.path & "\archivo_de_excel.xls", Password:="", _
WriteResPassword:=""

Supongo que para imprimirlo debe haber un método printer o print, yo uso este para mostrar la presentación preliminar

objExcel.ActiveWindow.SelectedSheets.PrintPreview

Ahora... para crear un archivo de excel...

objExcel.ActiveWorkbook.SaveAs FileName:=Nombre_Archivo, FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=True

Es obvio que estas formas de abrir y guardar archivos de excel te puedan marcar errores, tal como ... el archivo que quieras abrir no exista, o el que quieras grabar exista y esté abierto, entre otras cosas... para eso ya tuvieras que detectar y comprobar los errores.

Espero que esta poca información te sirva de algo.... saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

FILTRO en los reportes

Publicado por Alejandra (1 intervención) el 05/11/2006 02:44:51
ammm.. alo.. ojala y alguien me pueda ayudar..

pues kiero saber como poner filtros en los reportes.. es decir.. k me de la opcion de imprimir los alumnos.. mayores de 18 años.. me explico??

thx....!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:FILTRO en los reportes

Publicado por Navas Francisco (7 intervenciones) el 30/12/2006 16:08:54
la mejor forma de hacer un filtro es usando una consulta SQL en el caso que me planteas la consulta seria:
"select * from NombreTabla where edad > 18 or year(FechaNac)>" & year(date) -18
espero que te sirva. chauuu.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar