Fiz uma consulta em que o usuário entra com dois valores para cada item para consulta de peças e um campo para definir o material da peça. Para fazer isto usei o BETWEEN no comando SELECT. Mas eu não sei se é erro ao criar o BD ou na hora de indicar o tipo de dado no select.
Bom, criei um BD no Access com os campos cod, material, de e di (todos campos tipo texto) e cadastrei seis itens para testar o comando com BETWEEN, os registros são:
cod - material - de - di
disco1 - aço - 90 - 20
disco2 - aço - 90 - 25
disco3 - aço - 93 - 22
disco4 - aço - 95 - 30
disco5 - aço - 92 - 35
disco6 - aço - 100 - 21
Ao fazer um pesquisa definindo que o material é aço, o valor de DE é de 90 à 99 e o valor de DI é de 20 á 35, a consulta mostra somente os cinco primeiros registros. Até aí tudo bem. Mas se eu mudar o valor de DE para 90 à 100, a consulta mostra o primeiro, o segundo e o sexto registro!? O que deve estar acontecendo? Eu acho que definindo a consulta para 90 à 100 deveria mostrar os seis registros. Veja o meu código:
<%Option Explicit
Response.Expires=0
Dim objConn, objRS, strQuery
Set objConn=Server.CreateObject("ADODB.Connection")
strQuery="SELECT * FROM produto WHERE material='"&T1&"' AND de BETWEEN '"&T2&"' AND '"&T3&"' AND di BETWEEN '"&T4&"' AND '"&T5&"'"
Set objRS=objConn.Execute(strQuery)
%>
Eu acho que é porque no BD o tipo do campo é texto. Tentei mudar o tipo de campo para número, mas na hora de executar a consulta da erro falando que o tipo de campo tá errado. Como eu faço para resolver isto? Como indicar na consuta (SELECT) que os valores são numéricos e não textos comuns?
Pergunta
ldrwebsite
Olá galera é o seguinte.
Fiz uma consulta em que o usuário entra com dois valores para cada item para consulta de peças e um campo para definir o material da peça. Para fazer isto usei o BETWEEN no comando SELECT. Mas eu não sei se é erro ao criar o BD ou na hora de indicar o tipo de dado no select.
Bom, criei um BD no Access com os campos cod, material, de e di (todos campos tipo texto) e cadastrei seis itens para testar o comando com BETWEEN, os registros são:
cod - material - de - di
disco1 - aço - 90 - 20
disco2 - aço - 90 - 25
disco3 - aço - 93 - 22
disco4 - aço - 95 - 30
disco5 - aço - 92 - 35
disco6 - aço - 100 - 21
Ao fazer um pesquisa definindo que o material é aço, o valor de DE é de 90 à 99 e o valor de DI é de 20 á 35, a consulta mostra somente os cinco primeiros registros. Até aí tudo bem. Mas se eu mudar o valor de DE para 90 à 100, a consulta mostra o primeiro, o segundo e o sexto registro!? O que deve estar acontecendo? Eu acho que definindo a consulta para 90 à 100 deveria mostrar os seis registros. Veja o meu código:
Eu acho que é porque no BD o tipo do campo é texto. Tentei mudar o tipo de campo para número, mas na hora de executar a consulta da erro falando que o tipo de campo tá errado. Como eu faço para resolver isto? Como indicar na consuta (SELECT) que os valores são numéricos e não textos comuns?
Se alguém souber, posta aí!
Valeu!
Link para o comentário
Compartilhar em outros sites
4 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.