PESQUISAR E MOSTRAR DADOS

USUARIO.EXCLUIDOS 03/08/2007 09:25:09
#229262
Pessoal, bom dia!!!
A função abaixo, é pra pesquisar o numero do voucher dentro da tabela e depois exibir o resultado nas labels. Porém quando mando pesquisar, a rotina abaixo não para de pesquisar, o loop fica continuo. Como faço para procurar somente o numero do voucher desejado e o mesmo ser exibido.

Veja a Rotina:

Function VoucherCarimbado(NumVoucher as String)
If NumVoucher = "" Then
MsgBox "entre com o Número do Voucher!", vbInformation, Me.Caption
txtPesquisa.SetFocus
exit Function
End If

CpnInfo.OpenRecordset "Select * from TblVoucherCarimbado where Voucher like '" & NumVoucher & "'"
If TblVoucherCarimbado.RecordCount = 0 Then
MsgBox "Teste"
txtPesquisa.SetFocus
Exit Function
End If
Do While Not TblVoucherCarimbado.EOF
DoEvents
Label2.Caption = TblVoucherCarimbado.Fields("Data")
Label4.Caption = TblVoucherCarimbado.Fields("Horario")
Label6.Caption = TblVoucherCarimbado.Fields("Responsavel")
Label8.Caption = TblVoucherCarimbado.Fields("Carimbado")
Label10.Caption = TblVoucherCarimbado.Fields("DataCarimbo")
Label12.Caption = TblVoucherCarimbado.Fields("DataPrevista")
Label17.Caption = TblVoucherCarimbado.Fields("Origem")
Label15.Caption = TblVoucherCarimbado.Fields("Destino")
Label13.Caption = TblVoucherCarimbado.Fields("Valor")
Label26.Caption = TblVoucherCarimbado.Fields("ValorDeslocamento")
Label24.Caption = TblVoucherCarimbado.Fields("ValorTotal")
Label22.Caption = TblVoucherCarimbado.Fields("ValorLiquido")
Label19.Caption = TblVoucherCarimbado.Fields("Voucher")
Label29.Caption = TblVoucherCarimbado.Fields("Pago")
TblVoucherCarimbado.MoveNext
Loop
TblVoucherCarimbado.Close
End Function



Marcelino Neto
VB 6.0
Dao
DAVID.SP 03/08/2007 09:58:38
#229276
Amigao,

Em qual momento ele fica dando loop? Dentro do Function ou o seu sistema fica lendo a function direto?
USUARIO.EXCLUIDOS 03/08/2007 10:00:21
#229279
Acho que fica lendo lendo a function direto!
USUARIO.EXCLUIDOS 03/08/2007 10:13:03
#229286
Estou levando em conta que só exista um voucher com o mesmo número.

Function VoucherCarimbado(NumVoucher as String)
If NumVoucher = "" Then
MsgBox "entre com o Número do Voucher!", vbInformation, Me.Caption
txtPesquisa.SetFocus
exit Function
End If

CpnInfo.OpenRecordset "Select * from TblVoucherCarimbado where Voucher like '" & NumVoucher & "'"
If TblVoucherCarimbado.RecordCount = 0 Then
MsgBox "Teste"
txtPesquisa.SetFocus
Exit Function
End If

'obs.: como só existe um, não precisa de loop.
If Not TblVoucherCarimbado.EOF
Label2.Caption = TblVoucherCarimbado.Fields("Data")
Label4.Caption = TblVoucherCarimbado.Fields("Horario")
Label6.Caption = TblVoucherCarimbado.Fields("Responsavel")
Label8.Caption = TblVoucherCarimbado.Fields("Carimbado")
Label10.Caption = TblVoucherCarimbado.Fields("DataCarimbo")
Label12.Caption = TblVoucherCarimbado.Fields("DataPrevista")
Label17.Caption = TblVoucherCarimbado.Fields("Origem")
Label15.Caption = TblVoucherCarimbado.Fields("Destino")
Label13.Caption = TblVoucherCarimbado.Fields("Valor")
Label26.Caption = TblVoucherCarimbado.Fields("ValorDeslocamento")
Label24.Caption = TblVoucherCarimbado.Fields("ValorTotal")
Label22.Caption = TblVoucherCarimbado.Fields("ValorLiquido")
Label19.Caption = TblVoucherCarimbado.Fields("Voucher")
Label29.Caption = TblVoucherCarimbado.Fields("Pago")
End If
TblVoucherCarimbado.Close
End Function

USUARIO.EXCLUIDOS 03/08/2007 10:21:17
#229290
Outra sugestão, seria informar o nome dos campos no SQL e colocar o índice no Recordset, na hora de exibir, ao invés do nome dos campos e trocar o LIKE por =.

Function VoucherCarimbado(NumVoucher as String)
If NumVoucher = "" Then
MsgBox "entre com o Número do Voucher!", vbInformation, Me.Caption
txtPesquisa.SetFocus
exit Function
End If

CpnInfo.OpenRecordset "Select Data,Horario,Responsavel,Carimbado,DataCarimbo,DataPrevista,Origem,Destino,Valor,ValorDeslocamento,ValorTotal,ValorLiquido,Voucher,Pago from TblVoucherCarimbado where Voucher = '" & NumVoucher & "'"
If TblVoucherCarimbado.RecordCount = 0 Then
MsgBox "Teste"
txtPesquisa.SetFocus
Exit Function
End If

'obs.: como só existe um, não precisa de loop.
If Not TblVoucherCarimbado.EOF
Label2.Caption = TblVoucherCarimbado.Fields(0)'Data
Label4.Caption = TblVoucherCarimbado.Fields(1)'Horario
Label6.Caption = TblVoucherCarimbado.Fields(2)'Responsavel
Label8.Caption = TblVoucherCarimbado.Fields(3)'Carimbado
Label10.Caption = TblVoucherCarimbado.Fields(5)'Data Carimbo
Label12.Caption = TblVoucherCarimbado.Fields(6)'DataPrevista
Label17.Caption = TblVoucherCarimbado.Fields(7)'Origem
Label15.Caption = TblVoucherCarimbado.Fields(8)'Destino
Label13.Caption = TblVoucherCarimbado.Fields(9)'Valor
Label26.Caption = TblVoucherCarimbado.Fields(10)'ValorDeslocamento
Label24.Caption = TblVoucherCarimbado.Fields(11)'ValorTotal
Label22.Caption = TblVoucherCarimbado.Fields(12)'ValorLiquido
Label19.Caption = TblVoucherCarimbado.Fields(13)'Voucher
Label29.Caption = TblVoucherCarimbado.Fields(14)'Pago
End If
TblVoucherCarimbado.Close
End Function

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