Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

sweet-tooth

No SQL o código funciona mas no VB não retorna todos resultados

Recommended Posts

Primeiro queria saber como enviar registros a duas tabelas do SQL Server de uma só vez,mas agora to tendo problema pra retornar esses valores na consulta,pois só consigo pegar o registro de uma das tabelas.As tabelas em questão,são estoque e controle,pra dar uma resumida,vamos supor que eu precise pegar o código do produto da tabela estoque (o mesmo código também tem na tabela controle,mas tem outros registros que preciso pegar e só tem em uma ou outra tabela),e da tabela controle o lote e validade do produto que só tem nela mesma.No SQL,eu usaria o código:select a.cod_prod,b.lote_custo,b.validade_prod,from estoque a,controle bDaí apareceriam as 3 colunas,1 da tabela estoque,e as outras de controle.Mas o mesmo código,já não está ajudando no VB6,lá está assim:Private Sub Textcodigo_LostFocus() ***No evento Lostfocus da caixa de texto,para verificar o código antes de seguir cadastroDim resposta As IntegerDim strsql As Stringabreconexao *****rotina criada no módulo pra abrir a conexão com o banco de dadosIf Textcodigo <> "" Then strsql = "select a.* b.lote_prod from estoque a,controle b where cod_prod = '" & Textcodigo & "' " *****A linha de cima,é pra fazer a seleção apenas dos registros que o código seja igual o digitado na textcodigo With rs .Open strsql, conn, adOpenKeyset, adLockPessimistic If Not .EOF Then resposta = MsgBox("Já existe um produto cadastrado com este nome!Deseja visualiza-lo?", vbYesNo, "Erro") If resposta = vbYes Then ****se a resposta for positiva deverá ser carregado os registros,se for não exit sub Textproduto.Text = rs![produto_prod] & "" Textquantidade.Text = rs![quantidade_prod] & "" cbotipo = rs![tipo_prod] & "" Textlote.Text = rs![lote_prod] & "" ***aqui o registro que deveria sair da tabela controle Else Exit Sub End IfQuando a caixa de texto perde o foco e a rotina entra em ação,dá o erro:Line 1: incorrect syntax near 'b'.E no DEBUG é destacada esta linha:.Open strsql, conn, adOpenKeyset, adLockPessimisticsendostrsql = "select a.* b.lote_prod from estoque a,controle b where cod_prod = '" 1111 "' " conn = Provider =SQLOLEDB.1;Persist Security Info=false,USER ID=SA.......adOpenkeyset = 1adLockPessimistic = 2Bom,é isso.To mostrando tudo bem detalhado,mas se for necessário descartar esse modo,e fazer a seleção com outro método não tem problema,o importante é eu conseguir fazer isso,pq ta atrasando o restante do que tenho que fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eh meio complicado ter uma noção correta do seu problema, pois não tem como a gente ter uma visão detalhada do BD, mas vamos lá..

sendostrsql = "select a.* b.lote_prod from estoque a,controle b where cod_prod = '" 1111 "' "

nessa instrução SQL tem alguns detalhes estranhos ae:1° - tah faltando uma vírgula q separa os dois campos q você quer pegar: - o seu tah assim: "select a.* b.lote_prod from... - o correto seria assim: "select a.*, b.lote_prod from...2° - na cláusula WHERE tah faltando você referenciar de qual tabela eh o cod_prod (*se esse campo existir nas 2 tabelas) - só colocar "WHERE a.cod_prod = ...3° - e se o campo 'cod_prod' existir nas duas tabelas, você tb tem q fazer o relacionamento entre elas colocando mais uma condição na cláusula WHERE: - WHERE a.cod_prod = 'codigo sem aspas' AND b.cod_prod = a.cod_prod4° - não intendi aquele monte de aspas em volta do código do produto.. por ser um campo numerico naum pode ter aspas..espero ter ajudado,, qlq dúvida posta ae q a gente tenta ajudar..abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.