ERRO EM CONSULTA SQL
o que está faltando é o nome da tabela antes do campo datainicio
[Ô]Select * From Consignados Where codigofuncionario Like [ô][Ô] & rsfuncionarios([Ô]codigo[Ô]) & [Ô][ô] And situacao Like [ô]Ativo[ô] Order By cdate(Consignados.datainicio) Desc[Ô]
teste aÃ!!!
[Ô]Select * From Consignados Where codigofuncionario Like [ô][Ô] & rsfuncionarios([Ô]codigo[Ô]) & [Ô][ô] And situacao Like [ô]Ativo[ô] Order By cdate(Consignados.datainicio) Desc[Ô]
teste aÃ!!!
Olha pessoal, essa é e tela, quando digitado um nome na TextBox e o sistema encontra apenas um funcionário com o nome digitado.
Repare que a order é por data decrescente.
Repare que a order é por data decrescente.
Essa é a tela quando clicado no Botão Itaú. Tem que mostrar apenas os consignados do Banco Itaú.
Repare que a ordem também é por data e decrescente.
Repare que a ordem também é por data e decrescente.
Essa é a tela, quando o usuário deixa a TextBox em branco, para mostrar todos os consignados em aberto.
Repare a ordem que aparece. E a consulta sql é igual para todos os casos.
Repare a ordem que aparece. E a consulta sql é igual para todos os casos.
Você pode informar qual é a base de dados que você está utilizando? Com isso podemos informar qual função que você deverá usar para converter a informação do campo texto em tipo data.
primeiro perci verifique se o txtNome está preenchido, vc pode usar a função no evento change do textbox
bom acima usei um inner join no intuito de reduzir seu código, não sei se irá funcionar como deseja, mas quero passar a idéia de como fazer.
veja que criei um if que verifica se o campo text está vazio se estiver faz uma sql que preenche o list com todos os dados, se não estiver preenche conforme o que for digitado.
teste e veja se funciona
If txtNome.Text = [Ô][Ô] Then
sSQL= [Ô]Select F.*,C.* From Funcionario F INNER JOIN Consignados C ON C.codigofuncionario = F.codigo ORDER BY CDate(C.datainicio) DESC[Ô]
Else
sSQL= [Ô]Select F.*,C.* From Funcionario F INNER JOIN Consignados C ON C.codigofuncionario = F.codigo WHERE F.nome Like [ô][Ô] & TxtNome.Text & [Ô]*[ô] AND C.situacao =[ô]Ativo[ô] ORDER BY CDate(C.datainicio) DESC[Ô]
End if
Set RSConsulta= db.OpenRecordset(sSQL)
Do While Not RSConsulta.EOF
[ô]preenche a ListView com os dados encontrados
RSConsulta.MoveNext
Loop
bom acima usei um inner join no intuito de reduzir seu código, não sei se irá funcionar como deseja, mas quero passar a idéia de como fazer.
veja que criei um if que verifica se o campo text está vazio se estiver faz uma sql que preenche o list com todos os dados, se não estiver preenche conforme o que for digitado.
teste e veja se funciona
Marcelo, vou verificar e depois te retorno.
Obrigado.
Até mais.
Obrigado.
Até mais.
Tem um erro nesse código:
sqlfuncionarios = [Ô]Select * From Funcionarios Where nome Like [ô]*[Ô] & TxtNome.Text & [Ô]*[ô][Ô]
Set rsfuncionarios = db.OpenRecordset(sqlfuncionarios)
If rsfuncionarios.EOF Then
Exit Sub
End If
Do Until rsfuncionarios.EOF
sqlconsignados = [Ô]Select * From Consignados Where codigofuncionario Like [ô][Ô] & rsfuncionarios([Ô]codigo[Ô]) & [Ô][ô] And situacao Like [ô]Ativo[ô] Order By cdate(datainicio) Desc[Ô]
Set rsconsignados = db.OpenRecordset(sqlconsignados)
If rsconsignados.EOF Then
rsfuncionarios.MoveNext
Else
Do Until rsconsignados.EOF
rsconsignados.MoveNext
Loop
rsfuncionarios.MoveNext
End If
rsconsignados.Close [ô]tem que acrescentar essa linha
Loop
Exit Sub
Bom pessoal, é o seguinte. Não consegui resolver dessa maneira. Alterei o projeto, fazendo com que o usuário clique num botão e abra a consulta de funcionários, assim ele escolhe o funcionário que deseja consultar na lista, e quando der duplo clique sobre ele, consulta apenas os consignados do funcionário selecionado. é mais prático dessa maneira.
Obrigado aos que [Ô]esquentaram a cabeça[Ô].
Até mais.
Obrigado aos que [Ô]esquentaram a cabeça[Ô].
Até mais.
Tópico encerrado , respostas não são mais permitidas