Começo dizendo que tentei resolver essa dúvida tb em outro fórum... mas não rolou... o mistério continua... e a dúvida parece de tão simples solução... mas não há jeito de eu conseguir fazer funcionar...
O caso é que preciso fazer uma consulta no bd entre Horas... ou seja, no bd tem os campos:
cliente | horai | horaf | valor
e em outra tabela eu ainda tenho o campo chamado
close_date e é este o campo que eu quero usar como índice para verificar o valor na minha consulta...
Todos os campos data/hora em meu BD Access estão formatados para HORA ABREVIADA e como vocês vão ver no código abaixo no app tb estou usando o formatdate para não haver problemas, mantendo os campos quando impressos em tela ou no select tb no formato shortdate...
Acontece que não estou conseguindo fazer meu select funcionar...
no código abaixo a query que não está funionando é a ComandoSQL5 que coloquei ainda mais abaixo do código junto com o debug da mesma...
<%
Option Explicit
Response.Expires = 0
Dim objConn, objRs, strQuery, ComandoSQL, Conexao, ddi, mmi, aai, datai, ddf, mmf, aaf, dataf, txtNome, chcNome
Dim strConnection, stringSQL, array_id, i, sql_id, id, nomecliente, ComandoSQL1, objConn1, ObjRs1, ComandoSQL2, objConn2, ObjRs2, ComandoSQL3, objConn3, ObjRs3, logincliente, tipoatendimento, ComandoSQL4, objConn4, ObjRs4, n , ComandoSQL5, objConn5, ObjRs5, hi, hf, ni, nf, hni, hnf, horai, horaf
n = 1
id = Request.QueryString("checkbox")
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DBQ=" & Server.MapPath("bd.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"
if err = 0 and id <> "" then
array_id = split(id,",")
For i=0 to ubound(array_id)
sql_id = sql_id & "tblUsers.sid = " & Trim(array_id(i)) & " OR "
Next
sql_id = left(sql_id,(len(sql_id)-4))
stringSQL = "select * from tblUsers WHERE "&sql_id&""
Set ObjRs = objConn.Execute(stringSQL)
end if
nomecliente = objRS("fname")
logincliente = objRS("uid")
ComandoSQL1 = "select * from regrashora where cliente = '"&nomecliente&"'"
Set objConn1 = Server.CreateObject("ADODB.Connection")
objConn1.Open "DBQ=" & Server.MapPath("bd.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"
Set ObjRs1 = objConn1.Execute(ComandoSQL1)
ComandoSQL2 = "select * from regrashoraadic where cliente = '"&nomecliente&"'"
Set objConn2 = Server.CreateObject("ADODB.Connection")
objConn2.Open "DBQ=" & Server.MapPath("bd.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"
Set ObjRs2 = objConn2.Execute(ComandoSQL2)
ComandoSQL3 = "select * from problems where uid = '"&logincliente&"'"
Set objConn3 = Server.CreateObject("ADODB.Connection")
objConn3.Open "DBQ=" & Server.MapPath("bd.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"
Set ObjRs3 = objConn3.Execute(ComandoSQL3)
tipoatendimento = objRS3("department")
ComandoSQL4 = "select * from departments where department_id = "&tipoatendimento&""
Set objConn4 = Server.CreateObject("ADODB.Connection")
objConn4.Open "DBQ=" & Server.MapPath("bd.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"
Set ObjRs4 = objConn4.Execute(ComandoSQL4)
hni = FormatDateTime(objRS3("start_date"), 4)
hnf = FormatDateTime(objRS3("close_date"), 4)
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
</head>
<body>
Cadastro Clientes (consulta)
<table width="650" border="1" cellspacing="0" cellpadding="0" height="1">
<tr>
<td width="650" valign="top" height="136">
<table border="0" cellpadding="0" cellspacing="0" width="650">
<tr bgcolor="ffffff">
<td width="650" colspan="3">
<table width="100%" border="0" cellspacing="2" cellpadding="2">
</table>
</td>
</tr>
<tr>
<td colspan="3">
<form method="GET" action="action_excluir_clientes.asp">
<%While Not objRS.EOF %>
<table width="650" border="1" cellspacing="0" cellpadding="0" height="1">
<tr>
<td height="1" align="center" width="650">
<table border="1" width="650" height="29" cellpadding="2">
<tr bgcolor="#0099FF">
<td width="266" align="center" bgcolor="#0099FF"> NOME/ RAZÃO SOCIAL</td>
<td width="211" align="center">RG / IE</td>
<td width="222" align="center">CPF/ CNPJ</td>
<td width="158" align="center">DATA NASCIMENTO / ABERTURA EMPRESA</td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="266" align="center" ><%Response.write objRS("fname")%></td>
<td align="center" ><%Response.write objRS("rg")%></td>
<td width="222" align="center" ><%Response.write objRS("cpf")%></td>
<td width="158" align="center" ><%Response.write objRS("dtcreated")%></td>
</tr>
<tr bgcolor="#0099FF">
<td align="center"> ENDEREÇO</td>
<td align="center">BAIRRO</td>
<td align="center">CIDADE</td>
<td align="center">CEP</td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="center" ><%Response.write objRS("endereco")%></td>
<td align="center"><%Response.write objRS("bairro")%></td>
<td align="center" ><%Response.write objRS("cidade")%></td>
<td align="center"><%Response.write objRS("cep")%></td>
</tr>
<tr bgcolor="#0099FF">
<td align="center">TELEFONE</td>
<td align="center">CELULAR</td>
<td align="center" bgcolor="#0099FF">VALOR CONTRATO</td>
<td align="center" bgcolor="#0099FF">QTDE. HORAS CONTRATADAS</td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="center" ><%Response.write objRS("phone")%></td>
<td align="center" ><%Response.write objRS("phone_mobile")%></td>
<td align="center" ><%Response.write formatnumber (objRS.fields("valor"),2)%></td>
<td align="center" ><%Response.write objRS("qtdhoras")%></td>
</tr>
<tr bgcolor="#0099FF">
<td colspan="3" align="center" >E-MAIL</td>
<td align="center" >LOGIN</td>
</tr>
<tr bgcolor="#FFFFFF">
<td colspan="3" align="center" ><%Response.write objRS("email1")%></td>
<td align="center" ><%Response.write objRS("uid")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td colspan="4" align="center" >
<table width="650" border="1" cellspacing="0" cellpadding="0">
<tr bgcolor="#0033FF">
<td colspan="6">Regras Horas "Pacote Contratado"</td>
</tr>
<tr bgcolor="#0099FF">
<td width="118">Entre a Hora Inicial:</td>
<td width="119">e a Hora Final:</td>
<td colspan="2">Levando-se em consideração o atendimento por:</td>
<td colspan="2">O cliente pagará:</td>
</tr>
<%While Not objRS1.EOF %>
<tr>
<td><%Response.write FormatDateTime(objRS1("horai"), 4)%></td>
<td><%Response.write FormatDateTime(objRS1("horaf"), 4)%></td>
<td colspan="2"><%Response.write objRS1("tipo")%></td>
<td colspan="2"><%Response.write formatnumber (objRS1.fields("valor"),2)%></td>
</tr>
<%
horai = FormatDateTime(objRS1("horai"), 4)
horaf = FormatDateTime(objRS1("horaf"), 4)%>
<%objRS1.MoveNext
Wend%>
</table>
<table border="1">
<tr bgcolor="#0033FF">
<td colspan="7">Horas Utilizadas</td>
</tr>
<tr bgcolor="#0099FF">
<td width="108">Hora Abertura Chamadol:</td>
<td width="120">Hora Fechamento Chamado:</td>
<td width="78">Título do Chamado</td>
<td width="97">Tipo de Atendimento</td>
<td>Tempo Gasto (min.)</td>
<td width="66">Valor Hora</td>
<td>Saldo</td>
</tr>
<%While Not objRS3.EOF %>
<%ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente&"' and #"&hnf&"# BETWEEN #"&horai&"# and #"&horaf&"# "
Set objConn5 = Server.CreateObject("ADODB.Connection")
objConn5.Open "DBQ=" & Server.MapPath("bd.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"
response.write "ComandoSQL5 =" &ComandoSQL5& "<br>"
Set ObjRs5 = objConn5.Execute(ComandoSQL5)%>
<%While Not objRS5.EOF %>
<tr>
<td><%Response.write FormatDateTime(objRS3("start_date"),4)%></td>
<td><%Response.write FormatDateTime(objRS3("close_date"),4)%></td>
<td><%Response.write objRS3("title")%></td>
<td><%response.write objRS4("dname")%></td>
<td width="84"><%Response.write objRS3("time_spent")%></td>
<td><%response.write objRS5("valor")%></td>
<td width="51">
<%
Dim qtdhoras, qtdminutos, saldo, tempogasto
qtdhoras = objRS("qtdhoras")
qtdminutos = qtdhoras * 60
tempogasto = objRS3("time_spent")
if n = 1 then
saldo = qtdminutos - tempogasto
else
saldo = saldo - qtdminutos - tempogasto + qtdminutos
end if
response.write formatnumber (saldo,2)
n = n + 1
%></td>
</tr>
<%objRS5.MoveNext
Wend%>
<%objRS3.MoveNext
Wend%>
<tr>
<td colspan="7" bgcolor="#FF6600"> </td>
</tr>
</table>
<%
objRS.MoveNext
Wend
%>
</table>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</td>
</tr>
</table>
<%
objRs.close
objConn.close
Set objRs = Nothing
Set objConn = Nothing
objRs1.close
objConn1.close
Set objRs1 = Nothing
Set objConn1 = Nothing
objRs2.close
objConn2.close
Set objRs2 = Nothing
Set objConn2 = Nothing
objRs3.close
objConn3.close
Set objRs3 = Nothing
Set objConn3 = Nothing
objRs4.close
objConn4.close
Set objRs4 = Nothing
Set objConn4 = Nothing
%>
</body>
</html>
a query é esta aqui:
ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente&"' and #"&hnf&"# BETWEEN #"&horai&"# and #"&horaf&"# "
o debug imprime isso aqui:
ComandoSQL5 =select valor from regrashora where cliente = 'teste' and #12:58# BETWEEN #18:30# and #08:29#
e não funciona porque ela não imprime somente os campos valor cujo qual deve estar onde a hora hnf esteja entre a horai e a horaf... imprime uns resultados sem sentido algum, como por exemplo, quando consultada como o debug acima vieram os seguintes resultados:
Pergunta
Notax
Pessoal, boa tarde.
Começo dizendo que tentei resolver essa dúvida tb em outro fórum... mas não rolou... o mistério continua... e a dúvida parece de tão simples solução... mas não há jeito de eu conseguir fazer funcionar...
O caso é que preciso fazer uma consulta no bd entre Horas... ou seja, no bd tem os campos:
cliente | horai | horaf | valor
e em outra tabela eu ainda tenho o campo chamado
close_date e é este o campo que eu quero usar como índice para verificar o valor na minha consulta...
Todos os campos data/hora em meu BD Access estão formatados para HORA ABREVIADA e como vocês vão ver no código abaixo no app tb estou usando o formatdate para não haver problemas, mantendo os campos quando impressos em tela ou no select tb no formato shortdate...
Acontece que não estou conseguindo fazer meu select funcionar...
no código abaixo a query que não está funionando é a ComandoSQL5 que coloquei ainda mais abaixo do código junto com o debug da mesma...
a query é esta aqui:o debug imprime isso aqui:
ComandoSQL5 =select valor from regrashora where cliente = 'teste' and #12:58# BETWEEN #18:30# and #08:29#
e não funciona porque ela não imprime somente os campos valor cujo qual deve estar onde a hora hnf esteja entre a horai e a horaf... imprime uns resultados sem sentido algum, como por exemplo, quando consultada como o debug acima vieram os seguintes resultados:
teste 09:06 12:58 50,00
teste 09:06 12:58 100,00
teste 09:06 10:08 50,00
teste 09:06 10:08 100,00
teste 09:06 10:04 50,00
teste 09:06 10:04 100,00
teste 09:06 11:06 50,00
teste 09:06 11:06 100,00
será que alguém consegue dar uma força???
[]'s Notax
Editado por NotaxLink para o comentário
Compartilhar em outros sites
27 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.