CONSULTA

 Tópico anterior Próximo tópico Novo tópico

CONSULTA

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#474588 - 18/06/2017 01:40:47

AMORIM
PALMAS/TOCANTINS
Cadast. em:Agosto/2015


Ola Pessoal pessoal ver se alguém consegue me da uma luz na consulta abaixo
Obs o erro esta aqui CodBarra='" & txtCodBarros.Text & "' OR CodigoProduto='" & txtCodBarros.Text & "' OR CodCounte=" & txtCodBarros.Text & " , pois num mesmo textbox e usado para os três campos.
Private Sub PLdados()
        Dim dr As OleDbDataReader = Nothing
        '    Dim dr1 As OleDbDataReader = Nothing
        Using con As OleDbConnection = GetConnection()
            If txtQtde.Text <> "" Then
                If InStr(txtQtde.Text, "*") = 0 Then
                    Try
                        con.Open()
                         Dim sql As String = ""                    
                            sql = "SELECT * FROM tblVendas WHERE CodBarra='" & txtCodBarros.Text & "' OR CodigoProduto='" & txtCodBarros.Text & "' OR CodCounte=" & txtCodBarros.Text & " And Quantidade='" & txtQtde.Text & "' And ControleVenda=" & IDVendas.Text & ""
                            Dim cmd As OleDbCommand = New OleDbCommand(sql, con)
                            dr = cmd.ExecuteReader(CommandBehavior.SingleRow)
                            If dr.HasRows Then
                                dr.Read()
                                IntCodigoLancamento = txtCodBarros.Text
                                FrmExcluirVendas.txtCodBarros.Text = IntCodigoLancamento
                                FrmExcluirVendas.IDVendas.Text = IDVendas.Text
                                FrmExcluirVendas.Descricao.Text = dr.Item("NomeProduto")
                                FrmExcluirVendas.txtValor.Text = dr.Item("ValorDivida")
                                FrmExcluirVendas.ShowDialog()
                                Me.Dispose()
                        Else
                            btnMensagem.Text = "ITEM NÃO LOCALIZADO Nº: " & txtCodBarros.Text & " EQUANTIDADE: " & txtQtde.Text
                            End If
                    Catch ex As Exception
                        MsgBox(ex.Message)
                        'dr.Close()
                        con.Close()
                    End Try
                End If
            Else
            End If
        End Using
    End Sub



#474589 - 18/06/2017 02:00:17

JABA
CABO FRIO
Cadast. em:Agosto/2005


Última edição em 18/06/2017 02:03:21 por JABA

Não se usa aspas simples para campos numéricos. Se o seu campo "Quantidade" for um deles, retire-as.
Os campos "CodCounte" e "ControleVenda" estão sem as aspas simples, verifique se eles são realmente numéricos. Senão, adicione-as.

sql = "SELECT * FROM tblVendas WHERE (CodBarra = ' " & txtCodBarros.Text & " ' OR CodigoProduto=' " & txtCodBarros.Text & " ' OR CodCounte = " & txtCodBarros.Text & ") And Quantidade= ' " & txtQtde.Text & " ' And ControleVenda= " & IDVendas.Text



_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#474591 - 18/06/2017 12:03:51

AMORIM
PALMAS/TOCANTINS
Cadast. em:Agosto/2015


Jar tentei assim mais não funciona os três campos e satisfatório, são 5 campos a consulta tem no mínimo

A Quantidade= ' " & txtQtde.Text & " ' And ControleVenda= " & IDVendas.Text mais um dos CodBarra = ' " & txtCodBarros.Text & " ' OR CodigoProduto=' " & txtCodBarros.Text & " ' OR CodCounte = " & txtCodBarros.Text & ",o problema e que o txtCodBarros.Text pode ser digitado o CodigoProduto ou CodCounte ou CodBarra



#474593 - 18/06/2017 14:18:57

JABA
CABO FRIO
Cadast. em:Agosto/2005


Primeiro, passe a menor quantidade de campos possível para a clausula "Where". Depois, vai adicionando os outros campos e testando cada um deles. Quando der o erro, tu vai saber o que fazer. Você pode começar assim:

sql = "SELECT * FROM tblVendas WHERE CodBarra = ' " & txtCodBarros.Text & " ' "


Se funcionar, aí você adiciona o idvenda:

sql = "SELECT * FROM tblVendas WHERE CodBarra = ' " & txtCodBarros.Text & " ' And ControleVenda= " & IDVendas.Text


Se funcionar, depois passe para a quantidade. E assim por diante, até descobrir onde começa o erro.

_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#474599 - 18/06/2017 18:24:09

FERPIRO
CAPAO BONITO
Cadast. em:Janeiro/2010


Uso assim:

SELECT * FROM Produtos WHERE (cod_produto=" & txtFields(0).Text & " or Format$([barcode],'') ='" & Format(txtFields(0).Text, "") & "')"

FERPIRO - APRENDENDO SEMPRE !!!


#474600 - 19/06/2017 09:02:24

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Não faz sentido você usar OR em uma consulta nesta tabela onde pode ocorre vários registros com o mesmo código de barras ou codigo do produto.
Dai, onde está o CommandBehavior.SingleRow.



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por AMORIM em 02/07/2017 19:04:09