Access:
Résolu
jabest
Messages postés
37
Statut
Membre
-
zenon Messages postés 729 Statut Membre -
zenon Messages postés 729 Statut Membre -
Bonjour à tous , et merci pour vos lumières
J'ai inséré à l'aide de l'assisstant un bouton dans un formulaire qui commande l'ouverture d'un autre formulaire. Je voudrai que les enregistrements des champs communs soient recopiés du premier formulaire vers le second , que dois-je ajouter aux codes ci-dessous sachant qu'ntre les 2 formulaires 3 champs sont communs (Navire,ETA,Chassis).
Private Sub Commande25_Click()
On Error GoTo Err_Commande25_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "LIVRAISON-RORO"
stLinkCriteria = "[CHASSIS]=" & "'" & Me![CHASSIS] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_Commande25_Click:
Exit Sub
Err_Commande25_Click:
MsgBox Err.Description
Resume Exit_Commande25_Click
End Sub
Private Sub chgmtR_Click()
On Error GoTo Err_chgmtR_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "CHARGEMENT-RORO"
stLinkCriteria = "[CHASSIS]=" & "'" & Me![CHASSIS] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_chgmtR_Click:
Exit Sub
Err_chgmtR_Click:
MsgBox Err.Description
Resume Exit_chgmtR_Click
End Sub
Private Sub Commande34_Click()
On Error GoTo Err_Commande34_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 2, , acMenuVer70
Exit_Commande34_Click:
Exit Sub
Err_Commande34_Click:
MsgBox Err.Description
Resume Exit_Commande34_Click
End Sub
Private Sub recherche_Click()
On Error GoTo Err_recherche_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 2, , acMenuVer70
Exit_recherche_Click:
Exit Sub
Err_recherche_Click:
MsgBox Err.Description
Resume Exit_recherche_Click
End Sub
Private Sub Commande37_Click()
On Error GoTo Err_Commande37_Click
Screen.PreviousControl.SetFocus
DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
Exit_Commande37_Click:
Exit Sub
Err_Commande37_Click:
MsgBox Err.Description
Resume Exit_Commande37_Click
End Sub
Private Sub Commande39_Click()
On Error GoTo Err_Commande39_Click
Screen.PreviousControl.SetFocus
DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
Exit_Commande39_Click:
Exit Sub
Err_Commande39_Click:
MsgBox Err.Description
Resume Exit_Commande39_Click
End Sub
Private Sub Commande40_Click()
On Error GoTo Err_Commande40_Click
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
Exit_Commande40_Click:
Exit Sub
Err_Commande40_Click:
MsgBox Err.Description
Resume Exit_Commande40_Click
End Sub
Private Sub Commande74_Click()
On Error GoTo Err_Commande74_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 2, , acMenuVer70
Exit_Commande74_Click:
Exit Sub
Err_Commande74_Click:
MsgBox Err.Description
Resume Exit_Commande74_Click
End Sub
J'ai inséré à l'aide de l'assisstant un bouton dans un formulaire qui commande l'ouverture d'un autre formulaire. Je voudrai que les enregistrements des champs communs soient recopiés du premier formulaire vers le second , que dois-je ajouter aux codes ci-dessous sachant qu'ntre les 2 formulaires 3 champs sont communs (Navire,ETA,Chassis).
Private Sub Commande25_Click()
On Error GoTo Err_Commande25_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "LIVRAISON-RORO"
stLinkCriteria = "[CHASSIS]=" & "'" & Me![CHASSIS] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_Commande25_Click:
Exit Sub
Err_Commande25_Click:
MsgBox Err.Description
Resume Exit_Commande25_Click
End Sub
Private Sub chgmtR_Click()
On Error GoTo Err_chgmtR_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "CHARGEMENT-RORO"
stLinkCriteria = "[CHASSIS]=" & "'" & Me![CHASSIS] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_chgmtR_Click:
Exit Sub
Err_chgmtR_Click:
MsgBox Err.Description
Resume Exit_chgmtR_Click
End Sub
Private Sub Commande34_Click()
On Error GoTo Err_Commande34_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 2, , acMenuVer70
Exit_Commande34_Click:
Exit Sub
Err_Commande34_Click:
MsgBox Err.Description
Resume Exit_Commande34_Click
End Sub
Private Sub recherche_Click()
On Error GoTo Err_recherche_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 2, , acMenuVer70
Exit_recherche_Click:
Exit Sub
Err_recherche_Click:
MsgBox Err.Description
Resume Exit_recherche_Click
End Sub
Private Sub Commande37_Click()
On Error GoTo Err_Commande37_Click
Screen.PreviousControl.SetFocus
DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
Exit_Commande37_Click:
Exit Sub
Err_Commande37_Click:
MsgBox Err.Description
Resume Exit_Commande37_Click
End Sub
Private Sub Commande39_Click()
On Error GoTo Err_Commande39_Click
Screen.PreviousControl.SetFocus
DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
Exit_Commande39_Click:
Exit Sub
Err_Commande39_Click:
MsgBox Err.Description
Resume Exit_Commande39_Click
End Sub
Private Sub Commande40_Click()
On Error GoTo Err_Commande40_Click
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
Exit_Commande40_Click:
Exit Sub
Err_Commande40_Click:
MsgBox Err.Description
Resume Exit_Commande40_Click
End Sub
Private Sub Commande74_Click()
On Error GoTo Err_Commande74_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 2, , acMenuVer70
Exit_Commande74_Click:
Exit Sub
Err_Commande74_Click:
MsgBox Err.Description
Resume Exit_Commande74_Click
End Sub
3 réponses
Salut,
Pour la lisibilité de ton post, tu devrais ne mettre que le code concerné par la commande qui te pose problème.
A part ça, je pense que le plus simple n'est pas d'essayer de "recopier" des données mais de fonder ton formulaire sur une requête qui te permet de sélectionner les champs dont tu as besoin à partir de plusieurs tables.
L'assitant création de formulaire permet de le faire facilement dans un premier temps. Si crées ensuite ton bouton de commande, le tour est joué.
Pour la lisibilité de ton post, tu devrais ne mettre que le code concerné par la commande qui te pose problème.
A part ça, je pense que le plus simple n'est pas d'essayer de "recopier" des données mais de fonder ton formulaire sur une requête qui te permet de sélectionner les champs dont tu as besoin à partir de plusieurs tables.
L'assitant création de formulaire permet de le faire facilement dans un premier temps. Si crées ensuite ton bouton de commande, le tour est joué.
Re,
Pourrais-tu joindre la structure de tes tables (en tous cas les champs significatifs)?
As-tu essayé de créer un formulaire avec l'assistant Cela permet de le fonder sur plusieurs tables sans connaissances préalables et on peut choisir d'afficher les données de la seconde table sous forme de sous-formulaire ou par le biais d'un bouton de commande.
En principe, en dehors d'une référence à une clé externe, il ne devrait pas y avoir de champs communs à tes différentes tables. (et c'est mieux de remplacer les "-" par des "_" dans les noms des champs ou des objets)
Maintenant, si tu veux le faire comme tu l'écris, sans rien changer à ton code, tu peux simplement modifier la source de données de ton second formulaire. Au lieu de le fonder sur une table, tu peux le fonder sur une requête et y inclure les données d'autre(s) tables(s) liées (si tu ne vois pas comment faire, je peux t'expliquer).
Il est aussi possible de définir la valeur de champs texte indépendants dans le formulaire que tu ouvres en VB en ajoutant au code:
[NomDuChampTexte]=Forms![NomDuFormDeDépart]![NomDuChampARecopier]
Il vaut mieux éviter cette méthode. Elle ne donne pas de garantie que l'enregistrement que tu visualises et réellement le bon.
Pourrais-tu joindre la structure de tes tables (en tous cas les champs significatifs)?
As-tu essayé de créer un formulaire avec l'assistant Cela permet de le fonder sur plusieurs tables sans connaissances préalables et on peut choisir d'afficher les données de la seconde table sous forme de sous-formulaire ou par le biais d'un bouton de commande.
En principe, en dehors d'une référence à une clé externe, il ne devrait pas y avoir de champs communs à tes différentes tables. (et c'est mieux de remplacer les "-" par des "_" dans les noms des champs ou des objets)
Maintenant, si tu veux le faire comme tu l'écris, sans rien changer à ton code, tu peux simplement modifier la source de données de ton second formulaire. Au lieu de le fonder sur une table, tu peux le fonder sur une requête et y inclure les données d'autre(s) tables(s) liées (si tu ne vois pas comment faire, je peux t'expliquer).
Il est aussi possible de définir la valeur de champs texte indépendants dans le formulaire que tu ouvres en VB en ajoutant au code:
[NomDuChampTexte]=Forms![NomDuFormDeDépart]![NomDuChampARecopier]
Il vaut mieux éviter cette méthode. Elle ne donne pas de garantie que l'enregistrement que tu visualises et réellement le bon.
Ce que je recherche c'est de ne pas saisir 2 fois les mêmes infos.
J'ai créer un bouton de recherche qui me positionne sur l'enregistrement n°x de mon 1er formulaire et sur le même formulaire un bouton ouverture de formulaire qui m'ouvre mon 2nd formulaire , je voudrai donc que les données des champs communs de l'enregistrement n°x soient automatiquement repris sur l'enregitrement n°z de mon 2 eme formulaire et que soient uniquement saisies les données sur les champs non communs.
ci-dessous uniquement e code concerné :
Private Sub Commande25_Click()
On Error GoTo Err_Commande25_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "LIVRAISON-RORO"
stLinkCriteria = "[CHASSIS]=" & "'" & Me![CHASSIS] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_Commande25_Click:
Exit Sub
Err_Commande25_Click:
MsgBox Err.Description
Resume Exit_Commande25_Click
End Sub
Private Sub chgmtR_Click()
On Error GoTo Err_chgmtR_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "CHARGEMENT-RORO"
stLinkCriteria = "[CHASSIS]=" & "'" & Me![CHASSIS] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_chgmtR_Click:
Exit Sub
Err_chgmtR_Click:
MsgBox Err.Description
Resume Exit_chgmtR_Click
End Sub