MS Access - ouvrir un formulaire en prenant une valeur de champ à partir d'une forme antérieure
J'ai un formulaire dans une base de données MS Access qui répertorie tous les propriétaires fonciers consulté pour une nouvelle ligne d'électricité. À la fin de chaque ligne est un bouton qui ouvre une autre forme, montrant les détails de la consultation, les offres faites etc.
Je suis en train d'utiliser visual basic dans microsoft Access pour prendre contactID et automatiquement le mettre dans un champ dans le formulaire de détails, de sorte que les propriétaires fonciers de la consultation de l'détails s'affiche automatiquement. Je ne suis pas un programmeur vb (j'ai un comp sci degré principalement en Java et je travaille actuellement comme analyste SIG, mais c'est une petite entreprise, j'ai donc été demandé à obtenir une base de données Access de travail).
Je veux dire
[detailsForm]![contactID] = [landownerlist]![ID]
de façon vb et access va être heureux avec. Ensuite, je peux voir si je suis sur la bonne voie, et si elle sera effectivement le travail! Ce que j'ai ci-dessus n'est pas réellement le travail. Il ne compile pas.
De Kaliana
OriginalL'auteur | 2009-04-06
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez ouvrir un formulaire à un nouveau record, et pour régler l'ID de là, vous pouvez utiliser Ouvrirargs, un argument de Openform:
La forme ouverte à l'auraient également besoin d'un peu de code:
Il est également possible de trouver:
ou compléter une valeur:
sur le formulaire sera ouvert à partir du formulaire appelant.
OriginalL'auteur Fionnuala
Vous voudrez peut-être chercher dans le code qui est à l'origine de ces boutons. Si vous utilisez un docmd.openform vous pouvez définir le 4ème Paramètre à une clause where sur l'ouverture du formulaire suivant.
Cela suppose contact ID est numérique et ne nécessite pas de guillemets.
OriginalL'auteur JeffO
Comme précédemment posté Ouvrirargs est excellent pour cela. Un truc que j'ai appris, c'est qu'il est facile de passer plusieurs paramètres, si nécessaire comme une chaîne délimitée (virgule par exemple), la forme de cibles peuvent alors accéder à ces valeurs à l'aide de la fonction Split() de la fonction ainsi:
etc.
C'est l'air du code afin de vérifier le fichier d'aide pour Split().
Il est également possible de passer des objets en Ouvrirargs ainsi, il exige de manuel pointeur de la mémoire de la manipulation et je n'ai pas le code à la main, mais je suis sûr d'une recherche sur Google trouverez quelques exemples. Cette technique peut provoquer quelques plantages aléatoires. Être Averti!
OriginalL'auteur Simon
L'aide d'ouvrir args est la solution communément acceptée, comme évoqué par d'autres. Cette tombe sous la catégorie de "l'édification":) l'Un des problèmes avec l'aide d'ouvrir args est que si vous êtes prudent avec vos commentaires, il est facile d'oublier ce qu'ils avaient à dire. Avez-vous été en passant plus d'un? Qui est qui? Comment ai-je fais ici? Comment ai-je fais là, etc. Pour mon propre argent, je standardisé (ci-dessous) donc je peux toujours passer plus d'un argument sans peur, et quand je relis mon code un an à partir de maintenant, je peux encore voir de quoi il s'agit, sans un énorme problème:
OU Sans l'aide d'Ouvrir Args ouvrir un autre formulaire comme si c'était une classe de Créer un module appelé GlobalVars qui comprend cette ligne: Public Form_ProviderFileContents1 comme Form_ProviderFileContents1 Ensuite, dans le code que vous souhaitez ouvrir une autre forme d'utilisation: Set GlobalVars.Form_ProviderFileContents1 = New Form_ProviderFileContents1 La " modifier le formulaire que vous avez tout juste d'ouvrir mais que vous souhaitez. Avec Form_ProviderFileContents1 .Visible = True .Les Témoins("ProviderID") = Me.ProviderID Fin Ou l'utilisation de méthodes/preoperties sur le formulaire
OriginalL'auteur Oorang