0
votes

Existe-t-il un moyen facile de déterminer quelle page dans un onglet est ouverte pour lire la table dans l'accès?

J'ai une forme avec un contrôle de tabulation pour les paiements. Il existe une page séparée pour les paiements actuels, futurs et passés que chaque onglet a une table qui a un champ commun appelé ID.

J'ai un bouton qui ouvre un autre formulaire avec des informations plus détaillées sur le paiement et utilise l'ID dans une requête pour obtenir les données.

puisque chaque page utilise / a le même identifiant est une pièce d'identité. façon de rechercher l'identifiant, quelle que soit la page ouverte?

J'ai essayé xxx


0 commentaires

3 Réponses :


1
votes

Le contrôle de l'onglet et ses pages ne sont pas pertinents lors de la référencement des contrôles assis sur chaque page. Besoin de connaître le nom du conteneur de sous-formulaire.

La valeur de la commande de onglet est l'index de la page avec la mise au point. Utilisez donc cette valeur avec la collecte des pages pour accroître la légende de cette page. En supposant que chaque page de contrôle des onglets comporte le contrôle du conteneur de sous-forme avec un formulaire sous la forme de SourceObject et de la mesure de la page est la même que le nom du conteneur de sous-formulaire sur cette page Considérer: P>

strSubform = Me.TabBills.Pages(Me.TabBills.Value).Caption
intID = Me(strSubform)!ID


0 commentaires

1
votes

Je le ferais avec une approche plus dynamique.

Procédure d'aide p> blockQuote>

Cette procédure tente de trouver un sous-formulaire de contrôle dans une page. p>

S'il y a plus d'une sous-forme de contrôle dans une page, il renvoie la première trouvée. P> xxx pré>

Utilisation p> blockQuote> xxx pré>

Utilisation plus compacte p> blockquote>

Cela signifie que vous êtes sûr qu'il existe toujours un contrôle sous forme de formulaire et contient une forme. P>

Dim currentID As Long
currentID = currentSubform.Controls("ID").Value


0 commentaires

1
votes

oui il y a.

avoir une fonction pour rechercher l'ID et l'appeler à partir de votre bouton: P>

Private Sub YourButton_Click()

    MsgBox GetCurrentID()

End Sub


Public Function GetCurrentID() As Long

    Dim Control     As Control
    Dim CurrentID   As Long

    For Each Control In Me!YourTabControl.Pages(Me!YourTabControl.Value).Controls
        If Control.ControlType = acSubform Then
            Exit For
        End If
    Next
    If Not Control Is Nothing Then
        CurrentID = Nz(Control.Form!ID1.Value)
    End If

    GetCurrentID = CurrentID

End Function


0 commentaires