MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Alteração das propriedades de tabelas pelo VBA

    Compartilhe

    Uilson Brasil
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 999
    Registrado : 23/04/2013

    Alteração das propriedades de tabelas pelo VBA

    Mensagem  Uilson Brasil em Qua 15 Abr 2015, 04:59

    Boa noite! Mestres

    Estou com uma dificuldade aqui já até quebrei cabeça e não consigo finalizar.
    A função abaixo é o último passo de uma rotina de atualização de Base de Dados.
    Estou tendo um problema com a alteração da propriedade "DecimalPlaces", onde traz o erro em tempo de execução "3367"
    reportando que não é possível acrescentar. Um objeto com o mesmo nome já faz parte da coleção
    .
    Se algum mestre tiver uma solução, agradeço desde já.

    Código:
    Public Sub fncProp()
    Dim bd As dao.Database
    Dim prp As dao.Property
    Set bd = OpenDatabase(txtBD, False, False, ";PWD=" & xSenhaBD & "")
    'On Error Resume Next
    '------------------------------------------------------------------------------------------------
    'Configurando a propriedade Caption do campo
    '------------------------------------------------------------------------------------------------
    Set prp = bd.TableDefs(NTABELA).Fields(NCAMPO).CreateProperty("Caption", dbText, LCAMPO)
    bd.TableDefs(NTABELA).Fields(NCAMPO).Properties.Append prp
    '------------------------------------------------------------------------------------------------
    'Configurando a propriedade Máscara de Entrada do campo
    '------------------------------------------------------------------------------------------------
    Set prp = bd.TableDefs(NTABELA).Fields(NCAMPO).CreateProperty("InputMask", dbText, MASENT)
    bd.TableDefs(NTABELA).Fields(NCAMPO).Properties.Append prp
    '------------------------------------------------------------------------------------------------
    'Configurando a propriedade Format do campo
    '------------------------------------------------------------------------------------------------
    Set prp = bd.TableDefs(NTABELA).Fields(NCAMPO).CreateProperty("Format", dbText, FCAMPO)
    bd.TableDefs(NTABELA).Fields(NCAMPO).Properties.Append prp
    '------------------------------------------------------------------------------------------------
    'Configurando a propriedade Casa Decimais (O ERRO ESTÁ AQUI)
    '------------------------------------------------------------------------------------------------
    Set prp = bd.TableDefs(NTABELA).Fields(NCAMPO).CreateProperty("DecimalPlaces", dbSingle, CASDESC)
    bd.TableDefs(NTABELA).Fields(NCAMPO).Properties.Append prp
    '------------------------------------------------------------------------------------------------
    'Esvazia as variáveis, limpando a memória
    '------------------------------------------------------------------------------------------------
    Set prp = Nothing
    Set bd = Nothing
    End Sub


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3350
    Registrado : 04/04/2010

    Re: Alteração das propriedades de tabelas pelo VBA

    Mensagem  Avelino Sampaio em Qua 15 Abr 2015, 07:44

    Olá

    A mensagem informa que a propriedade já existe e não precisa ser recriada. Para alterar a propriedade já existente, veja o exemplo abaixo:

    currentdb.TableDefs(nTabela).Fields(nCampo).Properties("decimalplaces") = 2

    Sucesso!


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    Uilson Brasil
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 999
    Registrado : 23/04/2013

    Re: Alteração das propriedades de tabelas pelo VBA

    Mensagem  Uilson Brasil em Qua 15 Abr 2015, 15:17

    Grande Avelino,

    O que ocorre agora:
    No primeiro momento reporta o "Erro em tempo de execução 3270: Propriedade não encontrada.". Porém se vou na tabela e altero a propriedade para qualquer valor, é como se eu estivesse criando a propriedade. Após isso executo novamente e o código funciona perfeitamente alterando a propriedade.

    Alguma solução para esta situação?


    Abraços,


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access

    Uilson Brasil
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 999
    Registrado : 23/04/2013

    Re: Alteração das propriedades de tabelas pelo VBA

    Mensagem  Uilson Brasil em Qui 16 Abr 2015, 12:41

    up


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access

    Uilson Brasil
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 999
    Registrado : 23/04/2013

    Re: Alteração das propriedades de tabelas pelo VBA

    Mensagem  Uilson Brasil em Dom 26 Abr 2015, 15:31

    Ainda tentando uma solução ...


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access

      Data/hora atual: Qui 08 Dez 2016, 23:54