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