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!
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!