Ander Postado Outubro 29, 2005 Denunciar Share Postado Outubro 29, 2005 Pessoal não consigo imprimir o conteuda de uma data grid ele até imprimi porem só a primeira coluna com a primeira celula alguém poderia me ajudarMeu codigoPrivate Sub Command3_Click()Printer.Print DataGrid1Pinter.EndDocEnd Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Outubro 29, 2005 Denunciar Share Postado Outubro 29, 2005 O ideal seria você imprimir os dados provenientes do recordset (que preencheu a datagrid), não?Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ander Postado Outubro 31, 2005 Autor Denunciar Share Postado Outubro 31, 2005 é porque eu estou usando uma pesquisa se eu for selecionar todo o record set que preenche o grid não vai funcionar minha pesquisa segue abaixa o condigo da minha pesquisaPrivate Sub DataList1_Click()Dim strconsulta As Stringstrconsulta = "Select * from Clientes Where Atividade = '" & DataList1.BoundText & "' OR Atividade2 = '" & DataList1.BoundText & "' OR Atividade3 = '" & DataList1.BoundText & "'"With Adodc2 .RecordSource = strconsulta .RefreshEnd WithWith DataGrid1 .ClearFields .ReBindEnd WithLabel1.Caption = "Relação de Empresa com o Ramo: " & DataList1.TextEnd SubEu quero Imprimir o resultado desta pesquisa que apracer no meu DataGridPor Favor me de uma luz Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Outubro 31, 2005 Denunciar Share Postado Outubro 31, 2005 é porque eu estou usando uma pesquisa se eu for selecionar todo o record set que preenche o grid não vai funcionar minha pesquisa segue abaixa o condigo da minha pesquisa Seu recordset só tem os dados da consulta (afinal de contas, não é a partir dele que você preenche a DataGrid? ).Não sei se é bem o que você está esperando, mas tente fazer:set rs = adodc2.recordset 'só pra encurtar o nome do while not rs.eof printer.print rs.fields("campo1").value, rs.fields("campo2").value, rs.fields("campo3").value rs.movenext loop printer.enddocExecute isso aí e veja o resultado. Troque os nomes dos campos, é claro.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ander Postado Novembro 1, 2005 Autor Denunciar Share Postado Novembro 1, 2005 Eu coloquei esse codigo em um botão porem deu o seguinte erro:Compile erro:Variable not definePrivate Sub Command3_Click()Set rs = Adodc2.Recordset 'só pra encurtar o nomeDo While Not rs.EOF Printer.Print rs.Fields("Codigo").Value, rs.Fields("Clientes").Value, rs.Fields("Atividade1").Value rs.MoveNextLoopPrinter.EndDocEnd Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ander Postado Novembro 1, 2005 Autor Denunciar Share Postado Novembro 1, 2005 e ficou o RS= Selecionado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 1, 2005 Denunciar Share Postado Novembro 1, 2005 Eu coloquei esse codigo em um botão porem deu o seguinte erro:Compile erro:Variable not defineO erro é que a variável não está definida (variable not defined). Ou seja, falta declarar:dim rs as ADODB.RecordsetIsso porque deve ter um Option Explicit lá no General Declarations (se você tirá-lo, não há necessidade de declaração de cada variável).Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ander Postado Novembro 2, 2005 Autor Denunciar Share Postado Novembro 2, 2005 cara deu certo porem agora eu quero que apareça a caixa de dialoga da impressora estou usando esse codigo porem da um erroCompile error: User-defined type not defineesse é o codigo que estou usandono botão imprimir esse codigo:Private Sub Command3_Click()If (MsgBox("Deseja imprimir a consulta?", vbYesNo, "Imprimir Arquivo") = vbYes) Then DisplayPrinterProperties Printer.DeviceNameElseSet rs = Adodc2.Recordset 'só pra encurtar o nomeDo While Not rs.EOF Printer.Print rs.Fields("Codigo").Value, rs.Fields("Clientes").Value, rs.Fields("Atividade").Value rs.MoveNextLoopEnd IfPrinter.EndDocEnd SubE para exibir a caixa da impressora esse codigo:Public Function DisplayPrinterProperties(DeviceName As String) As Boolean 'Exibe a caixa de dialogo da impressora'PARAMETRO: DeviceName: O nome da impressora padrão'COMO CHAMAR : DisplayPrinterProperties Printer.DeviceNameOn Error GoTo ErrorHandlerDim lAns As Long, hPrinter As LongDim typPD As PRINTER_DEFAULTStypPD.pDatatype = 0typPD.pDesiredAccess = PRINTER_ALL_ACCESStypPD.pDevMode = 0lAns = OpenPrinter(Printer.DeviceName, hPrinter, typPD)If lAns <> 0 Then lAns = PrinterProperties(Me.hWnd, hPrinter) DisplayPrinterProperties = lAns <> 0End IfErrorHandler:If hPrinter <> 0 Then ClosePrinter hPrinter End Functionpoderia me ajudar novamente obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 2, 2005 Denunciar Share Postado Novembro 2, 2005 Deve estar faltando declarar o tipo (Type) PRINTER_DEFAULTS. De qualquer forma, não seria mais simples utilizar o componente Common Dialogs?Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ander Postado Novembro 4, 2005 Autor Denunciar Share Postado Novembro 4, 2005 como eu posso utilizar esse componente Common Dialogs Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 4, 2005 Denunciar Share Postado Novembro 4, 2005 como eu posso utilizar esse componente Common Dialogs Marque-o na opção Components do menu Project. Depois é só colocá-lo no form e explorar suas propriedades e métodos.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ander Postado Novembro 5, 2005 Autor Denunciar Share Postado Novembro 5, 2005 obrigado valeu mesmo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ander Postado Novembro 5, 2005 Autor Denunciar Share Postado Novembro 5, 2005 Fiz a impressão só com tem um problema quando eu imprimino os campos que estão fazio está saindo impreso Null como faço para tirar isso Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 6, 2005 Denunciar Share Postado Novembro 6, 2005 Fiz a impressão só com tem um problema quando eu imprimino os campos que estão fazio está saindo impreso Null como faço para tirar isso Verifique se o valor é nulo utilizando a função IsNull().Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ander Postado Novembro 8, 2005 Autor Denunciar Share Postado Novembro 8, 2005 mas a onde eu ponho isso no meu cido para não imprimir os nullmeu codigoPrivate Sub Command3_Click()On Error Resume NextIf Err.Number = 32755 ThenExit Sub ' sai fora da sub e não imprime nadaEnd IfPrinter.Print Label1Set rs = Adodc2.Recordset 'só pra encurtar o nomeDo While Not rs.EOF Printer.Print rs.Fields("Codigo").Value, rs.Fields("Clientes").Value, rs.Fields("E_Mail").Value, rs.Fields("E_Mail1").Value, rs.Fields("E_Mail2").Value rs.MoveNextLoopPrinter.EndDocEnd Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 8, 2005 Denunciar Share Postado Novembro 8, 2005 IsNull() retorna um boolean indicando se o campo é nulo (True) ou não (False). Ou seja, você vai ter que testar se o campo é nulo e se ele for você deverá imprimir algo em seu lugar (ou não, dependendo do que você quer). Iif() é bastante útil nesse caso.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Ander
Pessoal não consigo imprimir o conteuda de uma data grid ele até imprimi porem só a primeira coluna com a primeira celula alguém poderia me ajudar
Meu codigo
Private Sub Command3_Click()
Printer.Print DataGrid1
Pinter.EndDoc
End Sub
Link para o comentário
Compartilhar em outros sites
15 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.