CONSULTA

AMORIM 18/06/2017 01:40:47
#474588
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
JABA 18/06/2017 02:00:17
#474589
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

AMORIM 18/06/2017 12:03:51
#474591
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
JABA 18/06/2017 14:18:57
#474593
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.
FERPIRO 18/06/2017 18:24:09
#474599
Uso assim:

SELECT * FROM Produtos WHERE (cod_produto=[Ô] & txtFields(0).Text & [Ô] or Format$([barcode],[ô][ô]) =[ô][Ô] & Format(txtFields(0).Text, [Ô][Ô]) & [Ô][ô])[Ô]
OMAR2011 19/06/2017 09:02:24
#474600
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 encerrado , respostas não são mais permitidas