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   -
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 17414 Date d'inscription   Statut Membre Dernière intervention   1 715
 
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 Statut Membre
 
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 17414 Date d'inscription   Statut Membre Dernière intervention   1 715 > rokson Messages postés 9 Statut Membre
 
Re,

les deux formulaires sont ouverts au moment du clic pour enregistrement
0
rokson Messages postés 9 Statut Membre
 
Bonsoir,
Oui les deux formulaires sont effectivement ouverts au moment du clic pour l'enregistrement.

Merci
0
f894009 Messages postés 17414 Date d'inscription   Statut Membre Dernière intervention   1 715 > rokson Messages postés 9 Statut Membre
 
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 Statut Membre
 
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 Statut Membre
 
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 17414 Date d'inscription   Statut Membre Dernière intervention   1 715
 
Bonjour,
J'espere, quand-meme, que vous avez mis les noms de vos formulaires!!!!!!!!!
0
rokson Messages postés 9 Statut Membre
 
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 Statut Membre
 
Re Bonjour,

J'ai trouvé pourquoi çà ne marche pas ,
0
f894009 Messages postés 17414 Date d'inscription   Statut Membre Dernière intervention   1 715 > rokson Messages postés 9 Statut Membre
 
Re,

Boh oui! Ce sont des sous-formulaire pas de formulaire !!!!!
0
rokson Messages postés 9 Statut Membre
 
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