SQL-INTERVALO DE DATAS E IDFORNECEDOR
Boa noite galera, estou com problema no meu SQL. alguem pode me dar uma dica ?
Ja tentei assim
tbm assim
nesse For. é onde q quero trazer o resultado do Filtro. pela data inicial e data Final e o ID do fornecedor
Ja tentei assim
sql = [Ô]SELECT Compras.[codigo], Compras.[modelo], Compras.[serie], Compras.[NumeroNotaFiscal], Compras.[ChaveNFe], Compras.[DataEmissao], Compras.[DataEntrada], Compras.[Valor_Total_Nota], Compras.[Vrl_Total_Produto], Compras.[Vlr_Total_Desconto], Compras.[Vlr_Total_Frete], Compras.[Vlr_Total_Seguro], Compras.[Vlr_Total_OutrasDesp], Compras.[Vlr_total_bsCal_icms], Compras.[Vlr_total_vlr_icms], Compras.[Vlr_total_bsCal_icmsST], Compras.[modFrete], Compras.[Vlr_total_vlr_icmsST], Compras.[Vlr_total_IPI], Compras.[Indicador_Pagamento] FROM Compras WHERE DataEntrada between[Ô] & mskDIni.Value.Date & [Ô]AND[Ô] & mskDFim.Value.Date & [Ô]order by Compras.codigo=?[Ô]
tbm assim
sql = [Ô]SELECT Compras.[codigo], Compras.[modelo], Compras.[serie], Compras.[NumeroNotaFiscal], Compras.[ChaveNFe], Compras.[DataEmissao], Compras.[DataEntrada], Compras.[Valor_Total_Nota], Compras.[Vrl_Total_Produto], Compras.[Vlr_Total_Desconto], Compras.[Vlr_Total_Frete], Compras.[Vlr_Total_Seguro], Compras.[Vlr_Total_OutrasDesp], Compras.[Vlr_total_bsCal_icms], Compras.[Vlr_total_vlr_icms], Compras.[Vlr_total_bsCal_icmsST], Compras.[modFrete], Compras.[Vlr_total_vlr_icmsST], Compras.[Vlr_total_IPI], Compras.[Indicador_Pagamento] FROM Compras WHERE DataEntrada between @datainicial and @datafinal order by Compras.codigo=?[Ô]
nesse For. é onde q quero trazer o resultado do Filtro. pela data inicial e data Final e o ID do fornecedor
For j = 0 To Dgv_Fornecedor_Bloco0150.Rows.Count - 1
SQL aqui >>
cmd = New OleDbCommand(sql, con)
cmd.Parameters.Add(New OleDb.OleDbParameter([Ô]@codigo[Ô], Dgv_Fornecedor_Bloco0150.Rows(j).Cells([Ô]CodigoFornecedor[Ô]).Value.ToString()))
dr = cmd.ExecuteReader
If dr.HasRows Then
dr.Read()
If Not IsDBNull(dr.Item([Ô]codigo[Ô])) Then COD_PART = dr.Item([Ô]codigo[Ô])
COD_PART = Format(CInt(COD_PART), [Ô]00000[Ô])
COD_PART = [Ô]F[Ô] & COD_PART
If Not IsDBNull(dr.Item([Ô]modelo[Ô])) Then COD_MOD = dr.Item([Ô]modelo[Ô])
If Not IsDBNull(dr.Item([Ô]serie[Ô])) Then SER = dr.Item([Ô]serie[Ô])
End If
Next
Cara, que confusão, não pela query ser longa, mas você está totalmente confuso quanto à o que são parâmetros...
Kerplunk, então eu tenho como parametros para fazer a consulta
[txt-color=#e80000] cmd.Parameters.AddWithValue([Ô]@datainicial[Ô], mskDIni.Value.Date)
cmd.Parameters.AddWithValue([Ô]@datafinal[Ô], mskDFim.Value.Date)
cmd.Parameters.Add(New OleDb.OleDbParameter([Ô]@CodigoFornecedor[Ô], Dgv_Fornecedor_Bloco0150.Rows(j).Cells([Ô]CodigoFornecedor[Ô]).Value.ToString()))
[/txt-color]
acabei de mudar aqui o SQL, porem so esta me retornando os dados repetidos.
[txt-color=#e80000] cmd.Parameters.AddWithValue([Ô]@datainicial[Ô], mskDIni.Value.Date)
cmd.Parameters.AddWithValue([Ô]@datafinal[Ô], mskDFim.Value.Date)
cmd.Parameters.Add(New OleDb.OleDbParameter([Ô]@CodigoFornecedor[Ô], Dgv_Fornecedor_Bloco0150.Rows(j).Cells([Ô]CodigoFornecedor[Ô]).Value.ToString()))
[/txt-color]
acabei de mudar aqui o SQL, porem so esta me retornando os dados repetidos.
sql = [Ô]SELECT Compras.[codigo], Compras.[modelo], Compras.[serie], Compras.[NumeroNotaFiscal], Compras.[ChaveNFe], Compras.[CodigoFornecedor], Compras.[DataEmissao], Compras.[DataEntrada], Compras.[Valor_Total_Nota], Compras.[Vrl_Total_Produto], Compras.[Vlr_Total_Desconto], Compras.[Vlr_Total_Frete], Compras.[Vlr_Total_Seguro], Compras.[Vlr_Total_OutrasDesp], Compras.[Vlr_total_bsCal_icms], Compras.[Vlr_total_vlr_icms], Compras.[Vlr_total_bsCal_icmsST], Compras.[modFrete], Compras.[Vlr_total_vlr_icmsST], Compras.[Vlr_total_IPI], Compras.[Indicador_Pagamento] FROM Compras WHERE DataEntrada between @datainicial and @datafinal and CodigoFornecedor[Ô]
CodigoFornecedor está na query, mas está sem parâmetro. deveria ser:
sql = [Ô]SELECT Compras.[codigo], Compras.[modelo], Compras.[serie], Compras.[NumeroNotaFiscal], Compras.[ChaveNFe], Compras.[CodigoFornecedor], Compras.[DataEmissao], Compras.[DataEntrada], Compras.[Valor_Total_Nota], Compras.[Vrl_Total_Produto], Compras.[Vlr_Total_Desconto], Compras.[Vlr_Total_Frete], Compras.[Vlr_Total_Seguro], Compras.[Vlr_Total_OutrasDesp], Compras.[Vlr_total_bsCal_icms], Compras.[Vlr_total_vlr_icms], Compras.[Vlr_total_bsCal_icmsST], Compras.[modFrete], Compras.[Vlr_total_vlr_icmsST], Compras.[Vlr_total_IPI], Compras.[Indicador_Pagamento] FROM Compras WHERE DataEntrada between @datainicial and @datafinal and CodigoFornecedor = @CodigoFornecedor[Ô]
uuufffa consertei kerplunk, veja no final do SQL.. eu esqueci de por > [txt-color=#e80000] =? [/txt-color]
eu fiz assim e deu certo Kerplunk
e nos parametros
Vlw pela atenção acho que ja posso Fechar o topico e lhe pontuar é claro
WHERE DataEntrada between @datainicial and @datafinal and CodigoFornecedor=?[Ô]
e nos parametros
cmd.Parameters.AddWithValue([Ô]@datainicial[Ô], mskDIni.Value.Date)
cmd.Parameters.AddWithValue([Ô]@datafinal[Ô], mskDFim.Value.Date)
cmd.Parameters.Add(New OleDb.OleDbParameter([Ô]@CodigoFornecedor[Ô], Dgv_Fornecedor_Bloco0150.Rows(j).Cells([Ô]CodigoFornecedor[Ô]).Value.ToString()))
Vlw pela atenção acho que ja posso Fechar o topico e lhe pontuar é claro
Use parâmetros nomeados. Como você está passando os nomes deles nos parâmetros, melhor colocar os nomes deles na query também, assim não fica confuso.
Citação::
Use parâmetros nomeados. Como você está passando os nomes deles nos parâmetros, melhor colocar os nomes deles na query também, assim não fica confuso.
Boa ideia Kerplunk vlw
Tópico encerrado , respostas não são mais permitidas