Ir para conteúdo
Fórum Script Brasil
  • 0

Between entre horas...


Notax

Pergunta

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...

<%
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&Atilde;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&Ccedil;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 &quot;Pacote Contratado&quot;</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&ccedil;&atilde;o o atendimento por:</td>
<td colspan="2">O cliente pagar&aacute;:</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&iacute;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">&nbsp;</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:

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 Notax
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

E aí Fabio, beleza?

Então... ta como data/hora no banco com formato hora abreviada... mas eu não entendi esse teste que voce pediu pra eu fazer... porque ele não tem o fator que talvés seja o mais importante que é a hora a ser comparada entre as outras duas horas...

esse é o select que você sugeriu:

ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente&"' and hora BETWEEN #"&horai&"# and #"&horaf&"# "
esse é o meu select:
ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente&"' and #"&hnf&"# BETWEEN #"&horai&"# and #"&horaf&"# "

o que eu preciso é que o select "pegue" na tabela 'regrashora' onde no campo 'cliente' seja "fulano de tal" e a hora 'hnf' esteja entre as horas 'horai' e 'horaf'... e é isso que não funciona de jeito nenhum...

no caso do select que você sugeriu ele vai simplesmente pegar na tabela 'regrashora' no campo 'cliente' fulanodetal que estiver no campo 'hora' entre as 'horai' e 'horaf'... mas nem existe o campo 'hora'... o que existe são os campos 'horai' e 'horaf'... e uma variável chamada 'hnf' (tb formato hora abreviada) que deve estar entre os campos 'horai' e 'horaf'... sacou?

Não entendo porque o meu não está funcionando... rola mais algum dica?

[]'s Notax

Editado por Notax
Link para o comentário
Compartilhar em outros sites

  • 0

pessoal não sei se resolveria... mas no desespero tentei esse select aqui muito louco, mas tb não rolou:

ComandoSQL5 = "SELECT a.cliente, a.valor, a.horai, a.horaf, b.close_date, b.fname FROM regrashora a,problems b WHERE a.cliente = b.uid and b.close_date BETWEEN #"&a.horai&"# and #"&a.horaf&"# "

da esse erro aqui:

Microsoft VBScript runtime error '800a01a8'

Object required: '' exatamente na linha do select acima...

não rola mais uma forcinha aí?

[]'s Notax

Link para o comentário
Compartilhar em outros sites

  • 0
pessoal não sei se resolveria... mas no desespero tentei esse select aqui muito louco, mas tb não rolou:

ComandoSQL5 = "SELECT a.cliente, a.valor, a.horai, a.horaf, b.close_date, b.fname FROM regrashora a,problems b WHERE a.cliente = b.uid and b.close_date BETWEEN #"&a.horai&"# and #"&a.horaf&"# "
da esse erro aqui: Microsoft VBScript runtime error '800a01a8' Object required: '' exatamente na linha do select acima... não rola mais uma forcinha aí? []'s Notax
opa notax td bom, ta no desepero cara?? mas pelo q eu vejo não parece ser tão complicado. o q acontece é q não adianta selecionar o valor e passar o valor como você fez nas querys de cima. se você passar o valor, o sql entende como valor e não como o campo. o esquema seria usar um inner join (veja aqui: http://scriptbrasil.com.br/forum/index.php?showtopic=108732) mais ou menos como você fez na ultima opcao. faz o seguinte, tente isso:
ComandoSQL5 = "SELECT a.cliente, a.valor, a.horai, a.horaf, b.close_date, b.fname FROM regrashora a,problems b WHERE a.cliente = b.uid and b.close_date BETWEEN #" & horai & "# and #" & horaf & "# "

o problema é q você ta confundindo a parte de dentro da query com a parte de fora. se horai e horaf são variaveis dos asp (e não tem nd a ver com a tabela), você não pode por o a. se não o asp procura um objeto chamado a por isso o erro de Object required. entenda q você tem q pegar o valor da variavel e por no select. veja se isso resolve, mas tipo veja o link q eu passei ali (isso q você fez em cima é nd mais do q uma outra forma de se escrever um INNER JOIN). entenda q você tem relacionar as duas tabelas no select por um campo q elas tenham em comum. q acredito, q seja a.cliente e b.uid, certo??

Link para o comentário
Compartilhar em outros sites

  • 0

Po cara... só tu mesmo... valeu a força!

Mas então cara... aí é que tá... horai e horaf são campos do bd da tabela regrashora e não variáveis do asp... estão setados no bd como data/hora formato: hora abreviada...

da mesma forma o proprio hnf tb é campo do bd advindo de outra tabela chamada problems do campo close_date

setei a variavel hnf para formatar o objrs ("close_date") em shortdate porque no bd TEM QUE FICAR como data completa...

tipo... esse select ai q você postou imprime esse erro em tela:

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/logar/clientes_resultado_extrato.asp, line 183

porque horai e horaf são campos do bd e não variaveis...

não sei se eu consegui me explicar!

EDITANDO: ahhh e sim os campos em comum são cliente em regrashora e uid em problems...

valeu mesmo pela atenção...

[]'s Notax

Editado por Notax
Link para o comentário
Compartilhar em outros sites

  • 0

a mas se são campos do banco, acho q fica mais simples ainda. tenta isso:

ComandoSQL5 = "SELECT a.cliente, a.valor, a.horai, a.horaf, b.close_date, b.fname FROM regrashora a,problems b WHERE a.cliente = b.uid and b.close_date BETWEEN a.horai and a.horaf"
ou então:
ComandoSQL5 = "SELECT a.cliente, a.valor, a.horai, a.horaf, b.close_date, b.fname FROM regrashora As a INNER JOIN problems As b ON a.cliente = b.uid Where b.close_date BETWEEN a.horai and a.horaf"

quanto a essa mensagem de erro, se ela persistir, verifica se os nomes de todos os campos e tabela esta digitados certo.

Link para o comentário
Compartilhar em outros sites

  • 0

Agradeço mesmo cara...

mas tipo não rolou... não aparece erro... mas o resultado da busca nunca da certo...

ComandoSQL5 = "SELECT a.cliente, a.valor, a.horai, a.horaf, b.close_date, b.uid FROM regrashora a,problems b WHERE a.cliente = b.uid and b.close_date BETWEEN a.horai and a.horaf"

%ComandoSQL5 = "SELECT a.cliente, a.valor, a.horai, a.horaf, b.close_date, b.uid FROM regrashora As a INNER JOIN problems As b ON a.cliente = b.uid Where b.close_date BETWEEN a.horai and a.horaf"

Vou explicar na pratica:

tenho no be duas tabelas:

1) "regrashoras" que tem os campos: cliente | horai | horaf | valor

2) "problems" que tem os campos: uid | date_close entre outros que não vem ao caso...

o que eu preciso é saber qual o valor na regrashora devo cobrar do cliente de acordo com a hora em que o problema dele foi encerrado... então tipo na regrashora tenho que:

cliente: fulandodetal

horai: 08:30

horaf: 18:29

valor: 50,00

depois tenho na mesma tabela e pro mesmo fulanodetal

horai: 18:30

horaf: 08:29

valor:70,00

Em problems vou ter que um problemas deste cliente fulanodetal foi fechado as 10:00 e que outro problema desse fulando de tal foi fechado as 22:47

ou seja, pro problema fechado as 10:00 o valor a ser cobrado é: 50,00 já pro problema fechado as 22:47 o valor a ser cobrado é: 70,00

Então em princípio achei que seria barbada... fiz inclusive esse select aqui achando que mataria o problema:

somente trechos do codigo:

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)

...

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)

...

hni = FormatDateTime(objRS3("start_date"), 4) 
hnf = FormatDateTime(objRS3("close_date"), 4) 

...

horai = FormatDateTime(objRS1("horai"), 4)                              
horaf = FormatDateTime(objRS1("horaf"), 4)%>

...

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"

Set ObjRs5 = objConn5.Execute(ComandoSQL5)

...

deveria resolver certo?

mas o resultado da pesquisa como no caso acima vem como 4 registros:

sendo que referente a cada hora vem com os dois valores... ou seja pra hora 10:00 vem como 50,00 e 70,00 e deveria ser só 50,00 e pra hora 22:47 a mesma coisa e deveria ser só 70,00...

já nesse select que você me mandou acontece ainda pior... vem tipo uns 50 resultados... repete umas 10 vezes cada valor...

algo de muito estranho hein che? não acha?

[]'s Notax

Editado por Notax
Link para o comentário
Compartilhar em outros sites

  • 0

opa, já vi um problema aqui:

depois tenho na mesma tabela e pro mesmo fulanodetal

horai: 18:30

horaf: 08:29

valor:70,00

não entendi direito. isso significa q comecou as 18hs mas só acabou as 8h do dia seguinte??

se for, o q acontece é o access não vai entender isso. ele vai achar q as duas datas são do mesmo dia. ai como a ordem do between não importa, ele vai pegar tb os das 10 e juntar aqui.

o q você teria q fazer seria gravar data junto com a hora, tanto no horai e no horaf como no date_close

e me fala outra coisa. se hj eu abro um problema com horai 10:00 e horaf 16:00 mas fecho as 14:00 no date_close.

e ai outro dia eu abro um otro problema com horai 12:00 e horaf 18:00 mas fecho tb as 15:00 no date_close.

como você faz pra saber qual dos problemas foi resolvido as 14 e qual foi resolvido as 15?? existe alguma outra relacao?? associar so o codigo do cliente na tabela não vai dar em nd, já q ele pode ter mtos registros. não teria q ter um codigo adicional pra fazer a relacao??

Link para o comentário
Compartilhar em outros sites

  • 0

Agora o mistério começou a ser solucionado... cara sabia que tinha alguma coisa além da programação em si... que p**** de access mesmo!

Eu não sabia que o between não fazia diferenciação do que vinha antes ou depois!

mas voltando ao caso:

não entendi direito. isso significa q comecou as 18hs mas só acabou as 8h do dia seguinte??
isso mesmo... começa exemplo as 18:00 de hoje e acaba somente as 08:00 do dia seguinte!

e me fala outra coisa. se hj eu abro um problema com horai 10:00 e horaf 16:00 mas fecho as 14:00 no date_close.

e ai outro dia eu abro um otro problema com horai 12:00 e horaf 18:00 mas fecho tb as 15:00 no date_close

então... você não abre o problema com horai ou horaf... horai e horaf são pré-definidas... e são tipo IMUTÁVIES... servem apenas como paramentro... a tabela regrashora fica "paradinha" lá no canto dela... o user não a alimenta ou modifica... ou inserir um problema o atendente resolvera esse problema e neste momento lá em problems teremos a date_close que deverá estar dentro de um dos regramentos em regrashora para termos um preço!

o que vai importar aqui pra consulta mesmo é a hora em que o problema foi fechado... a ideia é... se a hora em que ele foi fechado estiver entre a horai ou horaf o valor será tal, já se tiver entre a outra faixa de horai ou horaf daí o valor será tal...

como você faz pra saber qual dos problemas foi resolvido as 14 e qual foi resolvido as 15?? existe alguma outra relacao?? associar so o codigo do cliente na tabela não vai dar em nd, já q ele pode ter mtos registros. não teria q ter um codigo adicional pra fazer a relacao??
pra saber se o problema foi resolvido as 14 ou as 15 eu tenho o date_close... somente esta relação... da mesma forma eu tenho o date_start... que é a hora em que o problema foi aberto... mas que pra cobrança não vem ao caso!

na tabela regrashora pra cada nomedecliente terão no máximo 4 registros... que a cobrança pode variar no máximo de 6 em 6 horas... mas existiria tb o ID para compararmos... mas penso que não seria necessário... e seria meio conturbado visto que o id de uma tabela não e necessáriamente igual ao ide de outra tabela... mas posso facilmente criar novos campos de comparação... mas será realmente necessário?

o q você teria q fazer seria gravar data junto com a hora, tanto no horai e no horaf como no date_close

Aí é que ta um problema gravíssiomo... porque pouco importa a data... tipo a tabela regrashora serve apenas como parametro de faixas horárias... independente do dia ou da data... será que existe alguma outra forma de diferenciar os horários tipo das 18:30 de um dia qualquer até as 08:29 do dia seguinte ao dia qualquer?

valeu mesmo Kuroi!

[]'s Notax

Editado por Notax
Link para o comentário
Compartilhar em outros sites

  • 0
pra saber se o problema foi resolvido as 14 ou as 15 eu tenho o date_close... somente esta relação... da mesma forma eu tenho o date_start... que é a hora em que o problema foi aberto... mas que pra cobrança não vem ao caso!

na tabela regrashora pra cada nomedecliente terão no máximo 4 registros... que a cobrança pode variar no máximo de 6 em 6 horas... mas existiria tb o ID para compararmos... mas penso que não seria necessário... e seria meio conturbado visto que o id de uma tabela não e necessáriamente igual ao ide de outra tabela... mas posso facilmente criar novos campos de comparação... mas será realmente necessário?

a ai eu não conheco o seu sistema ai, mas se acontecer um caso como o q eu falei, da date_close se encaxar em mais de um registro pro mesmo cliente na tabela regrashora, você não vai saber qual é qual sem um outro parametro pra comparar.

Aí é que ta um problema gravíssiomo... porque pouco importa a data... tipo a tabela regrashora serve apenas como parametro de faixas horárias... independente do dia ou da data... será que existe alguma outra forma de diferenciar os horários tipo das 18:30 de um dia qualquer até as 08:29 do dia seguinte ao dia qualquer?

então, tb bem q a data pouco importe, mas ela resolveria esse problema. você pode grava-la e despreza-la na hora de mostrar, tipo formate pra mostrar so a hora.

e tb não necessariamente tem q ser a data de verdade. no access, se não me engano, um registro sem data, subentende-se q seja o dia 30/12/1899. ai quando a hora for do dia seguinte, você grava dia 31/12/1899. tipo se isso atrapalhar em alguma coisa, você não precisa gravar necessariamente no campo horaf, mas pode criar um campo auxiliar, e, dependendo do valor dele, você da um DateAdd() somando mais 1 dia na hora de fazer a consulta.

Link para o comentário
Compartilhar em outros sites

  • 0

Uhm... entendi Kuroi... e achei legal... tipo faço ficar sem formato de hora abreviada e sempre incluo como sendo horai qualquer hora do dia 30/12/1899 e horaf qualquer hora do dia 31/12/1899... sempre as mesmas datas pra horai e horaf e as datas no mesmo campo... tipo hora/data ou ainda nos campos horai e horaf manter formato hora abreviada e criar dois campos assitentes datai e dataf...

no caso os campos datai sempre terão o mesmo valor = 30/12/1899 e hos campos dataf sempre os mesmos valores = 31/12/1899

exemplo 1:

regra 1

horai = 30/12/1899 08:30

horaf = 31/12/1899 18:29

regra 2

horai = 30/12/1899 18:30

horaf = 31/12/1899 08:29

ou... exemplo 2 (aqui criando campos novos no bd...a acho aé mais organizado):

regra 1

horai = 08:30

datai = 30/12/1899

horaf = 18:29

dataf = 31/12/1899

regra 2

horai = 18:30

datai = 30/12/1899

horaf = 08:29

dataf = 31/12/1899

bom... mas digamos nesse caso que a hora close_date seja: 10:55 e as regras exatamente conforme acima... independente exemplo 1 ou o 2... você acha que resolveria esse problema?

porque não consegui aqui imaginar como seria esse select...

Seria assim?!?

ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente&"' and #"&hnf&"# BETWEEN horai, datai and horaf, dataf "
Com esse select aí apaerceram ainda mais registros duplicados... mas agora acho que é essa logica aí desse select que tá errada... será que não? valeu toda força que estás me dando aí! EDITANDO: deixei os campos HORAI e HORAF no formato data geral... coloquei ainda que todos datai são horario tal data 01/08/2008 e todos dataf horario tal data 02/08/2008 o select deixei assim:
<%ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente&"' and #"&hnf&"# BETWEEN horai and horaf "

E agora passou a não apresentar nenhum resultado em tela! será que é por que o hnf está no formato hora abreviada?

o debug deste select ficou assim:

select valor from regrashora where cliente = 'teste' and #12:58# BETWEEN horai and horaf

[]'s Notax

Editado por Notax
Link para o comentário
Compartilhar em outros sites

  • 0

o que eu preciso é que o select "pegue" na tabela 'regrashora' onde no campo 'cliente' seja "fulano de tal" e a hora 'hnf' esteja entre as horas 'horai' e 'horaf'... e é isso que não funciona de jeito nenhum...
pelo que entendi hnf não está no banco, e data inicial e final também, não só pra não esquecer dépois pensar em usar um of aqui.... mais faltou dados aqui posta a estrura do bd...
if hnf>horai and hnf <horaf then
end if
e me confundi tudo agora hsuidsahuidshaui
regra 1
horai = 08:30
datai = 30/12/1899
horaf = 18:29
dataf = 31/12/1899
regra 2
horai = 18:30
datai = 30/12/1899
horaf = 08:29
dataf = 31/12/1899
hnfh="06:00" 'so exemplo
hnfd=cdate("31/12/1899") ' iden
ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente&"' and horai<=#"&hnfh&"# and datai<=#"&hnfd&"# and horaf>=#"&hnfh&"# and dataf>=#"&hnfd&"# "

ve se aproveita alguma coisa ai

Link para o comentário
Compartilhar em outros sites

  • 0

Bareta... valeu pela força tb! tentei aqui o q você disse...

só tanto horai, horaf, como close_date são campos do bd... mas tb setei todas elas no asp atraves dos respectivos recordsets....

o select ficou assim:

ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente&"' and #"&horai&"# >= #"&hnf&"# and #"&horaf&"# <=#"&hnf&"# "

o debug dele ficou assim:

select valor from regrashora where cliente = 'teste' and #18:30# <= #12:58# and #08:29# >=#12:58#

mas não imprimiu nenhum resultado em tela!

tb andei pensando aqui em uma solução gambiarristica...

antes de incluir no bd horai e horaf transforma-las em numeros... pensei na seguinte logica:

ex: 08:30 pego 8*60+30 = 510

então tipo entre 08:30 e 18:29 seria o mesmo que entre 510 e 1109

dai quando tivesse o oposto poderia criar uma condiciona if horaf<horai then horaf*100

e acabava com esse problema...

o que vocês acham dessa gambiarra?

[]'s Notax

Editado por Notax
Link para o comentário
Compartilhar em outros sites

  • 0

veja o seguinte

select valor from regrashora where cliente = 'teste' and #18:30# <= #12:58# and #08:29# >=#12:58#

se não aparece nada é porque ta certo... 18:30 não é mnor nem igual 12:58

e 08:29 não é maior ou igual a 12:58... (tem q ter o dia também^^)...

não entendo qual seu critério de comparação... 18:30 estaria no banco né...

então lá tem q ser o nome do campo pro sql poder comparar e pegar todos registros do intervalo...

algo semelhante seria a mesma coisa que buscar um id verificando no sql da seguinte forma

sql="select * from tabela where "&id&"="&id

sql="select * from tabela where id="&id

Link para o comentário
Compartilhar em outros sites

  • 0

O critério de COMPARAÇÃO são os dados que estão no bd na tabela regrashora nos campos horai e horaf

ambos formato hora abreviada

e o critério A SER COMPARADO é o campo close_date que está na tabela problems...

bueno... os campos horai, horaf e close_date foram setados no asp da seguinte forma:

horai = FormatDateTime(objRS1("horai"), 4) 
horaf = FormatDateTime(objRS1("horaf"), 4) 
hnf = FormatDateTime(objRS3("close_date"), 4)
a fragilidade desse select que você sugeriu... apesar de ótima idéia... não tenho como prever se horai vai ser sempre menor ou maior do que a close_date... me caiu a ficha só agora... quando eu comecei a pensar na minha propria gambiarra que tb não daria certo pelo mesmo motivo! colocando na pratica... digamos que eu fizesse o select da seguinte maneira
ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente&"' and #"&hnf&"# >= #"&horai&"# and #"&hnf&"# <= #"&horaf&"# "

significa que hnf tem que ser maior ou iguai ao campo horai e menor ou igual que o campo horaf...

vamos preencher os campos horai e horaf apenas com duas regras

regra 1) das 08:30 (a.m.) até 18:29 (p.m.)

e regra 2) das 18:30 (p.m) até 08:29 (a.m.)

vamos pensar tb apenas duas horas possiveis pra hnf

variavel 1) 10:15 (a.m.)

variavel 2) 05:45 (a.m.)

agora vamos colocar essas variaveis dentro do select... a primeira condição fecha... mas a segunda não!

10:15 >= 08:30 e 10:15 <= 18:29 resultado beleza! pega o valor da regra 1

10:15 >= 18:30 e 10:15 <= 08:29 legal... não pegou o valor tb da regra 2

agora:

05:45>=08:30 e 05:45 <= 18:29 não rola porque 05:45 é menor do que 08:30

05:45 >= 18:30 e 05:45<= 08:30 não rola porque 05:45 é menor do que 08:29

Acho que o kuroi tem razão hein Bareta... apesar de que ainda não sei como vou conseguir colocar em pratica a ideia dele!

A não ser que eu fizesse um if pra quando a hora for menor do que 08:29 invertendo os sinais do select... derepente em uma sub ou coisa assim...

Ta foda pensar nisso cara... foda mesmo!

Ainda falta alguma coisa pessoal... será que rola mais alguma força aqui?

[]'s Notax

Editado por Notax
Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal, beleza?

Cara... trabalhei hj pacas aqui nesse script... já tentei vários troços... mas sei lá... ta com uma uruca que não funciona de jeito nenhum...

Acertei aqui o select do jeito aí que o bareta mencionou... troquei um pouquinho a lógica, vejam:

'abaixo faço uma série de selects que buscam vários dados de várias tabelas...
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)



' aqui eu pego as horas e transformo elas em números... isso mesmo... cansei de trabalhar com horas:

<%'horai = objRS1("horai")
'horai = FormatDateTime(objRS1("horai"), 4)                              
'horaf = FormatDateTime(objRS1("horaf"), 4)
hi = datepart ("h", objRS3("start_date"))
ni = datepart ("n", objRS3("start_date"))
hf = datepart ("h", objRS3("close_date"))
nf = datepart ("n", objRS3("close_date"))
'horaf = (hf(i) & mf(i)) * 10

hni = (hi&ni) * 10
hnf = (hf&nf) * 10
'response.write "start_date = " & objRS3("start_date") & "<br>"
'response.write "hni = " & hni & "<br>"
'response.write "close_date = " & objRS3("close_date") & "<br>"
'response.write "hnf = " & hnf & "<br>"
'response.end

hr = datepart ("h", objRS1("horai"))
nr = datepart ("n", objRS1("horai"))                              
hnr = (hr&nr) * 10
'response.write objRS1("horai")

%>

'e aqui está o select em questão:

<%ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente&"' and "&hnr&" >= "&hni&" and "&hnr&" <= "&hnf&" "
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>"
o debug desse select é assim: ComandoSQL5 =select valor from regrashora where cliente = 'teste' and 8290 >= 960 and 8290 <= 12580 O que ta acontecendo agora é o seguinte... se na tabela regrashora tem apenas 1 regra por usuario, ou seja, apenas um numero inicial e um numero final vai legal... se tem duas ou mais já não imprime resultado nenhum em tela, mesmo quando eu tenho certeza, atraves dos debugs que teria condições pra satisfazer o select... to postando abaixo ainda o codigo completo pra caso eu esteja cometendo algum errinho que eu não esteja vendo: script completo
<%
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, hr, nr, hnr
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) 
'response.write "hni= " &hni& "<br>"
'response.write "hnf= " &hnf& "<br>"
'response.end

%>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>
</head>
<body> 

<div id="global" STYLE="border: solid; border-width: 1px;border-color: #011C37;">
<div id="header"><!--#include file="header.asp"--></div>
<div id="list1"><!--#include file="menu.asp"--></div>
  <div id="main">
<div align="left" style="width: 650; height: 119"> 
  <p align="left"><font face="Verdana, Arial, Helvetica, sans-serif"><em><strong>Cadastro 
    Clientes (consulta)</strong></em></font><font size="1"><b><font face="Verdana, Arial, Helvetica, sans-serif" color="#000000"> 
    </font></b></font></p>
  <div align="left">
  <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"> <font size="1" color="FFFFFF"><b><font face="Verdana">NOME 
                              / RAZ&Atilde;O SOCIAL</font></b></font></td>
                            <td width="211" align="center"> <font size="1" color="FFFFFF"><b></b> 
                              </font> <font size="1" color="FFFFFF"><b><font face="Verdana"> 
                              RG / IE</font></b> </font></td>
                            <td width="222" align="center"> <font size="1" color="FFFFFF"><b><font face="Verdana">CPF 
                              / CNPJ</font></b></font></td>
                            <td width="158" align="center"><font size="1" color="FFFFFF"><b><font face="Verdana">DATA 
                              NASCIMENTO / ABERTURA EMPRESA</font></b> </font></td>
                          </tr>
                          <tr bgcolor="#FFFFFF"> 
                            <td width="266" align="center" > 
                              <div align="left"><font size="-7" face="Arial, Helvetica, sans-serif"><b><font color="#000000"> 
                                <%Response.write objRS("fname")%>
                                </font> </b></font></div></td>
                            <td align="center" > 
                              <div align="left"> <font size="-7" face="Arial, Helvetica, sans-serif"><b> 
                                <%Response.write objRS("rg")%>
                                </b></font></div></td>
                            <td width="222" align="center" > 
                              <div align="left"><font size="-7" face="Arial, Helvetica, sans-serif"><b> 
                                <%Response.write objRS("cpf")%></a>
                                </b></font></div></td>
                            <td width="158" align="center" > 
                              <div align="left"><font size="-7" face="Arial, Helvetica, sans-serif"><b><font color="#000000"> 
                                <%Response.write objRS("dtcreated")%>
                                </font></b></font></div></td>
                          </tr>
                          <tr bgcolor="#0099FF"> 
                            <td align="center"> <font size="1" color="FFFFFF"><b><font face="Verdana">ENDERE&Ccedil;O</font></b></font></td>
                            <td align="center"> <font size="1" color="FFFFFF"><b></b> 
                              </font> <font size="1" color="FFFFFF"><b><font face="Verdana">BAIRRO</font></b> 
                              </font></td>
                            <td align="center"> <font size="1" color="FFFFFF"><b><font face="Verdana">CIDADE</font></b></font></td>
                            <td align="center"><font size="1" color="FFFFFF"><b><font face="Verdana">CEP</font></b> 
                              </font></td>
                          </tr>
                          <tr bgcolor="#FFFFFF"> 
                            <td align="center" ><div align="left"><font size="-7" face="Arial, Helvetica, sans-serif"><b><font color="#000000"> 
                                <%Response.write objRS("endereco")%>
                                </font></b></font></div></td>
                            <td align="center"><div align="left"><font size="-7" face="Arial, Helvetica, sans-serif"><b><font color="#000000">
                              <%Response.write objRS("bairro")%>
                            </font></b></font></div></td>
                            <td align="center" ><div align="left"><font size="-7" face="Arial, Helvetica, sans-serif"><b><font color="#000000"> 
                                <%Response.write objRS("cidade")%>
                                </font></b></font></div></td>
                            <td align="center"><div align="left"><font size="-7" face="Arial, Helvetica, sans-serif"><b><font color="#000000"> 
                                <%Response.write objRS("cep")%>
                                </font></b></font></div></td>
                          </tr>
                          <tr bgcolor="#0099FF"> 
                            <td align="center"> <font size="1" color="FFFFFF"><b><font face="Verdana">TELEFONE</font></b></font></td>
                            <td align="center"> <font size="1" color="FFFFFF"><b></b> 
                              </font> <font size="1" color="FFFFFF"><b><font face="Verdana">CELULAR</font></b> 
                              </font></td>
                            <td align="center" bgcolor="#0099FF"><font size="1" color="FFFFFF"><b><font face="Verdana">VALOR CONTRATO</font></b></font></td>
                            <td align="center" bgcolor="#0099FF"><font size="1" color="FFFFFF"><b><font face="Verdana">QTDE. HORAS CONTRATADAS</font></b></font></td>
                          </tr>
                          <tr bgcolor="#FFFFFF">
                            <td align="center" ><div align="left"><font size="-7" face="Arial, Helvetica, sans-serif"><b><b><font color="#000000">
                              <%Response.write objRS("phone")%>
                            </font></b></b></font></div></td>
                            <td align="center" ><div align="left"><font size="-7" face="Arial, Helvetica, sans-serif"><b><font color="#000000">
                              <%Response.write objRS("phone_mobile")%>
                            </font></b></font></div></td>
                            <td align="center" ><div align="left"><font size="-7" face="Arial, Helvetica, sans-serif"><b><font color="#000000">
                              <%Response.write formatnumber (objRS.fields("valor"),2)%>
                            </font></b></font></div></td>
                            <td align="center" ><div align="left"><font size="-7" face="Arial, Helvetica, sans-serif"><b><font color="#000000">
                              <%Response.write objRS("qtdhoras")%>
                            </font></b></font></div></td>
                          </tr>
                          <tr bgcolor="#0099FF">
                            <td colspan="3" align="center" ><font size="1" color="FFFFFF"><b><font face="Verdana">E-MAIL</font></b></font></td>
                            <td align="center" ><strong><font color="FFFFFF" size="1" face="Verdana">LOGIN</font></strong></td>
                          </tr>
                          <tr bgcolor="#FFFFFF"> 
                            <td colspan="3" align="center" ><div align="left"><font size="-7" face="Arial, Helvetica, sans-serif"><b><font color="#000000">
                              <%Response.write objRS("email1")%>
                            </font></b></font></div>                              <div align="left"></div>                            <div align="left"></div></td>
                            <td align="center" ><div align="left"><font size="-7" face="Arial, Helvetica, sans-serif"><b><font color="#000000">
                              <%Response.write objRS("uid")%>
                            </font></b></font></div></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"><div align="center"><strong><font color="FFFFFF" size="1" face="Verdana">Regras Horas &quot;Pacote Contratado&quot;</font></strong></div></td>
                                </tr>
                              <tr bgcolor="#0099FF">
                              
                                <td width="118"><div align="center"><strong><font color="FFFFFF" size="1" face="Verdana">Entre a Hora Inicial:</font></strong></div></td>
                                <td width="119"><div align="center"><font size="1" color="FFFFFF"><b><font face="Verdana">e a Hora Final:</font></b></font></div></td>
                                <td colspan="2"><div align="center"><font size="1" color="FFFFFF"><b><font face="Verdana">Levando-se em considera&ccedil;&atilde;o o atendimento por:</font></b></font></div></td>
                                <td colspan="2"><div align="center"><font size="1" color="FFFFFF"><b><font face="Verdana">O cliente pagar&aacute;:</font></b></font></div></td>
                              </tr>
                              <%While Not objRS1.EOF %>
                              <tr>
                                <td><font size="-7" face="Arial, Helvetica, sans-serif"><b><font color="#000000">
                                  <%Response.write FormatDateTime(objRS1("horai"), 4)%>
                                </font></b></font></td>
                                <td><font size="-7" face="Arial, Helvetica, sans-serif"><b><font color="#000000">
                                  <%Response.write FormatDateTime(objRS1("horaf"), 4)%>
                                </font></b></font></td>
                                <td colspan="2"><font size="-7" face="Arial, Helvetica, sans-serif"><b><font color="#000000">
                                  <%Response.write objRS1("tipo")%>
                                </font></b></font></td>
                                <td colspan="2"><font size="-7" face="Arial, Helvetica, sans-serif"><b><font size="-7" face="Arial, Helvetica, sans-serif"><b><font color="#000000">
                                  <%Response.write formatnumber (objRS1.fields("valor"),2)%>
                                </font></b></font></b></font></td>
                              </tr>
<%'horai = objRS1("horai")
'horai = FormatDateTime(objRS1("horai"), 4)                              
'horaf = FormatDateTime(objRS1("horaf"), 4)
hi = datepart ("h", objRS3("start_date"))
ni = datepart ("n", objRS3("start_date"))
hf = datepart ("h", objRS3("close_date"))
nf = datepart ("n", objRS3("close_date"))
'horaf = (hf(i) & mf(i)) * 10

hni = (hi&ni) * 10
hnf = (hf&nf) * 10
'response.write "start_date = " & objRS3("start_date") & "<br>"
'response.write "hni = " & hni & "<br>"
'response.write "close_date = " & objRS3("close_date") & "<br>"
'response.write "hnf = " & hnf & "<br>"
'response.end

hr = datepart ("h", objRS1("horai"))
nr = datepart ("n", objRS1("horai"))                              
hnr = (hr&nr) * 10
'response.write objRS1("horai")

%>
<%
'response.write "horai = " & horai & "<br>"
'response.write "horaf = " & horaf & "<br>"
'response.end%>
<%objRS1.MoveNext
Wend%> 
                              
</table>
<table border="1">

                              <tr bgcolor="#0033FF">
                                <td colspan="7"><div align="center"><strong><font color="FFFFFF" size="1" face="Verdana">Horas Utilizadas</font></strong></div></td>
                              </tr>
                              <tr bgcolor="#0099FF">
                                <td width="108"><div align="center"><strong><font color="FFFFFF" size="1" face="Verdana">Hora Abertura Chamadol:</font></strong></div></td>
                                <td width="120"><div align="center"><font size="1" color="FFFFFF"><b><font face="Verdana">Hora Fechamento Chamado:</font></b></font></div></td>
                                <td width="78"><div align="center"><font size="1" color="FFFFFF"><b><font face="Verdana">T&iacute;tulo do Chamado</font></b></font></div></td>
                                <td width="97"><div align="center"><font size="1" color="FFFFFF"><b><font face="Verdana">Tipo de Atendimento</font></b></font></div></td>
                                <td><div align="center"><font size="1" color="FFFFFF"><b><font face="Verdana">Tempo Gasto (min.)</font></b></font></div></td>
 <td width="66"><div align="center"><font size="1" color="FFFFFF"><b><font face="Verdana">Valor Hora</font></b></font></div></td>

                                <td><div align="center"><font size="1" color="FFFFFF"><b><font face="Verdana">Saldo</font></b></font></div></td>
                              </tr>
                              <%While Not objRS3.EOF %>
<%ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente&"' and "&hnr&" >= "&hni&" and "&hnr&" <= "&hnf&" "
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>"
'response.write "hnf =" &hnf& "<br>"
'response.write "horai =" &horai& "<br>"
'response.write "horaf =" &horaf& "<br>"
'response.end
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">&nbsp;</td>
                                </tr>
                            </table>
                            

                         
                            <%
  'Movendo para o proximo registro
  objRS.MoveNext
  Wend
    %>
                            </p>
                            </table>
                    </td>
                  </tr>
                </table>
              </form>
            </td>
          </tr>
        </table>
      </td>
    </tr>
  </table>
  </div>
  </div>
  </div>
  <%  
  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

  %>
</div>
</body>
</html>

precisando uma força aqui... será que rola?

[]'s Notax

Link para o comentário
Compartilhar em outros sites

  • 0

mesmo assim acho que esse select ai num rola tem q ser algo assim...

ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente&"' and hnf between "&hni&" and "&hnf
ou
ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente&"' and "&hnr&" between "&hni&" and "&hnf

Link para o comentário
Compartilhar em outros sites

  • 0

eu tento com o between... até já tinha tentado tb... mas so me da resultado quando é apenas uma regra no bd... se tem mais de uma não me da resultado nenhum...

veja... o debug desse segundo select que você postou sai assim:

ComandoSQL5 =select valor from regrashora where cliente = 'notax' and 16250 between 18300 and 23590

não mostra nenhum resultado em tela... nada!

sei la cara... não to sabendo mesmo...

me da mais uma força?

[]'s Notax

Editado por Notax
Link para o comentário
Compartilhar em outros sites

  • 0

select valor da tabela regrashora quando cliente='notax' e 16250 esta entre 18300 e 23590
com esse debug você pode fica alterando ate 2050 esse código... que não vai aparece nada na tela também....
ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente&"' and "&hnr&" between "&hni&" and "&hnf 
set rs=conn.execute(sql)
if rs.eof then
response.write "nada encontrado"
else

while not rs.eof 
response.write rs("cliente")&"<br>"
rs.movenext
wend
end if

rs.close
set rs=nothing

Link para o comentário
Compartilhar em outros sites

  • 0

valeu bareta... tomare que possa rolar mais uma forcinha ainda... Não entendi... testei aqui seu select... mas ele não estava igual o meu?

meu codigo desse trecho está assim:

While Not objRS3.EOF
ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente&"' and "&hnf&" between "&hnir&" and "&hnfr  
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%>

quando testei o seu select continuou acontecendo a mesma coisa, com a diferença que a mensagem nada encontrado aparecia sempre na tela... só que não encontra sei lá eu o porque... que tem coisa lá pra ser encontrada certeza que tem!

Será que rola mais uma força?

[]'s Notax

Editado por Notax
Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal... fiz o seguinte... como agora to achando que o meu problema é em algum loop simplifiquei o máximo possível o meu código aqui... tomara que alguém possa dar uma forcinha aí...

o select atual está assim:

ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente1&"' and "&hnf&" between "&hnir&" and "&hnfr
recapitulando, como vocês notarão no codigo completo que segue abaixo que:
nomecliente1 = objRS("fname")
While Not objRS1.EOF
hir = datepart ("h", objRS1("horai"))
nir = datepart ("n", objRS1("horai"))                              
hnir = (hir&nir) * 10
hfr = datepart ("h", objRS1("horaf"))
nfr = datepart ("n", objRS1("horaf"))                              
hnfr = (hfr&nfr) * 10
While Not objRS3.EOF
hf = datepart ("h", objRS3("close_date"))
nf = datepart ("n", objRS3("close_date"))
hnf = (hf&nf) * 10
o debug do select ficou assim: comandosql5 = select valor from regrashora where cliente = 'teste' and 12580 between 8290 and 18300 neste caso acima, no bd tinha apenas um registro em regrashora... ele me retornou o resultado necessário mas logo abaixo apresentou esse erro: ADODB.Field error '80020009' Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record. /logar/clientes_resultado_extrato.asp, line 0 agora observem esse debug aqui que ocorreu quando na tabela regrashoras tinham 3 registros... ou seja, 3horasi e 3horasf comandosql5 = select valor from regrashora where cliente = 'notax' and 16250 between 8300 and 11590 comandosql5 = select valor from regrashora where cliente = 'notax' and 14580 between 8300 and 11590 comandosql5 = select valor from regrashora where cliente = 'notax' and 1040 between 8300 and 11590 comandosql5 = select valor from regrashora where cliente = 'notax' and 1270 between 8300 and 11590 comandosql5 = select valor from regrashora where cliente = 'notax' and 1230 between 8300 and 11590 vejam que a variável 'hnf' varia de acordo com os registros cadastrados no banco... mas horai e horaf são sempre as mesmas... e deveriam variar tb... quando na tabela regrashoras tem mais de um registro ele simplesmente me retorna o seguinte erro: ADODB.Recordset error '800a0bcd' Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record. /logar/clientes_resultado_extrato.asp, line 114 sendo que a linha 114 é essa aqui: objRS5.MoveNext segue o codigo completo... porém em sua versão simplificada:
<%
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, hr, nr, hnr, qtdhoras, qtdminutos, saldo, tempogasto, nomecliente1, hir, nir, hnir, hfr, nfr, hnfr
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)

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)

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
</head>
<body> 
<div id="global" STYLE="border: solid; border-width: 1px;border-color: #011C37;">
<div id="header"><!--#include file="header.asp"--></div>
<div id="list1"><!--#include file="menu.asp"--></div>
<div id="main">
<table width="650" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td>horai</td>
    <td>horaf</td>
    <td>closedate</td>
    <td>valor da regra</td>
  </tr>
  <%
While Not objRS.EOF
nomecliente1 = objRS("fname")

While Not objRS1.EOF
hir = datepart ("h", objRS1("horai"))
nir = datepart ("n", objRS1("horai"))                              
hnir = (hir&nir) * 10
hfr = datepart ("h", objRS1("horaf"))
nfr = datepart ("n", objRS1("horaf"))                              
hnfr = (hfr&nfr) * 10

While Not objRS3.EOF
hf = datepart ("h", objRS3("close_date"))
nf = datepart ("n", objRS3("close_date"))
hnf = (hf&nf) * 10

ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente1&"' and "&hnf&" between "&hnir&" and "&hnfr  
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>"
'response.end
Set ObjRs5 = objConn5.Execute(ComandoSQL5)
While Not objRS5.EOF

%>
  <tr>
    <td><%Response.write objRS1("horai")%></td>
    <td><%Response.write objRS1("horaf")%></td>
    <td><%Response.write FormatDateTime(objRS3("close_date"),4)%></td>
    <td><%Response.write objRS5("valor")%></td>
  </tr>
<%
objRS1.MoveNext
Wend
objRS3.MoveNext
Wend    
objRS5.MoveNext
Wend
objRS.MoveNext
Wend

%>
</table>
  </div>
  </div>
  <%  
  objRs1.close
  objConn1.close
  Set objRs1 = Nothing
  Set objConn1 = Nothing
    objRs3.close
  objConn3.close
  Set objRs3 = Nothing
  Set objConn3 = Nothing
    objRs5.close
  objConn5.close
  Set objRs5 = Nothing
  Set objConn5 = Nothing

  %>
</body>
</html>

e agora? será que rola mais um help ae?

[]'s Notax

Editado por Notax
Link para o comentário
Compartilhar em outros sites

  • 0

pessoal... olha só aqui... acho que cheguei a algum lugar:

o codigo está assim:

<%
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, hr, nr, hnr, qtdhoras, qtdminutos, saldo, tempogasto, nomecliente1, hir, nir, hnir, hfr, nfr, hnfr
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

%>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>
</head>
<body> 

<div id="global" STYLE="border: solid; border-width: 1px;border-color: #011C37;">
<div id="header"><!--#include file="header.asp"--></div>
<div id="list1"><!--#include file="menu.asp"--></div>
  <div id="main">

<table width="650" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td>horai</td>
    <td>horaf</td>
    <td>closedate</td>
    <td>valor da regra</td>
  </tr>
  <%
While Not objRS.EOF
nomecliente = objRS("fname")
logincliente = objRS("uid")

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)

While Not objRS3.EOF

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)


hf = datepart ("h", objRS3("close_date"))
nf = datepart ("n", objRS3("close_date"))
hnf = (hf&nf) * 10

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)

While Not objRS1.EOF
hir = datepart ("h", objRS1("horai"))
nir = datepart ("n", objRS1("horai"))                              
hnir = (hir&nir) * 10
hfr = datepart ("h", objRS1("horaf"))
nfr = datepart ("n", objRS1("horaf"))                              
hnfr = (hfr&nfr) * 10


ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente1&"' and "&hnf&" between "&hnir&" and "&hnfr  
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>"
'response.end
Set ObjRs5 = objConn5.Execute(ComandoSQL5)
While Not objRS5.EOF

%>
  <tr>
    <td><%Response.write objRS1("horai")%></td>
    <td><%Response.write objRS1("horaf")%></td>
    <td><%Response.write FormatDateTime(objRS3("close_date"),4)%></td>
    <td><%Response.write objRS5("valor")%></td>
  </tr>
<%
objRS5.MoveNext
Wend

objRS1.MoveNext
Wend

objRS3.MoveNext
Wend

objRS.MoveNext
Wend


%>
</table>
  </div>
  </div>
  <%  
  objRs1.close
  objConn1.close
  Set objRs1 = Nothing
  Set objConn1 = Nothing
    objRs3.close
  objConn3.close
  Set objRs3 = Nothing
  Set objConn3 = Nothing
    objRs5.close
  objConn5.close
  Set objRs5 = Nothing
  Set objConn5 = Nothing

  %>
</body>
</html>

o debug do select ficou assim:

comandosql5 = select valor from regrashora where cliente = 'teste' and 12580 between 8290 and 18300

comandosql5 = select valor from regrashora where cliente = 'teste' and 1080 between 8290 and 18300

comandosql5 = select valor from regrashora where cliente = 'teste' and 1040 between 8290 and 18300

comandosql5 = select valor from regrashora where cliente = 'teste' and 1160 between 8290 and 18300

quando tem apenas um resultado no BD imprime direitinho em tela... PORÉM... quando tem mais de um resultado no bd, ele coloca um valor pra cada resultado do select, mesmo quando o between é insatisfatório... E AGORA???

[]'s Notax

Link para o comentário
Compartilhar em outros sites

  • 0

joguei seu codigo no dreanweaver aqui... e dei uma olhada... cara isso ta horrivel..

e se não aparecer nada recomendo refazer e reorganizar todo esse código. e verificar os dados no banco... porque no sql num tem mais o q fazer

<%
Set objConn =  Server.CreateObject("ADODB.Connection")
objConn.Open "DBQ=" & Server.MapPath("bd.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"

n = 1
id = Request.QueryString("checkbox")

        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)

if not objrs.eof then
%>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>
</head>
<body> 

<div id="global" STYLE="border: solid; border-width: 1px;border-color: #011C37;">
<div id="header"><!--#include file="header.asp"--></div>
<div id="list1"><!--#include file="menu.asp"--></div>
  <div id="main">

<table width="650" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td>horai</td>
    <td>horaf</td>
    <td>closedate</td>
    <td>valor da regra</td>
  </tr>
  <%
While Not objRS.EOF
nomecliente = objRS("fname")
logincliente = objRS("uid")

ComandoSQL3 = "select * from problems where uid = '"&logincliente&"'"
Set ObjRs3 = objConn.Execute(ComandoSQL3)
if not objrs3.eof then
While Not objRS3.EOF

ComandoSQL1 = "select * from regrashora where cliente = '"&nomecliente&"'"
Set ObjRs1 = objConn.Execute(ComandoSQL1)


hf = datepart ("h", objRS3("close_date"))
nf = datepart ("n", objRS3("close_date"))
hnf = (hf&nf) * 10

tipoatendimento = objRS3("department")


if objrs1.eof then
While Not objRS1.EOF
hir = datepart ("h", objRS1("horai"))
nir = datepart ("n", objRS1("horai"))                              
hnir = (hir&nir) * 10
hfr = datepart ("h", objRS1("horaf"))
nfr = datepart ("n", objRS1("horaf"))                              
hnfr = (hfr&nfr) * 10


ComandoSQL5 = "select valor from regrashora where cliente = '"&nomecliente1&"' and "&hnf&" between "&hnir&" and "&hnfr  
response.write "comandosql5 = " & ComandoSQL5 & "<BR>"
'response.end
Set ObjRs5 = objConn.Execute(ComandoSQL5)
if not objrs5.eof then
While Not objRS5.EOF

%>
  <tr>
    <td><%Response.write objRS1("horai")%></td>
    <td><%Response.write objRS1("horaf")%></td>
    <td><%Response.write FormatDateTime(objRS3("close_date"),4)%></td>
    <td><%Response.write objRS5("valor")%></td>
  </tr>
<%
objRS5.MoveNext
Wend

end if

objRS1.MoveNext
Wend

end if

objRS3.MoveNext
Wend

end if

objRS.MoveNext
Wend
else
response.write "nananananana"
end if
end if

%>
</table>
  </div>
  </div>
  <%  
  objRs1.close

  Set objRs1 = Nothing

    objRs3.close

  Set objRs3 = Nothing

    objRs5.close

  Set objRs5 = Nothing
   objConn.close

  %>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

  • 0

valeu Bareta... ta confuso mesmo... bom primeiro porque essa parte aí que postei é so uma versão de testes... mas segundo e mais importante porque esse monte de whiles estão me deixando maluco... deve estar por ali mesmo esse erro maldito...

mas agradeço a força que tu estás me dando...

testei aqui o codigo da forma que você postou... o que me intrigou não é o fato de não estar aparecendo nada na consulta... mas sim o fato de que o proprio debug daquele famigerado select ComandoSQL5 não estar acontecendo...

Nem executa aquele trecho do codigo...

Na real, além de não entender isso to meio perdido na lógica por traz desses while...

porque tipo... como tu deves ter notado são varias tabelas que são selecionadas atraves de vários selects antes de chegar na do ComandoSQL5...

e eu to me perdendo exatamente nesse momento... porque precisava simplesmente disso:

ComandoSQL5 = "seleione o campo valor da tabela regrashora onde o campo cliente = '"&nomecliente&"' e "&hnf&" esteja entre "&hnir&" e "&hnfr 

o problema é que: nome cliente vem de um outro select, assim como hnf vem de um outro, e hnir e hnfr de outro... então na pratica precisaria percorrer a tabela regrashora até achar um comibinação onde o hnf caiba ou não, cabendo ou não teria que passar para o proximo hnf percorrendo a tabela regrashora... ou seja, da mesma forma que percorre a regrashora tb tem que percorrer a tabela problems...

punk cara! muito punk esse troço!

[]'s Notax

Editado por Notax
Link para o comentário
Compartilhar em outros sites

  • 0

Bareta, tipo... bah... não quero abusar mesmo... mas se tu pudesse fazer uma gentileza pra mim...

tipo... esquece tudo o que eu postei até agora... me mostra na prática como você faria uma questão hipotética, ok? Pode ser? se não puder nem te estressa que vou entender... sei que és muito ocupado... mas se puder... vai a hipotese:

Preciso de um select que selecione o campo valor da tabela regras, levando-se em consideração que:

a tabela regras tem os seguintes campos:

nome

numeroincial

numerofinal

valor

os registros que preciso dessa tabela tem que ser obrigatoriamente advindos dos campos abaixo da tabela problemas:

nome

numeroproblema

ou seja, se na tabela problemas temos algum registro com nome fulanodetal e numerofinal qualquer, devemos procurar na tabela regras algum valor que se adeque a este nome e ao numerofinal desta tabela que deverá obrigatoriamente estar entre o numeroinicial e o numerofinal da tabela regras...

o meu problema aqui não está em construir o select com o between, como você deve ter notado... o meu problema é:

1) numeroincial e numerofinal estão de uma forma no bd e apenas para que a comparação possa ser feita eles são operados matematicamente, lembrando que estes numeros na verdade vem do recordset de uma outra consulta...

2)numeroproblema tb é tratado matematicamente e advem de outro recordset de outra consulta.

3) por último, tenho que fazer o primeiro recordset e o segundo recordset "corrorem" simultanemante com um terceiro recordset...

muito F*********!

Tipo... to a um passo de desistir desse troço... nunca pensei que fosse falar isso... mas é sério... já to começando a acreditar que simplesmente não pode ser feito desta forma!

valeu pela atenção...

[]'s Notax

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...