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. P>
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? p>
J'ai essayé p>
3 Réponses :
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
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
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