ATUALIZAR CAMPOS LOGICA

MARCELO.TREZE 05/02/2014 11:43:35
#434286
Adriano o código tem que estar no evento click, e não change

Private Sub cboIdentificacao_Click()
Call CarregarDataeQTD
End Sub


e na consulta vc faz assim

e na consulta so altere a query assim

 sSQL = [Ô]SELECT dtentrada, dtretirada, qtd FROM RAMALQTD WHERE identificacao = [ô][Ô] & cboIdentificacao.List(cboIdentificacao.ListIndex) & [Ô][ô][Ô]
RSRamalItens.Open sSQL, CNN, adOpenDynamic, adLockOptimistic


veja agora se funciona
FILMAN 05/02/2014 12:32:43
#434287
Caro ADRIANOM você não esta utilizando o evento CLICK() e sim o CHANGE(), portanto não vai funcionar mesmo!

use o evento CLICK do combo para ver se vai dar certo!
ADRIANOM 05/02/2014 14:29:34
#434298
PERFEITO GALERA.. FUNCIONOU...

Porém, notei que o SELECT está apenas listando um único item.
Preciso que seja pesquisado dois itens em uma mesma tabela: [Ô]Se no cboIdentificação = [Ô]Loja 208[Ô] e o CodProduto = [Ô]00001[Ô] ele vai carregar os itens. Assim tentei usar o comando select da seguinte forma:

sSQL = [Ô]SELECT RAMALQTD.Identificacao, RAMALQTD.CodProduto, RAMALQTD.DTEntrada, RAMALQTD.DTRetirada, RAMALQTD.QTD FROM RAMALQTD WHERE RAMALQTD.Identificacao = [ô][Ô] & cboIdentificacao.List(cboIdentificacao.ListIndex) & [Ô][ô] AND RAMALQTD.CodProduto = [ô][Ô] & txtCodigo.Text & [Ô][ô][Ô]


Fiz um debug.print sSql e me retornou dessa forma:

Citação:

SELECT RAMALQTD.Identificacao, RAMALQTD.CodProduto, RAMALQTD.DTEntrada, RAMALQTD.DTRetirada, RAMALQTD.QTD FROM RAMALQTD WHERE RAMALQTD.Identificacao = [ô]LOJA 208[ô] AND RAMALQTD.CodProduto = [ô]00000000000000000003[ô]



Segue o Código para carregar os dados....

Sub CarregarDataeQTD()

sSQL = [Ô]SELECT RAMALQTD.Identificacao, RAMALQTD.CodProduto, RAMALQTD.DTEntrada, RAMALQTD.DTRetirada, RAMALQTD.QTD FROM RAMALQTD WHERE RAMALQTD.Identificacao = [ô][Ô] & cboIdentificacao.List(cboIdentificacao.ListIndex) & [Ô][ô] AND RAMALQTD.CodProduto = [ô][Ô] & txtCodigo.Text & [Ô][ô][Ô]

RSRamalItens.Open sSQL, CNN, adOpenDynamic, adLockOptimistic

With RSRamalItens

If (.BOF = True And .EOF = True) Then

.Close
txtDTEntradaR.Text = [Ô][Ô]
txtDTRetiradaR.Text = [Ô][Ô]
txtQTDR.Text = [Ô][Ô]

Exit Sub

Else

txtDTEntradaR.Text = VBA.Format(RSRamalItens([Ô]dtentrada[Ô]), [Ô]dd/MM/yyyy[Ô])
txtDTRetiradaR.Text = VBA.Format(RSRamalItens([Ô]dtretirada[Ô]), [Ô]dd/MM/yyyy[Ô])
txtQTDR.Text = RSRamalItens([Ô]qtd[Ô])

RSRamalItens.Close
Set RSRamalItens = Nothing

End If

End With

End Sub


Sinceramente, não vi o meu erro...
OMAR2011 05/02/2014 15:48:28
#434303
Fiz um teste aqui e não apresentou erros.
Mas, sua tabela não tem chave primária
e o Código é varchar.
Código=000000000000001.
Vai ter um pouco de dor de cabeça com esta tabela.
MARCELO.TREZE 05/02/2014 16:49:21
#434311
bom o que o colega omar disse tem lógica se o banco é access e vc consulta o campo com apostrofos, isso nos leva a crer que o campo código seja do tipo texto, se o campo código é do tipo texto, e houver um numero zero a mais ou a menos, ele ja não localiza, o que vc pode tentar é usar o like derrepente funciona, veja

sSQL = [Ô]SELECT RAMALQTD.Identificacao, RAMALQTD.CodProduto, RAMALQTD.DTEntrada, RAMALQTD.DTRetirada, RAMALQTD.QTD FROM RAMALQTD WHERE RAMALQTD.Identificacao = [ô][Ô] & cboIdentificacao.List(cboIdentificacao.ListIndex) & [Ô][ô] AND RAMALQTD.CodProduto Like[ô]%[Ô] & txtCodigo.Text & [Ô][ô][Ô]


faz um teste ai pela minha logica se em código você colocar apenas um 3 ele será localizado

FILMAN 05/02/2014 18:40:55
#434319
Bom vamos lá

1º. A query de Consulta

sSQL = [Ô][Ô]
sSQL = sSQL & [Ô]SELECT [Ô]
sSQL = sSQL & [Ô] RAMALQTD.Identificacao, RAMALQTD.CodProduto, RAMALQTD.DTEntrada, RAMALQTD.DTRetirada, RAMALQTD.QTD [Ô]
sSQL = sSQL & [Ô] FROM RAMALQTD [Ô]
sSQL = sSQL & [Ô] WHERE RAMALQTD.Identificacao = [ô][Ô] & cboIdentificacao.List(cboIdentificacao.ListIndex) & [Ô][ô][Ô]
sSQL = sSQL & [Ô] AND RAMALQTD.CodProduto = [ô][Ô] & txtCodigo.Text & [Ô][ô][Ô]


Para localizar o CodProduto [ô]00000000000000000003[ô] AND Identificacao = [ô]LOJA 208[ô] vai retornar somente uma linha mesmo

2º. Seu cadastro baseiasse em uma Identificação para vários produtos, então sua query vai retornar somente 1 item mesmo!


-------------------------------------------------------------------------------------------------
Detalhes Estrutura da Tabela

CODIGO |CODPRODUTO |IDENTIFICACAO
1 |3 |LOJA 208
1 |2 |LOJA 471
2 |1 |LOJA 208
3 |2 |LOJA 208
2 |2 |LOJA 471

Querys:


[ô]Listar por IDENTIFICACAO
sSQL = [Ô][Ô]
sSQL = sSQL & [Ô]SELECT [Ô]
sSQL = sSQL & [Ô] RAMALQTD.Identificacao, RAMALQTD.CodProduto, RAMALQTD.DTEntrada, RAMALQTD.DTRetirada, RAMALQTD.QTD [Ô]
sSQL = sSQL & [Ô] FROM RAMALQTD [Ô]
sSQL = sSQL & [Ô] WHERE RAMALQTD.IDENTIFICACAO = [ô]LOJA 208[ô]

Resultado:
CODIGO |CODPRODUTO |IDENTIFICACAO
1 |3 |LOJA 208
2 |1 |LOJA 208
3 |2 |LOJA 208



[ô]Listar por CODIGO PRODUTO
sSQL = [Ô][Ô]
sSQL = sSQL & [Ô]SELECT [Ô]
sSQL = sSQL & [Ô] RAMALQTD.Identificacao, RAMALQTD.CodProduto, RAMALQTD.DTEntrada, RAMALQTD.DTRetirada, RAMALQTD.QTD [Ô]
sSQL = sSQL & [Ô] FROM RAMALQTD [Ô]
sSQL = sSQL & [Ô] WHERE RAMALQTD.CODPRODUTO = [ô]2[ô]

Resultado:
CODIGO |CODPRODUTO |IDENTIFICACAO
1 |2 |LOJA 471
3 |2 |LOJA 208
2 |2 |LOJA 471



[ô]Listar por CODIGO
sSQL = [Ô][Ô]
sSQL = sSQL & [Ô]SELECT [Ô]
sSQL = sSQL & [Ô] RAMALQTD.Identificacao, RAMALQTD.CodProduto, RAMALQTD.DTEntrada, RAMALQTD.DTRetirada, RAMALQTD.QTD [Ô]
sSQL = sSQL & [Ô] FROM RAMALQTD [Ô]
sSQL = sSQL & [Ô] WHERE RAMALQTD.CODIGO = [ô]1[ô]

Resultado:
CODIGO |CODPRODUTO |IDENTIFICACAO
1 |3 |LOJA 208
1 |2 |LOJA 471



[ô]Listar por CODIGO PRODUTO ou IDENTIFICACAO
sSQL = [Ô][Ô]
sSQL = sSQL & [Ô]SELECT [Ô]
sSQL = sSQL & [Ô] RAMALQTD.Identificacao, RAMALQTD.CodProduto, RAMALQTD.DTEntrada, RAMALQTD.DTRetirada, RAMALQTD.QTD [Ô]
sSQL = sSQL & [Ô] FROM RAMALQTD [Ô]
sSQL = sSQL & [Ô] WHERE RAMALQTD.IDENTIFICACAO = [ô]LOJA 471[ô] OR RAMALQTD.CODPRODUTO = [ô]1[ô]
sSQL = sSQL & [Ô] GROUP BY RAMALQTD.Identificacao, RAMALQTD.CodProduto, RAMALQTD.DTEntrada, RAMALQTD.DTRetirada, RAMALQTD.QTD

Resultado:
CODIGO |CODPRODUTO |IDENTIFICACAO
1 |2 |LOJA 471
2 |1 |LOJA 208
2 |2 |LOJA 471


Esses são exemplos para você entender que a maneira com que esta fazendo não esta errada, mas esta inconsistente para o que você pretende
Repare na ultima query de consulta é basecamente a que você fez, porém não usei o AND e sim o OR e agrupei os resultados, pois poderia retornar mais de uma linha para o mesmo registro!

Qualquer duvida poste ai

Espero ter ajudado
ADRIANOM 06/02/2014 08:05:51
#434333
Agradeço gente pela força até o momento.

Sobre a questão do VarChar no campo código:
Utilizo, pois a autonumeração é realizada por meio de código; a chave primária é indexada via código por conveniência.

Sobre a Query sSQL:
A intenção mesmo, ao filtrar o nome presente no cboIdentificação + (and) txtCodigo é de apresentar um único resultado mesmo, porém quando altero o nome do cboIdentificacao (que tem o produto cadastrado com o referido código), os dados não são carregados nos textboxs.


Filman, cito esta parte da sua colaboração:

Citação:


1º. A query de Consulta

sSQL = [Ô][Ô]
sSQL = sSQL & [Ô]SELECT [Ô]
sSQL = sSQL & [Ô] RAMALQTD.Identificacao, RAMALQTD.CodProduto, RAMALQTD.DTEntrada, RAMALQTD.DTRetirada, RAMALQTD.QTD [Ô]
sSQL = sSQL & [Ô] FROM RAMALQTD [Ô]
sSQL = sSQL & [Ô] WHERE RAMALQTD.Identificacao = [ô][Ô] & cboIdentificacao.List(cboIdentificacao.ListIndex) & [Ô][ô][Ô]
sSQL = sSQL & [Ô] AND RAMALQTD.CodProduto = [ô][Ô] & txtCodigo.Text & [Ô][ô][Ô]


Para localizar o CodProduto [ô]00000000000000000003[ô] AND Identificacao = [ô]LOJA 208[ô] vai retornar somente uma linha mesmo

2º. Seu cadastro baseiasse em uma Identificação para vários produtos, então sua query vai retornar somente 1 item mesmo!



é exatamente o que quero: Um único resultado para o produto do código 00000000000000000003 conforme cada seleção de Ramal. Assim, a medida que eu alterar o nome no cboIdentificacao, ele buscará e preencherá os textboxs com os dados referentes ao código do produto conforme o ramal (cboidentificacao).
O que tá acontecendo é que a medida que altero o nome no cboidentificacao, ele preenche somente os dados do primeiro nome selecionado. Se seleciono outro nome (que sei que tem o mesmo produto cadastrado Cod) ele não carrega os dados....

[txt-color=#e80000]Como fazer?[/txt-color]
MARCELO.TREZE 06/02/2014 09:52:17
#434341
problema pode estar sendo na distinção dos caracteres, não sei se você utilizou a query usando o like como eu postei acima, pois sendo o campo varchar e você colocar um zero a menos ou a mais ja não é reconhecido.

ADRIANOM 06/02/2014 10:02:19
#434344
MarceloTreze,

Mas deu para compreender a questão da alteração dos nomes no cboIdentificacao e a necessidade que, quando essa alteração acontecesse, os campos textboxs se preencherem com os respectivos dados?

Conto com vocês, que estou pesquisando em um site especializado em sql, e tudo o que eu encontro está de acordo plenamente com a query que postei.... estou sem saber...


ADRIANOM 06/02/2014 10:26:09
#434347
MarceloTreze,

se seleciono a loja 208 ele preenche... se seleciono a loja 471 fica em branco, snedo que tem produto cadastrado com esse código
Página 2 de 3 [28 registro(s)]
Tópico encerrado , respostas não são mais permitidas