SOMA EM SQL
Tenho uma tabela com os campos Ato,Condicao,Ato_Condicao,Aberto,Andamento e Solucionado,onde montei uma SQL para calcular o total de cada campo, porem aparece a seguinte mensagem(Tipo de dados incompatÃvel na expressão de critério),ou seja o erro e na SQL se alguém tiver alguma idéia estou precisando de ajuda.
Dim SQL As String
Dim RC As Recordset
SQL = "Select sum (Ato) As Valor,sum (Condicao) As Valor1,sum (Ato_Condicao) As Valor2,sum(Aberto) As Valor3,sum(Andamento) As Valor4,sum(Solucionado) As Valor5 From TbTrabalho"
Set RC = BD.OpenRecordset(SQL, dbOpenSnapshot)
If RC3.RecordCount > 0 Then
Linha = RC3.RecordCount + 1
End If
Grid1.FixedCols = 1
Grid1.FixedRows = 1
Grid1.Cols = 7
Grid1.Rows = Linha
Grid1.Row = 0
Grid1.ColWidth(0) = 500
Grid1.col = 1
Grid1.ColWidth(1) = 100
Grid1.Text = "ATO INSEGURO"
Grid1.col = 2
Grid1.ColWidth(2) = 1000
Grid1.Text = "CONDIÇÃO ISEGURA"
Grid1.col = 3
Grid1.ColWidth(3) = 1000
Grid1.Text = "ATO E CONDIÇÃO INSEGURA"
Grid1.col = 4
Grid1.ColWidth(3) = 1000
Grid1.Text = "EM ABERTO"
Grid1.col = 5
Grid1.ColWidth(3) = 1000
Grid1.Text = "EM ANDAMENTO"
Grid1.col = 6
Grid1.ColWidth(3) = 1000
Grid1.Text = "SOLUCIONADO"
If RC.EOF = False Then
Grid1.Row = 0
Do While Not RC.EOF
Grid1.col = 1
Grid1.Row = Grid1.Row + 1
Grid1.col = 1
Grid1.Text = RC("Valor")
Grid1.col = 2
Grid1.Text = RC("Valor1")
Grid1.col = 3
Grid1.Text = RC("Valor2")
Grid1.col = 4
Grid1.Text = RC("Valor3")
Grid1.col = 5
Grid1.Text = RC("Valor4")
Grid1.col = 6
Grid1.Text = RC("Valor5")
If Grid1.Row = Grid1.Rows - 1 Then Grid1.Rows = Grid1.Rows + 1
RC.MoveNext
Loop
End If
RC.Close
Dim SQL As String
Dim RC As Recordset
SQL = "Select sum (Ato) As Valor,sum (Condicao) As Valor1,sum (Ato_Condicao) As Valor2,sum(Aberto) As Valor3,sum(Andamento) As Valor4,sum(Solucionado) As Valor5 From TbTrabalho"
Set RC = BD.OpenRecordset(SQL, dbOpenSnapshot)
If RC3.RecordCount > 0 Then
Linha = RC3.RecordCount + 1
End If
Grid1.FixedCols = 1
Grid1.FixedRows = 1
Grid1.Cols = 7
Grid1.Rows = Linha
Grid1.Row = 0
Grid1.ColWidth(0) = 500
Grid1.col = 1
Grid1.ColWidth(1) = 100
Grid1.Text = "ATO INSEGURO"
Grid1.col = 2
Grid1.ColWidth(2) = 1000
Grid1.Text = "CONDIÇÃO ISEGURA"
Grid1.col = 3
Grid1.ColWidth(3) = 1000
Grid1.Text = "ATO E CONDIÇÃO INSEGURA"
Grid1.col = 4
Grid1.ColWidth(3) = 1000
Grid1.Text = "EM ABERTO"
Grid1.col = 5
Grid1.ColWidth(3) = 1000
Grid1.Text = "EM ANDAMENTO"
Grid1.col = 6
Grid1.ColWidth(3) = 1000
Grid1.Text = "SOLUCIONADO"
If RC.EOF = False Then
Grid1.Row = 0
Do While Not RC.EOF
Grid1.col = 1
Grid1.Row = Grid1.Row + 1
Grid1.col = 1
Grid1.Text = RC("Valor")
Grid1.col = 2
Grid1.Text = RC("Valor1")
Grid1.col = 3
Grid1.Text = RC("Valor2")
Grid1.col = 4
Grid1.Text = RC("Valor3")
Grid1.col = 5
Grid1.Text = RC("Valor4")
Grid1.col = 6
Grid1.Text = RC("Valor5")
If Grid1.Row = Grid1.Rows - 1 Then Grid1.Rows = Grid1.Rows + 1
RC.MoveNext
Loop
End If
RC.Close
em que linha acontece o erro? no próprio select?
todos os campos são numéricos?
todos os campos são numéricos?
Jean
O erro acontece na linha Set RC = BD.OpenRecordset(SQL, dbOpenSnapshot) e todos os campos são numéricos.
O erro acontece na linha Set RC = BD.OpenRecordset(SQL, dbOpenSnapshot) e todos os campos são numéricos.
faça assim:
SELECT TOP 1 Ato, Condicao, Ato_Condicao, Aberto, Andamento, Solucionado FROM TbTrabalho
execute esta consulta, e em seguida mostre os dados retornados para certificar que os nomes de campos e os valores são realmente numéricos
SELECT TOP 1 Ato, Condicao, Ato_Condicao, Aberto, Andamento, Solucionado FROM TbTrabalho
execute esta consulta, e em seguida mostre os dados retornados para certificar que os nomes de campos e os valores são realmente numéricos
P_PREST,
Faca como o tio Jeck (o estripador) falou. Va por partes.
Faca um select simples.
SQL = "Select sum (Ato) As Valor From TbTrabalho"
Set RC = BD.OpenRecordset(SQL, dbOpenSnapshot)
Teste e veja se da erro, depois vai aumentando se tudo estiver corretor coloque o valor2 e assim por diante ate achar o valor que esta dando erro.
Assim voce acha melhor o problema.
Faca como o tio Jeck (o estripador) falou. Va por partes.
Faca um select simples.
SQL = "Select sum (Ato) As Valor From TbTrabalho"
Set RC = BD.OpenRecordset(SQL, dbOpenSnapshot)
Teste e veja se da erro, depois vai aumentando se tudo estiver corretor coloque o valor2 e assim por diante ate achar o valor que esta dando erro.
Assim voce acha melhor o problema.
Valeu pessoal, consegui resolver o problema
Tópico encerrado , respostas não são mais permitidas