Question

J'ai donc une forme d'entrée que je veux utiliser pour mettre à jour une table avec certains champs d'informations. Je l'ID de l'enregistrement à venir automatiquement dans une zone de texte. J'ai trois zones de texte que je dois ajouter à la table (à l'exception de l'ID) sur un bouton clic.

Name
Date
Method

sont les noms de champ.

As_Name
As_Date
As_Method

sont les noms de zone de texte

Le nom du tableau est POC et l'ID est POC_ID (son un autonumber).

Je ne veux pas que ces objets (boîtes de texte) pour être lié à la table parce que c'est une forme un peu « pop-up » distinct qui vient d'une forme que la table, et je veux que l'entrée soit par rapport au POC_ID qui est déjà sélectionné via la forme originale.

Alors, comment puis-je écrire l'ABV pour que cela 1) Assurez-vous que les enregistrements n'existent déjà .... 2) mettre à jour les champs (ci-dessus) avec l'entrée de données des zones de texte (ci-dessus). Je veux être en mesure de l'utiliser avec un bouton clic ....


EDIT:

en fait il est une table à deux pas; J'ai deux formes que je veux être en mesure d'envoyer des informations à la même table (différentes informations que). ce db a déjà été construit par quelqu'un d'autre et sais que j'ai été deamed de le prendre plus.

Je dois ajouter une deuxième petite forme de pop-up pour plus d'informations à ajouter en fonction des nouvelles exigences (il n'y a littéralement pas où me placer ce sur l'autre). Je l'ai déjà fait, et utilisé une approche objet suggéré de faire référence aux premières formes (dont ce second ressorts de forme « pop-up » de) pour ajouter les champs id relatifs. Maintenant, j'ai cette deuxième petite forme de pop-up qui ont juste demandé trois valeurs à entrer (qui sont ceux énumérés ci-dessus).

Je viens tout simplement ne sais pas comment lier la zone de texte, avec un champ de sorte qu'une fois qu'un utilisateur entre les informations, clique sur « enregistrer » enregistre les informations sur la table par rapport à la TripID qui est là (mentionna au dessus de). la seule façon que je sais comment obtenir les zones de texte pour enregistrer des données sur la table est d'utiliser le générateur / assistant lorsque je crée un nouveau.

Je voudrais savoir comment lier un objet (zone de texte, cmb, liste) etc sur une forme, à une table avec une méthode « On Cliquez » pour que je puisse utiliser un bouton de sauvegarde. Fondamentalement, c'est-il!

Était-ce utile?

La solution

Toujours pas sûr de comprendre votre situation, mais permettez-moi de vous donner les grandes lignes d'une réponse. Si mon plan est pas assez proche, s'il vous plaît expliquer où je me suis égaré.

Votre formulaire parent, frmParent, a un bouton de commande (cmdMoreFields) qui ouvre le formulaire enfant (frmChild) où vous entrez des valeurs pour 3 champs supplémentaires dans le dossier actuellement affiché dans frmParent. Après que l'utilisateur entre ces valeurs frmChild (dans les contrôles de zone de texte nommé As_Name, As_Date et As_Method), elle cliquez sur un bouton de commande (cmdSave) pour stocker ces valeurs aux champs (nom, date et méthode) dans le tableau POC et près frmChild. En outre, frmParent comprend une zone de texte (txtPk_field) qui maintient la valeur de la clé primaire (pk_field de champ dans le tableau POC) de l'enregistrement en cours.

Cependant, je ne suis pas sûr de champ / commande que vous utilisez pour txtPk_field, et doute que la valeur est disponible si le dossier en cours n'a pas encore été enregistré. Alors, je vais vous proposer ce code pour le cmdMoreFields « sur clic » l'événement:

If Me.Dirty Then Me.Dirty = False
DoCmd.OpenForm "frmChild"

Dans le "clic sur" cas de cmdSave (sur frmChild), le code essayer similaire à:

Dim strSql As String
strSQL = "UPDATE POC SET [Name] = """ & Me.As_Name & """, [Date] =#" _
    & Me.As_Date & "#, Method = """ & Me.As_Method & """ WHERE pk_field = " _
    & Forms!frmParent.txtPk_field & ";"
Debug.Print strSql
CurrentDb.Execute strSql, dbFailOnError
DoCmd.Close

Si cette approche fonctionne, pensez à passer la valeur pk_field à frmChild avec OpenArgs, comme suggéré remou.

Note: Je supposais le type de données pour le nom du texte, la date est la date / heure, et la méthode est un texte. Vous devrez modifier l'instruction UPDATE délimiteurs pour tous les champs dont les types de données diffèrent de mes suppositions.

Autres conseils

La méthode OpenForm de DoCmd permet plusieurs arguments, y compris le cas et OpenArgs. Vous pouvez profiter de ces derniers.

Cependant, quelque chose semble être tout à fait mal à la conception de votre table que vous semblez tenir les mêmes informations dans deux tableaux et pour aucune raison indiquée. Avez-vous lu http://www.r937.com/relational.html ?

Je suggère que la conception que vous avez besoin inclut probablement un POC_ID de champ numérique qui est une clé étrangère à la table principale.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top