MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

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
    avatar
    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, 13: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: Qua 16 Ago 2017, 12:21