CONSULTA
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
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
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.
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
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
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
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:
Se funcionar, aà você adiciona o idvenda:
Se funcionar, depois passe para a quantidade. E assim por diante, até descobrir onde começa o erro.
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.
Uso assim:
SELECT * FROM Produtos WHERE (cod_produto=[Ô] & txtFields(0).Text & [Ô] or Format$([barcode],[ô][ô]) =[ô][Ô] & Format(txtFields(0).Text, [Ô][Ô]) & [Ô][ô])[Ô]
SELECT * FROM Produtos WHERE (cod_produto=[Ô] & txtFields(0).Text & [Ô] or Format$([barcode],[ô][ô]) =[ô][Ô] & Format(txtFields(0).Text, [Ô][Ô]) & [Ô][ô])[Ô]
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.
Dai, onde está o CommandBehavior.SingleRow.
Tópico encerrado , respostas não são mais permitidas