IMPRESSAO NO PRINT.PRINTER OU DATAENVEROMENT

JRODRI23 08/04/2010 11:52:29
#338862
Pessoal, Bom dia
Mais uma vez estou para pedir ajuda a voces
O meu problema é o seguinte:
Tenho um BANCO DE DADOS ACCESS, com o nome[Ô]Hospital[Ô], e dentro dele uma das tabela, qual eu quero usar chama-se
[Ô]ATENDIMENTO[Ô], essa tabela tem o campo chamado [Ô]DATA[Ô],
no formulario tenho duas caixas de texto com os nomes Wdataini e outra com o nome Wdatafim. O que eu quero é atraves dessa consulta imprimir o resultado com o tipo de impressão PRINTER.PRINT. Gostaria que voces me ajudassem a montar um tipo de fazer uma procura nos dados informada acima e jogar o resultado, tanto para impressão na tela com o impressora
Uso Visual Basic 6 - DAO 3.6
Caso alguem possa me ajudar, desde ja agradeço[txt-color=#0000f0] [/txt-color]

CZONTINI 08/04/2010 19:09:07
#338899
Eu fiz há algum tempo algo parecido, usei 2 combobox para fazer a pesquisa e colocava o resultado em um listbox, e depois tinha a opção de salvar em arquivo .txt e imprimir direto do listbox.

**** Form ****
_________________________________________________
Dim rsBanco as Database
Const DBPath = [Ô]CaminhoDoSeBanco\[Ô]
_________________________________________________
Function Consulta()

List1.Clear

Dim rsSuaTabela As Recordset
Dim Consulta_Inicio As Integer
Dim Consulta_Final As Integer

Consulta_Inicio = Val(cboConsulta_Inicio.Text)
Consulta_Final = Val(cboConsulta_Final.Text)

Set dbBanco = OpenDatabase(DBPath & [Ô]SeuBanco.mdb[Ô])
Set rsSuaTabela = dbBanco.OpenRecordset([Ô]SELECT * FROM tbl_SuaTabela WHERE Consulta BETWEEN [Ô] & Consulta_Inicio & [Ô] and [Ô] & Consulta_Final & [Ô] ORDER BY SuaPreferencia[Ô])

[ô] Carrega list box
Do Until rsBanco.EOF
List1.AddItem _
Format(rsSuaTabela.Fields([Ô]SeuIndex[Ô]), [Ô]000#[Ô]) & [Ô] - [Ô] & _
Format(rsBanco.Fields([Ô]Item1[Ô]), [Ô]000#[Ô]) & [Ô] - [Ô] & _
Format(rsBanco.Fields([Ô]Item2[Ô]), [Ô]000#[Ô]) & [Ô] - [Ô] & _
Format(rsBanco.Fields([Ô]Item3[Ô]), [Ô]000#[Ô]) & [Ô] - [Ô] & _
Format(rsBanco.Fields([Ô]Item4[Ô]), [Ô]000#[Ô]) & [Ô] - [Ô] & _
Format(rsBanco.Fields([Ô]Item5[Ô]), [Ô]000#[Ô]) & [Ô] - [Ô] & _
Format(rsBanco.Fields([Ô]Item6[Ô]), [Ô]000#[Ô]) & [Ô] -[Ô] & _
Format(rsBanco.Fields([Ô]Data[Ô]), [Ô]dd/mm/yyyy[Ô])

List1.ItemData(List1.NewIndex) = rsSuaTabela.Fields([Ô]SeuIndex[Ô])

‘A função format não é obrigatória, como o impressão é feita direto do ListBox, dependendo do tipo de dados ela fica irregular e no
[ô]meu caso para fazer o alinhamento, eu fiz este Format para colocar os zeros a esquerda qdo os numeros de retorno da consulta
[ô]tinham menos de 4 digitos

rsSuaTabela.MoveNext

Loop

rsSuaTabela.Close

Set rsSuaTabela = Nothing

End Function
_______________________________________________________
Private Sub cmdSalvarList_Click()

Call SaveL(List1, App.Path & [Ô]\ SeuTitulo .txt[Ô])

End Sub
________________________________________________________
Private Sub cmdPrint_Click()

Call PrintL(List1)

End Sub
________________________________________________________

**** Modulo *******

Função para salvar em txt
Public Function SaveL(aList As ListBox, sPath As String)
Dim Nbr As Long
On Error Resume Next
Open sPath For Output As #1
Print #1, [Ô]SeuTitulo[Ô], Now [ô] Titulo , Data e Hora
Print #1,

For Nbr = 0 To aList.ListCount - 1

Print #1, aList.List(Nbr)
Next Nbr
Close #1

End Function
__________________________________________________________
Função imprimir

Public Function PrintL(aList As ListBox)
Dim Nbr As Long

[ô]Titulo
Printer.FontBold = True
Printer.FontSize = 12
Printer.Print Tab(4), [Ô]SeuTitulo[Ô], Now [ô] Titulo, Data e Hora
Printer.Print


For Nbr = 0 To aList.ListCount - 1
Printer.FontBold = False
Printer.FontSize = 11
Printer.Print aList.List(Nbr)
Next Nbr
Printer.EndDoc

End Function

Espero que isto te ajude
Boa sorte

Tópico encerrado , respostas não são mais permitidas