Access:

Résolu/Fermé
jabest Messages postés 37 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 13 février 2008 - 3 nov. 2006 à 11:29
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 - 6 nov. 2006 à 12:59
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

3 réponses

zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
3 nov. 2006 à 11:58
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é.
0
jabest Messages postés 37 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 13 février 2008 1
3 nov. 2006 à 20:04
Merci de ta réponse Zenon je vais reformuler ma demande en espérant mieux me faire comprendre.
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
0
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
4 nov. 2006 à 11:12
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.
0
jabest Messages postés 37 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 13 février 2008 1
6 nov. 2006 à 11:19
Merci à toi Zenon. En fait j'aurais dû mieux réfléchir à la structure de mes tables comme tu l'as souligné. J'ai modifié en créant simplement unsous-formulaire et ça roule.
Question de ne pas mourir idiot pourquoi "_" est préférable à "-" dans les noms de champs ?
Encore Merci.

Cdlmt
0
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
6 nov. 2006 à 12:59
Access "reconnait" les tables et les champs automatiquement si les noms ne comportent pas d'escaces ou certains caractères (';-...) Cela évite notamment d'avoir à entourer ces derniers par des crochets [] qd on rédige du code.
0