Peguei esse código para fazer alterações e dar manutenção, portanto não fui eu quem definiu os controles. Mas necessito fazer rodar
CPFCNPJ = TratarDadoADO(TELA.Area(6, 47, 6, 60), adDouble) ' capturado dessa forma da tela de um sistema
Esse valor é utilizado para montar um recordset:
Set RS = ("SELECT CLI_CPFCNPJ, CLI_NOME FROM CLIENTES WHERE CLI_CPFCNPJ = " & CPFCNPJ)
Mas o valor CPFCNPJ também é repassado por referência para várias funções, conforme abaixo:
Public Function CalcularTipoPessoa(ByVal CPFCNPJ As String) As Byte
Dim NOVO_CPFCNPJ As String
Dim TAMANHO As Integer
Dim DIGITADO As String
Dim CALCULADO As String
CPFCNPJ = CDbl(SubstituirCaracteres(CPFCNPJ, ".-/", ""))
TAMANHO = Len(CPFCNPJ)
If TAMANHO <= 11 Then
NOVO_CPFCNPJ = Format(CPFCNPJ, "00000000000")
TAMANHO = Len(NOVO_CPFCNPJ)
DIGITADO = Right(NOVO_CPFCNPJ, 2)
CALCULADO = CalcularDVCPFCNPJ(Left(NOVO_CPFCNPJ, TAMANHO - 2), 1)
If DIGITADO = CALCULADO Then
CalcularTipoPessoa = 1
Else
NOVO_CPFCNPJ = Format(CPFCNPJ, "00000000000000")
TAMANHO = Len(NOVO_CPFCNPJ)
DIGITADO = Right(NOVO_CPFCNPJ, 2)
CALCULADO = CalcularDVCPFCNPJ(Left(NOVO_CPFCNPJ, TAMANHO - 2), 1)
If DIGITADO = CALCULADO Then
CalcularTipoPessoa = 2
Else
CalcularTipoPessoa = 3
End If
End If
Else
NOVO_CPFCNPJ = Format(CPFCNPJ, "00000000000000")
TAMANHO = Len(NOVO_CPFCNPJ)
DIGITADO = Right(NOVO_CPFCNPJ, 2)
CALCULADO = CalcularDVCPFCNPJ(Left(NOVO_CPFCNPJ, TAMANHO - 2), 1)
If DIGITADO = CALCULADO Then
CalcularTipoPessoa = 2
Else
CalcularTipoPessoa = 3
End If
End If
End Function
Como posso contornar o problema?
Grato pela ajuda