Erro de compilação ao executar um relatório
27/04/2017
0
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
Posts
27/04/2017
Daniel Araújo
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!
28/04/2017
Fabiano Carvalho
28/04/2017
Pjava
28/04/2017
Pjava
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
28/04/2017
Pjava
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
Clique aqui para fazer login e interagir na Comunidade :)