Erro de compilação ao executar um relatório
Quando vou executar o relatório, me dá essa mensagem:
Não consegui carregar a imagem do erro, então segue os dizeres:
Compile Error:
Method or data member not found
Que mensagem é essa? Como resolvo?
Esse é o código do botão quando eu clico:
Então aparece a mensagem e quando dou OK para prosseguir cai nessas linhas e em destaque essa: optNumeroRegistro.Value. Confesso não tenho nem noção.
Não consegui carregar a imagem do erro, então segue os dizeres:
Compile Error:
Method or data member not found
Que mensagem é essa? Como resolvo?
Esse é o código do botão quando eu clico:
Private Sub OKButton_Click() If Not ValidarCampos Then Exit Sub End If If optAnexo.Value = True Then 'anexo If optAtivos.Value = True Then PortariaAtivos ElseIf optinativo.Value = True Then PortariaInativos End If 'listagem ElseIf optListagem.Value = True Then If optAtivos.Value = True Then PortariaListagemAtivos ElseIf optinativo.Value = True Then PortariaListagemInativos End If End If End Sub
Então aparece a mensagem e quando dou OK para prosseguir cai nessas linhas e em destaque essa: optNumeroRegistro.Value. Confesso não tenho nem noção.
Public Function ValidarCampos() As Boolean If optTodos.Value = False And optNumeroRegistro.Value = False And optSelecaoRegistro.Value = False Then MsgBox "Selecione uma opção para o relatório." ValidarCampos = False Exit Function ElseIf optNumeroRegistro.Value = True Then If txtDe.Text = "" Or txtAte.Text = "" Then MsgBox "Digite a faixa de registros para o relatório." txtDe.SetFocus ValidarCampos = False Exit Function End If ElseIf optSelecaoRegistro.Value = True Then If msGrupoFuncionariosSelecionados = "" Then MsgBox "Selecione os registros para o relatório." cmdPesquisa.SetFocus ValidarCampos = False Exit Function End If End If ValidarCampos = True End Function
Pjava
Curtidas 0
Respostas
Daniel Araújo
27/04/2017
Boa noite!
A mensagem está dizendo que um método ou atributo não foi encontrado. Qual a linha exata que o compilador está reclamando?
Posta a imagem do erro nesse site:
https://uploaddeimagens.com.br
Aí tu manda só link da imagem pra gente analisar.
Se a resposta for útil não esqueça de dar um like!
A mensagem está dizendo que um método ou atributo não foi encontrado. Qual a linha exata que o compilador está reclamando?
Posta a imagem do erro nesse site:
https://uploaddeimagens.com.br
Aí tu manda só link da imagem pra gente analisar.
Se a resposta for útil não esqueça de dar um like!
GOSTEI 0
Fabiano Carvalho
27/04/2017
Ultilize breakpoint pra pegar a linha do erro, ou então window immediate para saber o que cada linha retorna!
GOSTEI 0
Pjava
27/04/2017
Ok pessoal, vou postar a imagem, mas a imagem é apenas um MessageBox com os dizeres que escrevi, pois não estava conseguindo postar a imagem. Vou investigar mais e vejo. Eu nunca em minha vida havia trabalhado com VB e achei que nunca iria acontecer, mas peguei um projeto que a priori era somente Sql Server, aí o gestor pediu uma alteração e essa alteração precisava mexer nos fontes da aplicação, que tem data e hora para morrer, mas até vai-se alterando. Legado é Legado.
GOSTEI 0
Pjava
27/04/2017
Esse é o código do botão Imprimir
Coloquei o Breakpoint nessa linha If Not ValidarCampos Then e quando dou um Shift+F8, dá a mensagem do erro. Fui na função ValidarCampos e coloquei o break na primeira linha. Conclusão, nem passa por ele, já explode na tela o erro. Abaixo o código da função:
Private Sub OKButton_Click() If Not ValidarCampos Then Exit Sub End If If optAnexo.Value = True Then 'anexo If optAtivos.Value = True Then PortariaAtivos ElseIf optinativo.Value = True Then PortariaInativos End If 'listagem ElseIf optListagem.Value = True Then If optAtivos.Value = True Then PortariaListagemAtivos ElseIf optinativo.Value = True Then PortariaListagemInativos End If End If End Sub
Coloquei o Breakpoint nessa linha If Not ValidarCampos Then e quando dou um Shift+F8, dá a mensagem do erro. Fui na função ValidarCampos e coloquei o break na primeira linha. Conclusão, nem passa por ele, já explode na tela o erro. Abaixo o código da função:
Public Function ValidarCampos() As Boolean If optTodos.Value = False And optNumeroRegistro.Value = False And optSelecaoRegistro.Value = False Then MsgBox "Selecione uma opção para o relatório." ValidarCampos = False Exit Function ElseIf optNumeroRegistro.Value = True Then If txtDe.Text = "" Or txtAte.Text = "" Then MsgBox "Digite a faixa de registros para o relatório." txtDe.SetFocus ValidarCampos = False Exit Function End If ElseIf optSelecaoRegistro.Value = True Then If msGrupoFuncionariosSelecionados = "" Then MsgBox "Selecione os registros para o relatório." cmdPesquisa.SetFocus ValidarCampos = False Exit Function End If End If ValidarCampos = True End Function
GOSTEI 0
Pjava
27/04/2017
Resolvi alguns erros, mas ainda está sem funcionar.
DT_LAUDO não é uma data, é uma string. Esse parâmetro eu coloquei, que é a minha alteração. Se eu executo a proc no banco, passando esse parâmetro, funciona. me retorna os dados esperados. Mas na aplicação não rola. Por deconhecer o VB, fico perdido no debug, apesar de já conhecer um pouco, mas eu não sei se preciso fazer mais coisas. essa é a declaração da Proc com meus dois parâmetros adicionados e o tal do prm.~
DT_LAUDO não é uma data, é uma string. Esse parâmetro eu coloquei, que é a minha alteração. Se eu executo a proc no banco, passando esse parâmetro, funciona. me retorna os dados esperados. Mas na aplicação não rola. Por deconhecer o VB, fico perdido no debug, apesar de já conhecer um pouco, mas eu não sei se preciso fazer mais coisas. essa é a declaração da Proc com meus dois parâmetros adicionados e o tal do prm.~
Public Function RelPortariaInativos(ByVal ID_XFC_INICIAL As Long, ByVal ID_XFC_FINAL As Long, ByVal data_periodo As Date, ByVal data_periodo_fim As Date, ByVal ID_EMP As Integer, ByVal ID_UNI_EMP As Integer, Optional ByVal ID_XFC_GRP As String = "", Optional ByVal DT_ADM As Date, Optional ByVal DT_DE_LAUDO As String, Optional ByVal DT_ATE_LAUDO As String) As Recordset On Error GoTo e_List Dim cn As Connection Dim cmd As Command Dim rs As Recordset Set rs = New Recordset ' Prepara conexao com a Base de dados Set cn = New Connection cn.CursorLocation = adUseClient Set cmd = New Command Dim prm As Parameter cmd.CommandText = "SP_CMO_SEL_PORTARIA_INATIVOS" cmd.CommandType = adCmdStoredProc Set prm = cmd.CreateParameter("@ID_XFC_INICIAL", adInteger, adParamInput, , ID_XFC_INICIAL) cmd.Parameters.Append prm Set prm = cmd.CreateParameter("@ID_XFC_FINAL", adInteger, adParamInput, , ID_XFC_FINAL) cmd.Parameters.Append prm Set prm = cmd.CreateParameter("@data_periodo", adDBTimeStamp, adParamInput, , data_periodo) cmd.Parameters.Append prm Set prm = cmd.CreateParameter("@data_periodo_fim", adDBTimeStamp, adParamInput, , data_periodo_fim) cmd.Parameters.Append prm Set prm = cmd.CreateParameter("@ID_EMP", adInteger, adParamInput, , ID_EMP) cmd.Parameters.Append prm Set prm = cmd.CreateParameter("@ID_UNI_EMP", adInteger, adParamInput, , ID_UNI_EMP) cmd.Parameters.Append prm Set prm = cmd.CreateParameter("@ID_XFC_GRP", adVarChar, adParamInput, 1000, ID_XFC_GRP) cmd.Parameters.Append prm Set prm = cmd.CreateParameter("@DT_ADM", adDBTimeStamp, adParamInput, , DT_ADM) cmd.Parameters.Append prm '-----------Alterado para receber a data de laudo(Paulo Correa)--------------- Set prm = cmd.CreateParameter("@DT_DE_LAUDO", adVarChar, adParamInput, , DT_DE_LAUDO) cmd.Parameters.Append prm Set prm = cmd.CreateParameter("@DT_ATE_LAUDO", adVarChar, adParamInput, , DT_ATE_LAUDO) cmd.Parameters.Append prm '----------------------------------------------------------------------------- cn.Open GetConnectionString() Set cmd.ActiveConnection = cn cmd.CommandTimeout = 0 'Executa a operacao e retorna um RecordSet rs.Open cmd, , adOpenStatic, adLockReadOnly Set RelPortariaInativos = rs Set cmd = Nothing Set cn = Nothing Exit Function e_List: ' Captura erro If Not cn Is Nothing Then If cn.Errors.Count > 0 Then frmErro.txtNroDescricao = cn.Errors(0).NativeError frmErro.txtMensagem = cn.Errors(0).Source & "-" & cn.Errors(0).Description End If Else frmErro.txtMensagem = Err.Source & "-" & Err.Description frmErro.txtNroDescricao = Err.Number End If frmErro.Show vbModal ' Limpa Variaveis Set cmd = Nothing Set cn = Nothing End Function
GOSTEI 0