CONCATENAR EM FORMULA
Amigos como que nesse fórmula eu mesmo coloco os sinais de "=,>,<,>=...",quando estiver montando a fórmuma para ficar mais configurável pois conforme abaixo apenas consigo o "=".
Function COUNTACID(UNID, EMPRESA) As Long
Application.Volatile
On Error GoTo erro
conecta
Sql = "select COUNT(*) AS QTD from ACIDENTES where 0=0"
If Not UNID = "" Then Sql = Sql & " AND UNIDADE ='" & UNID & "'"
If Not EMPRESA = "" Then Sql = Sql & " AND UGB = '" & EMPRESA & "'"
Set RS = conexao.Execute(Sql)
COUNTACID = RS!QTD
RS.Close
Set RS = Nothing
Exit Function
erro:
If Err.Number <> 0 Then
COUNTACID = 0
End If
End Function
é só colocar dentro da string
é isso que vc precisa?
If Not UNID = "" Then Sql = Sql & " AND UNIDADE >='" & UNID & "'"
If Not EMPRESA = "" Then Sql = Sql & " AND UGB < '" & EMPRESA & "'"
If Not UNID = "" Then Sql = Sql & " AND UNIDADE >'" & UNID & "'"
If Not EMPRESA = "" Then Sql = Sql & " AND UGB <= '" & EMPRESA & "'"
é isso que vc precisa?
ops... esse campo é tipo texto...
vc quer colocar esses sinais aonde?
[S55]
vc quer colocar esses sinais aonde?
[S55]
mas esses sinais teriam que ser configuráveis pelo usuário,igual as fórmulas do excel.
mas ele vai digitar essas formulas junto com os valores?
sim,seria mais ou menos dessa forma.
=COUNTACID("vm";aqui ele colocaria o sinal tipo <> ou = "BEN")
=COUNTACID("vm";aqui ele colocaria o sinal tipo <> ou = "BEN")
ve se isso te ajuda
http://www.vbmania.com.br/vbmania/vbmforum.php?varMethod=Abrir&varID=108735
http://www.vbmania.com.br/vbmania/vbmforum.php?varMethod=Abrir&varID=108735
Cara, é só vc adicionar mais parà ¢metros na função!
Ai aqui vc coloca assim:
Function COUNTACID(UNID, SinalUnid, EMPRESA, SinalEmpresa) As Long
Ai aqui vc coloca assim:
If Not UNID = "" Then Sql = Sql & " AND UNIDADE " & SinalUnid & " '" & UNID & "'"
If Not EMPRESA = "" Then Sql = Sql & " AND UGB " & SinalEmpresa & " '" & EMPRESA & "'"
Meu brodher quase isso só mais uma questão não teria um jeito de não colocar SinalUnid e SinalEmpresa como parà ¢metros separados,seria colocado antes do valor especificado tipo assim "=VM";"<>BEN" e a fórmula ficaria mais ou menos dessa forma,tentei mas não consegui:
Abraço
If Not UNID = "" Then Sql = Sql & " AND UNIDADE '" & UNID & "'"
If Not EMPRESA = "" Then Sql = Sql & " AND UGB '" & EMPRESA & "'"
Abraço
Ficaria assim no meu ponto de vista:
=COUNTACID("=VM";"<>BEN").
=COUNTACID("=VM";"<>BEN").
acho que pra vc separar isso só trabalhando a string
não é mais facil vc colocar uma combo na frente com os tipos de operadores que o usuario pode escolher? ai vc usa do jeito que o MARCELOHF. ai na função ela receberia 4 parametros.
ve se isso te ajuda pro select:
não é mais facil vc colocar uma combo na frente com os tipos de operadores que o usuario pode escolher? ai vc usa do jeito que o MARCELOHF. ai na função ela receberia 4 parametros.
ve se isso te ajuda pro select:
Function COUNTACID(UNID As String, EMPRESA As String) As Long
Application.Volatile
On Error GoTo erro
conecta
Sql = "select COUNT(*) AS QTD from ACIDENTES where 0=0"
If Not UNID = "" Then Sql = Sql & " AND UNIDADE " & arrumaSinal(UNID)
If Not EMPRESA = "" Then Sql = Sql & " AND UGB " & arrumaSinal(EMPRESA)
Set RS = conexao.Execute(Sql)
COUNTACID = RS!QTD
RS.Close
Set RS = Nothing
Exit Function
erro:
If Err.Number <> 0 Then
COUNTACID = 0
End If
[c]Function arrumaSinal(nome As String) As String
If InStr(1, nome, "=") Then
arrumaSinal = Mid(nome, InStr(1, nome, "="), 1) & " '" & Right(nome, Len(nome) - 1) & "'"
ElseIf InStr(1, nome, "<>") Then
arrumaSinal = Mid(nome, InStr(1, nome, "<>"), 2) & " '" & Right(nome, Len(nome) - 2) & "'"
ElseIf InStr(1, nome, ">") Then
arrumaSinal = Mid(nome, InStr(1, nome, ">"), 1) & " '" & Right(nome, Len(nome) - 1) & "'"
ElseIf InStr(1, nome, "<") Then
arrumaSinal = Mid(nome, InStr(1, nome, "<"), 1) & " '" & Right(nome, Len(nome) - 1) & "'"
End If
End Function
Tópico encerrado , respostas não são mais permitidas