Alimenter une table par deux formulaires différents

Fermé
rokson Messages postés 9 Date d'inscription jeudi 14 avril 2016 Statut Membre Dernière intervention 27 juillet 2016 - 14 avril 2016 à 09:52
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 19 avril 2016 à 10:31
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.
A voir également:

3 réponses

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
17 avril 2016 à 09:16
Bonjour,

Les enregistrements dans votre table NEW sont en ajout ou cela peut être a la suite de motif d'un enregistrement ??
0
rokson Messages postés 9 Date d'inscription jeudi 14 avril 2016 Statut Membre Dernière intervention 27 juillet 2016
17 avril 2016 à 14:29
Les enregistrements de la table NEW sont en ajout à chaque fois que je clique sur un bouton d'enregistrement
d'un des deux formulaires.

Je reste à disposition.

Merci
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709 > rokson Messages postés 9 Date d'inscription jeudi 14 avril 2016 Statut Membre Dernière intervention 27 juillet 2016
17 avril 2016 à 18:59
Re,

les deux formulaires sont ouverts au moment du clic pour enregistrement
0
rokson Messages postés 9 Date d'inscription jeudi 14 avril 2016 Statut Membre Dernière intervention 27 juillet 2016
17 avril 2016 à 19:31
Bonsoir,
Oui les deux formulaires sont effectivement ouverts au moment du clic pour l'enregistrement.

Merci
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709 > rokson Messages postés 9 Date d'inscription jeudi 14 avril 2016 Statut Membre Dernière intervention 27 juillet 2016
18 avril 2016 à 14:27
Bonjour,
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 Sub
0
rokson Messages postés 9 Date d'inscription jeudi 14 avril 2016 Statut Membre Dernière intervention 27 juillet 2016
18 avril 2016 à 17:48
Bonjour,
Je 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
0
rokson Messages postés 9 Date d'inscription jeudi 14 avril 2016 Statut Membre Dernière intervention 27 juillet 2016
19 avril 2016 à 09:19
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
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
19 avril 2016 à 09:30
Bonjour,
J'espere, quand-meme, que vous avez mis les noms de vos formulaires!!!!!!!!!
0
rokson Messages postés 9 Date d'inscription jeudi 14 avril 2016 Statut Membre Dernière intervention 27 juillet 2016
19 avril 2016 à 10:11
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.
0
rokson Messages postés 9 Date d'inscription jeudi 14 avril 2016 Statut Membre Dernière intervention 27 juillet 2016
19 avril 2016 à 10:25
Re Bonjour,

J'ai trouvé pourquoi çà ne marche pas ,
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709 > rokson Messages postés 9 Date d'inscription jeudi 14 avril 2016 Statut Membre Dernière intervention 27 juillet 2016
19 avril 2016 à 10:31
Re,

Boh oui! Ce sont des sous-formulaire pas de formulaire !!!!!
0
rokson Messages postés 9 Date d'inscription jeudi 14 avril 2016 Statut Membre Dernière intervention 27 juillet 2016
19 avril 2016 à 10:31
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
0