Notifications
Clear all

Modelo de Aplicativo de Cadastro - ListView - Não retorna os valores da consulta que tem zeros depois da vírgula

7 Posts
4 Usuários
0 Reactions
1,465 Visualizações
(@diovanino)
Posts: 16
Active Member
Topic starter
 

Senhores,

Tenho os meus aplicativos, baseados quase todos, no Modelo de Aplicativos de Cadastro, desenvolvido por Tomás Vasquez e aprimorado por Mauro Coutinho.

Em um destes formulários de pesquisa, tenho um campo texto para consultar os dados de um teor de carbono, que está gravado na minha planilha de dados,  da seguinte forma: XX,XX (93,36), por exemplo.

Nesta minha base de dados, tenho valores gravados do tipo: 94,70, 77,20, 95,05 etc.

Quando faço a consulta de um determinado valor, onde possui zero depois da vírgula, é me retornado a seguinte mensagem: "A variável do objeto ou a variável do bloco with não foi definida 91 VBA Project"

Veja abaixo, o código utilizado na MontaClausulaWhere:

 

Private Sub MontaClausulaWhere(ByVal NomeControle As String, ByVal NomeCampo As String, ByRef sqlWhere As String) 'NomeDoContato If Trim(Me.Controls(NomeControle).Text) <> vbNullString Then If sqlWhere <> vbNullString Then sqlWhere = sqlWhere & " AND" End If If IsDate(Me.Controls(NomeControle).Text) Then 'Verifica se é Data Select Case LocEntreDatas Case 0 'Procura por uma unica Data sqlWhere = sqlWhere & " (" & NomeCampo & ") = #" & Format(Me.txtDataIni.Text, "mm/dd/yyyy") & "#" Case 1 'Procura entre duas Datas sqlWhere = sqlWhere & " (" & NomeCampo & ") BETWEEN #" & Format(data1.Text, "mm/dd/yyyy") & "# AND #" & Format(data2.Text, "mm/dd/yyyy") & "#" End Select Else sqlWhere = sqlWhere & " UCASE(" & NomeCampo & ") LIKE UCASE('" & Trim(Me.Controls(NomeControle).Text) & "')" End If End If End Sub

 
Postado : 04/08/2020 4:43 pm
(@nmis159)
Posts: 13
Active Member
 

Tem como vc organizar esse código ou montar uma planilha simples com esse código?

 
Postado : 05/08/2020 8:40 am
(@diovanino)
Posts: 16
Active Member
Topic starter
 

 

Private Sub MontaClausulaWhere(ByVal NomeControle As String, ByVal NomeCampo As String, ByRef sqlWhere As String)
'NomeDoContato
If Trim(Me.Controls(NomeControle).Text) <> vbNullString Then
If sqlWhere <> vbNullString Then
sqlWhere = sqlWhere & " AND"
End If

If IsDate(Me.Controls(NomeControle).Text) Then 'Verifica se é Data
Select Case LocEntreDatas

Case 0 'Procura por uma unica Data
sqlWhere = sqlWhere & " (" & NomeCampo & ") = #" & Format(Me.txtDataIni.Text, "mm/dd/yyyy") & "#"
Case 1 'Procura entre duas Datas
sqlWhere = sqlWhere & " (" & NomeCampo & ") BETWEEN #" & Format(data1.Text, "mm/dd/yyyy") & "# AND #" & Format(data2.Text, "mm/dd/yyyy") & "#"
End Select
Else
sqlWhere = sqlWhere & " UCASE(" & NomeCampo & ") LIKE UCASE('" & Trim(Me.Controls(NomeControle).Text) & "')"

End If
End If
End Sub

Editado pela Moderação. Motivo: Utilize o botão Código (< >) para inserir código VBA ou Fórmulas.

 
Postado : 05/08/2020 4:59 pm
Mauro Coutinho
(@coutinho)
Posts: 95
Estimable Member
 

Diovanino, o ideal seria anexar um modelo reduzido do seu arquivo para poder analisar, só pela rotina não tem como saber, a variável que etsa se referindo no erro pode ser em relação ao nome de alguns dos controles que não estejam declarados corretamente ou co algum erro no nome, até um espaço a  mais no nome de algum controle pode gerar esse tipo de erro.

 

[]s

Mauro Coutinho

 
Postado : 06/08/2020 2:28 pm
(@diovanino)
Posts: 16
Active Member
Topic starter
 

Mauro,

Segue em anexo o modelo reduzido!

Tentei fazer a consulta dos valores para o carbono, semelhante à consulta entre datas. Mas acontece que não consigo mostrar os valores quando escolho um valor inicial e outro final.

 
Postado : 12/08/2020 4:36 pm
(@diovanino)
Posts: 16
Active Member
Topic starter
 

Mauro, boa noite!

Postei o meu modelo reduzido.

Poderia dar uma olhada nele para mim?

 

Sds,

 

 

 
Postado : 17/08/2020 7:22 pm
Reinaldo
(@rlm)
Posts: 246
Estimable Member
 

vide https://www.tomasvasquez.com.br/forum/viewtopic.php?f=20&t=7699

Reinaldo

 
Postado : 21/08/2020 12:30 pm