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

    Erro '3072': Expressão muito complexa

    Compartilhe

    Gabriel Brunichaki
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 139
    Registrado : 11/12/2015

    Erro '3072': Expressão muito complexa

    Mensagem  Gabriel Brunichaki em Sex 04 Mar 2016, 16:22

    Boa tarde!

    Alguém consegue me auxiliar?

    Tenho uma tabela com 54 campos (col1 a col54) do tipo Sim/Não.

    Em um formulário, tenho 54 CheckBox que inicializam marcados ou não de acordo com o valor das colunas da tabela.

    Utilizei o exemplo do Avelino (http://www.usandoaccess.com.br/dicas/gerar-milhoes-registros-teste-access.asp?id=1 - Dica 2 b), resultando no seguinte procedimento:

    Sub ModifyWhenOpen(argSubForm, argControlType, argCodeTable As Integer)

       Dim colunas As String
       Dim s
       Dim i As Integer
       Dim ctl As Control

       i = 1

       For Each ctl In argSubForm
           If ctl.ControlType = argControlType Then
               colunas = colunas & "[col" & i & "] & '|' & "
               i = i + 1
           End If
       Next ctl

       colunas = Left( colunas, Len(colunas) - 8 )
       colunas = DLookup(colunas, "TBL_COLUMNS_CONFIG", "codTable = " & argCodeTable)

       s = Split(colunas, "|")

       i = 0

       For Each ctl In argSubForm
           If ctl.ControlType = acCheckBox Then
               If s(i) = -1 Then
                   ctl.Value = -1
               Else
                   ctl.Value = 0
               End If

               i = i + 1
           End If
       Next ctl

    End Sub


    E depois chamo o procedimento no evento Ao Carregar do formulário que possui as 54 CheckBoxes.

    Private Sub Form_Load()

       ModifyWhenOpen Me.Controls, acCheckBox, 1

    End Sub


    No entanto, gera o erro descrito no título do tópico... Já testei com tabelas que contêm menos colunas (11) e obtive o resultado esperado. Se o problema for devido ao número de colunas da tabela, o que é possível se fazer?

    Fico no aguardo!


    .................................................................................
    “Não podemos solucionar problemas usando a mesma forma de raciocínio que usamos quando os criamos.”
    – Albert Einstein

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