PESQUISAR E MOSTRAR DADOS
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:
Marcelino Neto
VB 6.0
Dao
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
Amigao,
Em qual momento ele fica dando loop? Dentro do Function ou o seu sistema fica lendo a function direto?
Em qual momento ele fica dando loop? Dentro do Function ou o seu sistema fica lendo a function direto?
Acho que fica lendo lendo a function direto!
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
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