ROTINA VERIFICAR CAMPO NULO
Galera estou tentando criar uma rotina para pegar os dados do recordset e verificar se esta nulo e poder preencher o campo em questão, só que no momento que tento jogar o valor do campo para a função, ele da um erro, Type mismatch, quando o valor é nulo, a função que estou criando é essa
Private Function VerificaCampoNulo(ValorCampoBanco As Recordset, Optional NomeText As TextBox, Optional NomeMaskEdit As MaskEdBox, Optional CampoTipoTelefone As Boolean = False, Optional CampoTipoData As Boolean = False, Optional CampoTipoCep As Boolean = False, Optional CampoTipoTelefoneCelular As Boolean = False, Optional CampoTipoTexto As Boolean = False)
If CampoTipoTexto = True Then
If IsNull(ValorCampoBanco) Then
NomeText.Text = [Ô][Ô]
Else
NomeText.Text = ValorCampoBanco!NomeCampoBanco
End If
Else
NomeMaskEdit.Mask = [Ô][Ô]
If IsNull(ValorCampoBanco) Then
NomeMaskEdit.Text = [Ô][Ô]
Else
NomeMaskEdit.Text = ValorCampoBanco
End If
If CampoTipoData = True Then
NomeMaskEdit.Mask = [Ô]99/99/9999[Ô]
ElseIf CampoTipoCep = True Then
NomeMaskEdit.Mask = [Ô]99999-999[Ô]
ElseIf CampoTipoTelefone = True Then
NomeMaskEdit.Mask = [Ô]9999-9999[Ô]
ElseIf CampoTipoTelefoneCelular = True Then
NomeMaskEdit.Mask = [Ô]99999-9999[Ô]
End If
NomeMaskEdit.PromptInclude = True
End If
End Function
Como será que posso resolver esse problema?
Não quero ter que ir campo a campo verificar se esta nulo e fazer o que precisa ser feito, quero dar uma otimizada
Agradeço a todos
Private Function VerificaCampoNulo(ValorCampoBanco As Recordset, Optional NomeText As TextBox, Optional NomeMaskEdit As MaskEdBox, Optional CampoTipoTelefone As Boolean = False, Optional CampoTipoData As Boolean = False, Optional CampoTipoCep As Boolean = False, Optional CampoTipoTelefoneCelular As Boolean = False, Optional CampoTipoTexto As Boolean = False)
If CampoTipoTexto = True Then
If IsNull(ValorCampoBanco) Then
NomeText.Text = [Ô][Ô]
Else
NomeText.Text = ValorCampoBanco!NomeCampoBanco
End If
Else
NomeMaskEdit.Mask = [Ô][Ô]
If IsNull(ValorCampoBanco) Then
NomeMaskEdit.Text = [Ô][Ô]
Else
NomeMaskEdit.Text = ValorCampoBanco
End If
If CampoTipoData = True Then
NomeMaskEdit.Mask = [Ô]99/99/9999[Ô]
ElseIf CampoTipoCep = True Then
NomeMaskEdit.Mask = [Ô]99999-999[Ô]
ElseIf CampoTipoTelefone = True Then
NomeMaskEdit.Mask = [Ô]9999-9999[Ô]
ElseIf CampoTipoTelefoneCelular = True Then
NomeMaskEdit.Mask = [Ô]99999-9999[Ô]
End If
NomeMaskEdit.PromptInclude = True
End If
End Function
Como será que posso resolver esse problema?
Não quero ter que ir campo a campo verificar se esta nulo e fazer o que precisa ser feito, quero dar uma otimizada
Agradeço a todos
Onde que o erro acontece?
Jaba obrigado pelo retorno
Como comentei é quando tento jogar a informação para a rotina, ele simplesmente não entra na rotina e ja da o erro
Segue a linha
txtdtAposentado.Text = VerificaCampoNulo(tbConsulta.Fields([Ô]dtaposentado[Ô]), , txtdtAposentado, , True)
Aqui ele ja da o erro e não entra para a função onde tem o tratamento
é igual quando tem um IIF(isnull(tabela!campo),[Ô]Nulo[Ô],[Ô]Tem Dados[Ô]) por exemplo, isso não funciona, ai tem que fazer um if normal
Como comentei é quando tento jogar a informação para a rotina, ele simplesmente não entra na rotina e ja da o erro
Segue a linha
txtdtAposentado.Text = VerificaCampoNulo(tbConsulta.Fields([Ô]dtaposentado[Ô]), , txtdtAposentado, , True)
Aqui ele ja da o erro e não entra para a função onde tem o tratamento
é igual quando tem um IIF(isnull(tabela!campo),[Ô]Nulo[Ô],[Ô]Tem Dados[Ô]) por exemplo, isso não funciona, ai tem que fazer um if normal
Acho que o erro acontece por que em vez de você passar um recordset, está passando um campo do banco. Tenta assim pra ver se vai:
Private Function VerificaCampoNulo([txt-color=#e80000]ValorCampoBanco As Field[/txt-color], Optional NomeText As TextBox, Optional NomeMaskEdit As MaskEdBox, Optional CampoTipoTelefone As Boolean = False, Optional CampoTipoData As Boolean = False, Optional CampoTipoCep As Boolean = False, Optional CampoTipoTelefoneCelular As Boolean = False, Optional CampoTipoTexto As Boolean = False)
Private Function VerificaCampoNulo([txt-color=#e80000]ValorCampoBanco As Field[/txt-color], Optional NomeText As TextBox, Optional NomeMaskEdit As MaskEdBox, Optional CampoTipoTelefone As Boolean = False, Optional CampoTipoData As Boolean = False, Optional CampoTipoCep As Boolean = False, Optional CampoTipoTelefoneCelular As Boolean = False, Optional CampoTipoTexto As Boolean = False)
é isso mesmo, vlw pela dica, erro de principiante, más estou com cabeça cheia e nem vi isso
Vlw mesmo
Vlw mesmo
Tópico encerrado , respostas não são mais permitidas