Jump to content
Fórum Script Brasil
  • 0
Sign in to follow this  
wootzor

(Resolvido) Passar informação entre Formulários

Question

Tenho um conjunto de check boxes num formulário e pretendo que, ao clicar num botão, seja aberto um segundo formulário que possa aceder à informação das caixas que foram marcadas na janela anterior. Qual seria a melhor forma de conseguir tal comportamento?

Tentei fazer através da criação de um array onde colocasse os nomes das check boxes que foram activadas mas acontece que no VBA não se consegue criar um array dinâmico tão facilmente como pensava.

Segue o código que tenho:

Dim ctrl As Access.Control
Dim i As Integer
Dim arrTabs(i) As String

Private Sub btnAdicionar_Click()
    For Each ctrl In Controls
        If TypeName(ctrl) = "CheckBox" And ctrl.Value = True Then
            ReDim Preserve arrTabs(i + 1)
            arrTabs(i + 1) = ctrl.Name
        End If
        Debug.Print arrTabs
    Next ctrl
    'DoCmd.OpenForm "frmNovo", acFormPivotTable, , , , , arrTabs
End Sub

Li que a instrução ReDim Preserve não é a melhor opção do ponto de vista do desempenho mas foi o caminho que me pareceu mais directo para obter o que pretendia. No entanto não tive sucesso.

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Acabei por resolver de outra forma e colocar um controlo toolStrip no próprio formulário. Fica o código para mostrar apenas as abas que correspondem às caixas seleccionadas (assumindo que as caixas seguem o padrão chkNome e as abas apenas Nome):

Private Sub btnAdicionar_Click()
    For Each ctrl In Controls
        If TypeName(ctrl) = "CheckBox" Then
            If ctrl = True Then
                tabName = Right(ctrl.Name, Len(ctrl.Name) - 3) 'eliminar a string "chk" do nome do objecto
                Me.Controls(tabName).Visible = True
                tsObj.Visible = True 'toolStrip
            End If
        End If
    Next ctrl
End Sub

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  



  • Forum Statistics

    • Total Topics
      148420
    • Total Posts
      643845
×
×
  • Create New...