Alimenter une table par deux formulaires différents
rokson
Messages postés
9
Statut
Membre
-
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis bloqué sur ce problème.
J'ai deux formulaires différents qui m'affichent des données de tables différentes sans aucunes relations.
J'ai crée une nouvelle table nommé NEW où je récupère la valeurs des champs de mes deux formulaires.
Pour chacun des formulaire, je récupère grâce à un code relié à un bouton du formulaire la valeur des champs. Cela marche bien !! Sauf que comme j'ai deux formulaires différents , j'ai donc deux boutons d'enregistrement qui alimentent la table ce qui fait que les résultats enregistrés sur ma table NEW ne sont pas sur la même ligne.
Je cherche une solution qui me permettrait d'avoir soit un seul bouton d'enregistrement pour les deux formulaires(je rappelle qu'ils sont différents sans aucuns liens ) ou quelque chose qui me permettrait d'activer simultanément les deux boutons d'enregistrement de sorte à avoir les résultats sur la même ligne.
Je vous remercie d'avance pour l'attention qui sera portée à ma question et reste à disposition pour réexpliquer au besoin mon problème.
Je suis bloqué sur ce problème.
J'ai deux formulaires différents qui m'affichent des données de tables différentes sans aucunes relations.
J'ai crée une nouvelle table nommé NEW où je récupère la valeurs des champs de mes deux formulaires.
Pour chacun des formulaire, je récupère grâce à un code relié à un bouton du formulaire la valeur des champs. Cela marche bien !! Sauf que comme j'ai deux formulaires différents , j'ai donc deux boutons d'enregistrement qui alimentent la table ce qui fait que les résultats enregistrés sur ma table NEW ne sont pas sur la même ligne.
Je cherche une solution qui me permettrait d'avoir soit un seul bouton d'enregistrement pour les deux formulaires(je rappelle qu'ils sont différents sans aucuns liens ) ou quelque chose qui me permettrait d'activer simultanément les deux boutons d'enregistrement de sorte à avoir les résultats sur la même ligne.
Je vous remercie d'avance pour l'attention qui sera portée à ma question et reste à disposition pour réexpliquer au besoin mon problème.
A voir également:
- Alimenter une table par deux formulaires différents
- Table ascii - Guide
- Table des matières word - Guide
- Deux ecran pc - Guide
- Comment faire deux colonnes sur word - Guide
- Nombre de jours entre deux dates excel - Guide
3 réponses
Bonjour,
Les enregistrements dans votre table NEW sont en ajout ou cela peut être a la suite de motif d'un enregistrement ??
Les enregistrements dans votre table NEW sont en ajout ou cela peut être a la suite de motif d'un enregistrement ??
Bonjour,
Merci encore pour vos différentes réponses.
Suite à votre proposition , voici les codes de mes deux formulaires:
'Formulaire 1
Private Sub Commande9_Click()
' Quelques variables
Dim rst As dao.Recordset
' Ouvrir la table en lecture/écriture
Set rst = CurrentDb.OpenRecordset("TABLE NEW", dbOpenDynaset)
' Créer un enregistrement dans la table
rst.AddNew
' Alimenter les champs
rst("Identifiant") = Me.attestation ' formulaire 1
rst("Code") = Me.lolou 'formulaire 1
rst("Lieu") = Forms![formulaire 2]![lieu] 'formulaire 2
rst("Adresse") = Forms![formulaire 2]![adresse] 'formulaire 2
' Valider
rst.Update
rst.Close
Set rst = Nothing
MsgBox "Opération terminée !", vbInformation
End Sub
'Formulaire 2
Private Sub Commande10_Click()
' Quelques variables
Dim rst As dao.Recordset
' Ouvrir la table en lecture/écriture
Set rst = CurrentDb.OpenRecordset("TABLE NEW", dbOpenDynaset)
' Créer un enregistrement dans la table
rst.AddNew
' Alimenter les champs
rst("Lieu") = Me.lieu ' formulaire 2
rst("Adresse") = Me.adresse 'formulaire 2
rst("Identifiant") = Forms![formulaire 1]![attestation] 'formulaire 1
rst("Code") = Forms![formulaire 1]![lolou] 'formulaire 1
' Valider
rst.Update
rst.Close
Set rst = Nothing
MsgBox "Opération terminée !", vbInformation
End Sub
J'ai pour le formulaire 1 , le message d'erreur suivant:
Microsoft Access ne trouve pas le formulaire " formulaire 2" auquel il est fait référence.
J'ai le même message d'erreur pour le formulaire 2.
Microsoft Access ne trouve pas le formulaire " formulaire 1" auquel il est fait référence.
Merci encore pour tes réponses!
Rokson
Merci encore pour vos différentes réponses.
Suite à votre proposition , voici les codes de mes deux formulaires:
'Formulaire 1
Private Sub Commande9_Click()
' Quelques variables
Dim rst As dao.Recordset
' Ouvrir la table en lecture/écriture
Set rst = CurrentDb.OpenRecordset("TABLE NEW", dbOpenDynaset)
' Créer un enregistrement dans la table
rst.AddNew
' Alimenter les champs
rst("Identifiant") = Me.attestation ' formulaire 1
rst("Code") = Me.lolou 'formulaire 1
rst("Lieu") = Forms![formulaire 2]![lieu] 'formulaire 2
rst("Adresse") = Forms![formulaire 2]![adresse] 'formulaire 2
' Valider
rst.Update
rst.Close
Set rst = Nothing
MsgBox "Opération terminée !", vbInformation
End Sub
'Formulaire 2
Private Sub Commande10_Click()
' Quelques variables
Dim rst As dao.Recordset
' Ouvrir la table en lecture/écriture
Set rst = CurrentDb.OpenRecordset("TABLE NEW", dbOpenDynaset)
' Créer un enregistrement dans la table
rst.AddNew
' Alimenter les champs
rst("Lieu") = Me.lieu ' formulaire 2
rst("Adresse") = Me.adresse 'formulaire 2
rst("Identifiant") = Forms![formulaire 1]![attestation] 'formulaire 1
rst("Code") = Forms![formulaire 1]![lolou] 'formulaire 1
' Valider
rst.Update
rst.Close
Set rst = Nothing
MsgBox "Opération terminée !", vbInformation
End Sub
J'ai pour le formulaire 1 , le message d'erreur suivant:
Microsoft Access ne trouve pas le formulaire " formulaire 2" auquel il est fait référence.
J'ai le même message d'erreur pour le formulaire 2.
Microsoft Access ne trouve pas le formulaire " formulaire 1" auquel il est fait référence.
Merci encore pour tes réponses!
Rokson
Oui , j'ai bien mis les noms.
Pour les tests du message précédent, j'avais nommé mes formulaires : formulaire 1 , formulaire 2.
Je sais pas si ce serait dû à ce là ou pas, j'ai mis côte à côte mes deux formulaires dans un grand formulaire principal.Ils sont donc des sous formulaires du form-principal.
Je reste à disposition.
Pour les tests du message précédent, j'avais nommé mes formulaires : formulaire 1 , formulaire 2.
Je sais pas si ce serait dû à ce là ou pas, j'ai mis côte à côte mes deux formulaires dans un grand formulaire principal.Ils sont donc des sous formulaires du form-principal.
Je reste à disposition.
Comme j'ai mis mes formulaires 1 et 2 comme étant des sous formulaires du formulaire principal(Principal).
J'ai utilisé ce code
rst("Lieu") = Forms![Principal].Form![formulaire 1]![lieu].Value ' formulaire 2
J'ai fait pareil pour les autres champs des deux formulaires.
Merci beaucoup f894009 , grâce à vous ,nous sommes arrivés à la solution.
Rokson
J'ai utilisé ce code
rst("Lieu") = Forms![Principal].Form![formulaire 1]![lieu].Value ' formulaire 2
J'ai fait pareil pour les autres champs des deux formulaires.
Merci beaucoup f894009 , grâce à vous ,nous sommes arrivés à la solution.
Rokson
d'un des deux formulaires.
Je reste à disposition.
Merci
les deux formulaires sont ouverts au moment du clic pour enregistrement
Oui les deux formulaires sont effectivement ouverts au moment du clic pour l'enregistrement.
Merci
exemple, pour un champ de chaque formulaire
code a mettre dans les deux formulaires, voir a ajouter des tests pour eviter d'enregistrer x fois ou sans modif d'un des deux formulaires, mais la c'est vous qui voyez
Private Sub Commande21_Click() Dim DB As Database Dim Rst As Recordset Set DB = CurrentDb Set Rst = DB.OpenRecordset("Table2") 'table a mettre a jour Rst.AddNew Rst.Fields(1) = Me.SK_inti 'formulaire 1 Rst.Fields(2) = Forms![Copie de F_SiteKSB]![SK_inti] 'formulaire 2 Rst.Update Rst.Close End SubJe vous remercie beaucoup pour votre code.
J'avais un code similaire sur chaque formulaire.
Mon souci est que chaque formulaire dispose de son propre bouton de commande click ce qui fait que les champs complétés sur ma table NEW( ou table 2 pour vous) ne sont pas sur la même ligne.
Je sais pas comment faire pour avoir les résultats sur la même ligne avec mes deux boutons click. Peut on envisager avoir un seul bouton de commande pour enregistrer les données des deux formulaires? J'ai essayé mais çà ne marche pas à mon niveau.
Je mets ci-dessous mes codes:
'Formulaire 1
Private Sub Commande9_Click()
' Quelques variables
Dim rst As dao.Recordset
Dim lngNum As Long
' Ouvrir la table en lecture/écriture
Set rst = CurrentDb.OpenRecordset("TABLE NEW", dbOpenDynaset)
' Créer un enregistrement dans la table
rst.AddNew
' Alimenter les champs
rst("Identifiant") = Me.attestation
rst("Code") = Me.lolou
' Valider
rst.Update
rst.Close
Set rst = Nothing
MsgBox "Opération terminée !", vbInformation
End Sub
'Formulaire 2
Private Sub Commande10_Click()
' Quelques variables
Dim rst As dao.Recordset
Dim lngNum As Long
' Ouvrir la table en lecture/écriture
Set rst = CurrentDb.OpenRecordset("TABLE NEW", dbOpenDynaset)
' Créer un enregistrement dans la table
rst.AddNew
' Alimenter les champs
rst("Lieu") = Me.lieu
rst("Adresse") = Me.adresse
' Valider
rst.Update
rst.Close
Set rst = Nothing
MsgBox "Opération terminée !", vbInformation
End Sub
Merci encore!!!
Rokson