|
|
Postada em 26/11/2006 21:47 hs
Caros Colegas do Forum.. Venho mais uma vez pedir uma ajuda.... Estou tendo problemas quando estou rodando a rotina de consulta, e está dando esse erro: (Run-Time error "13" - Type mismatch ) Segue abaixo a rotina: Private Sub AtualizaGradeData() Dim Parametros As String Parametros = CboBandeira If DTPicker1 > DTPicker2 Then MsgBox "Data Início não pode ser maior Data Fim", vbExclamation, "Pesquisa Oferta" Else Set Rs = Banco.OpenRecordset("SELECT Folhetos.CdCamp, Folhetos.CdPlu, Folhetos.NomeDesc,Folhetos.NomeBand,Folhetos.DtInicio, Folhetos.DtFim, Folhetos.PrOferta, Folhetos.PrevisQtd, Folhetos.PrevVlVendas, Folhetos.PrevDemarc, Folhetos.RealQtd, Folhetos.RealVlVendas, Folhetos.RealDemarc FROM Folhetos Where DtInicio BETWEEN #" & Format(DTPicker1.Value, "YYYY/MM/DD") & "# AND #" & Format(DTPicker2.Value, "YYYY/MM/DD") & "#" And "'FOLHETOS.NomeBand ='" & Parametros & "#") i = 1 If Rs.EOF Then LblPrevVD = "" LblVLDermPrev = "" LblValorReal = "" LblVLDermReal = "" GrdPesquisa.Clear GrdPesquisa.Rows = 2 MsgBox "Não existe dados para consultar", vbExclamation, "Consulta Oferta" Else Do While Not Rs.EOF With GrdPesquisa .Rows = i + 1 .TextMatrix(i, 0) = Rs![cdcamp] .TextMatrix(i, 1) = Rs![CdPlu] .TextMatrix(i, 2) = Rs![NomeDesc] .TextMatrix(i, 3) = Rs![NomeBand] .TextMatrix(i, 4) = Rs![DtInicio] .TextMatrix(i, 5) = Rs![DtFim] .TextMatrix(i, 6) = Rs![PrOferta] .TextMatrix(i, 7) = Rs![PrevisQtd] .TextMatrix(i, 8) = Rs![PrevVlVendas] .TextMatrix(i, 9) = Rs![PrevDemarc] .TextMatrix(i, 10) = Rs![RealQtd] .TextMatrix(i, 11) = Rs![RealVlVendas] .TextMatrix(i, 12) = Rs![RealDemarc] End With i = i + 1 SomaPrevVD = SomaPrevVD + Rs!PrevVlVendas SomaPrevDerm = SomaPrevDerm + Rs!PrevDemarc SomaRealVD = SomaRealVD + Rs!RealVlVendas SomaRealDerm = SomaRealDerm + Rs!RealDemarc Rs.MoveNext Loop LblPrevVD = Format(SomaPrevVD, "R$ ###,###,###,##0.00") LblVLDermPrev = Format(SomaPrevDerm, "R$ ###,###,###,##0.00") LblValorReal = Format(SomaRealVD, "R$ ###,###,###,##0.00") LblVLDermReal = Format(SomaRealDerm, "R$ ###,###,###,##0.00") End If End If 'End If 'End If 'End If 'End If End Sub
Obrigado Marcelo Freitas
|
|
|
|
|
|
PH1959
|
SÃO JOSÉ DOS CAMPOS SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 27/11/2006 11:01 hs
o debug está parando onde?
|
|
|
|
|
|
Postada em 27/11/2006 11:23 hs
Pelo q vejo é qdo vc abre o recordset... vc fechou as aspas depois do "#" <= aspas fechadas... depois vc colocou um "and" sem estar entre aspas... logo o compilador interpreta q é uma comparação lógica dentro do recordset... aí acontece o erro de tipo incompátivel. Ainda mais vc abre o último parâmetro com apóstrofe depois fecha como "#"... ia dar erro ao abrir a tabela tb... Olha mude a sua string para isto: Set Rs = Banco.OpenRecordset("SELECT Folhetos.CdCamp, Folhetos.CdPlu, Folhetos.NomeDesc,Folhetos.NomeBand,Folhetos.DtInicio, Folhetos.DtFim, Folhetos.PrOferta, Folhetos.PrevisQtd, Folhetos.PrevVlVendas, Folhetos.PrevDemarc, Folhetos.RealQtd, Folhetos.RealVlVendas, Folhetos.RealDemarc FROM Folhetos Where DtInicio BETWEEN #" & Format(DTPicker1.Value, "YYYY/MM/DD") & "# AND #" & Format(DTPicker2.Value, "YYYY/MM/DD") & "# And FOLHETOS.NomeBand = '" & Parametros & "'") at+
|
|
TÓPICO EDITADO
|
|
|
|
|
|
Postada em 28/11/2006 00:29 hs
Ghost_jlp O Sql só funciona quando o parâmetros recebe algum dados.. como eu posso fazer para que quando o parâmetros não receber dados, ai ele tras só os dados das informação por período. Obrigado pela ajuda. Marcelo
|
|
|
|
|
|
Postada em 29/11/2006 02:38 hs
tira a última parte da sql fazer um if... Dim pr as string pr = "" IF TRIM(parametros) <> "" then pr = " And FOLHETOS.NomeBand = '" & Parametros & "'" Endif Set Rs = Banco.OpenRecordset("SELECT Folhetos.CdCamp, Folhetos.CdPlu, Folhetos.NomeDesc,Folhetos.NomeBand,Folhetos.DtInicio, Folhetos.DtFim, Folhetos.PrOferta, Folhetos.PrevisQtd, Folhetos.PrevVlVendas, Folhetos.PrevDemarc, Folhetos.RealQtd, Folhetos.RealVlVendas, Folhetos.RealDemarc FROM Folhetos Where DtInicio BETWEEN #" & Format(DTPicker1.Value, "YYYY/MM/DD") & "# AND #" & Format(DTPicker2.Value, "YYYY/MM/DD") & "#" & pr) at+
|
|
|
|
|