| Access : passage de valeurs par bob_eponge |
jeudi 30 mars 2006 à 15:17:31 |
Private Sub Menu_visite_Click() Application.DoCmd.OpenForm "Switchboard2", , , , acFormAdd, , Me.[n°id] On Error GoTo Err_Menu_visite_Click Dim stDocName As String stDocName = "Menu_visites" DoCmd.RunMacro stDocName Exit_Menu_visite_Click: Exit Sub Err_Menu_visite_Click: MsgBox Err.Description Resume Exit_Menu_visite_Click End Sub
Private Sub Form_Open(Cancel As Integer) ' Minimize the database window and initialize the form. ' Move to the switchboard page that is marked as the default. Me.Filter = "[ItemNumber] = 0 AND [Argument] = 'Default' " Me.FilterOn = True If IsNull(Me.OpenArgs) Then 'rien à faire Else Me.[n°id] = CLng(Me.OpenArgs) End If End Sub
Me.[n°id] = CLng(Me.OpenArgs)
Salut,
Je pense que tu te compliques la vie inutilement: Si je comprends bien tu veux ouvrir le Form Switchboard2 en mode ajout et attribuer le N°ID récupéré du form sur lequel se trouve ton bouton pour l'ajouter au nouvel enregistrement de Switchboard2? DoCmd.OpenForm "Switchboard2", , , , acFormAdd L'argument Me.[n°id] est inutile puisque par définition tu es sur un nouvel enregistrement... Pour ajouter la valeur Id: Forms!Switchboard2!N°id=Me!N°id Si tu veux exécuter une macro tu peux t'y référer directement sans déclarer de variable comme l'aide le propose toujours: DoCmd.RunMacro "NomDeLaMacro" Personnellement, je préfère exécuter le code directement... Je ne comprends pas ce que tu veux faire avec la deuxième partie de ton code. (jamais entendu parler de Clng()) D'autre part, le terme OpenArg ne fonctionne pas tel quel mais tu dois ajouter les arguments que tu veux voir appliquer.
|
Sur ouverture de ton Form accueil, tu peux mettre le N°id dans un champ texte indépendant, par exemple et y faire référence lorsque tu ouvres tes autres formulaires.
Pour ça il suffit soit sur ouverture du Form, soit sur clic d'un bouton de commande du form identification d'ajouter NomDuChampTexte = Forms!Identification!N°id puis tu ajoutes le code sur clic dans un bouton de commande du Form accueil: DoCmd.OpenForm "NomDuForm",,,AcFormAdd Forms!NomDuForm!N°id = Forms!FormAccueil!NomDuChampTexte Maintenant, il faut être sûr que l'utilisateur ne peut passer par le Form accueil que s'il doit ajouter un enregistrement puisque à chaque ouverture, tu vas ajouter un enregistrement... Ne serait-ce pas plus simple d'appeler ces formulaires directement à partir du Form identification?
|
Il y a aussi la possibilité du ou des sous-formulaires.
Avec des relations 1-n et en paramétrant les champs père et fils le N°id peut être ajouté automatiquement par access et les sous -formulaires sont triés automatiquement. On peut appeler un ss formulaire par un bouton (le plus simple pour commencer serait de les construire avec l'assistant, ce qui n'empêche pas de les modifier par la suite).
|
Bonjour,
Pour donner suite : 1.) Ouvrir le formulaire en mode édition 2.) Sélectionner le bouton 3.) Menu //Affichage / Propriété / Onglet Évènement 4.) Choisir la ligne [ Sur clic ... ] / Sélectionner [ Procédure événementielle] 5.) Cliquer sur les trois petits points, vous arriverez directement dessus :-) Lupin |
Pour ce qui concerne l'assistant:
Tes tables connexes doivent comporter une référence (clé externe, au format entier long) à la clé primaire de ta table identification et tu devrais établir une relation entre ces tables (probablement 1-n) (ça tu le sais déjà puisque tu essaies d'inclure la valeur de la clé dans les autres tables). Choisis "créer un formulaire avec l'assistant". La première boite de dialogue permet de sélectionner les champs que tu veux avoir dans le formulaire mais aussi plusieurs tables. C'est là qu'access va permettre de créer automatiquement les paramètres qui vont lier les tables et permettre la mise à jour automatique des clés externes. Les autres boites de dialogue sont moins importantes. Elles concernent la présentation (tableau, feuille de données...) qu'on peut modifier ensuite mais elles permettent aussi de choisir des sous-formulaires ou des formulaires dépendants appelés par des boutons de commande. Tu n'obtiendras surement pas exactement ce que tu recherches mais la structure sera là et tu pourras voir comment ça marche pour être à même de le faire sans l'assitant par la suite. Tu verras qu'avec ce système, il n'est pas nécessaire de définir soi-même la valeur de la clé externe mais qu'Access l'ajoute automatiquement et trie les enregistrement existants pour n'afficher que ceux qui sont liés à l'enregistrement actif du formulaire principal... |
| 21/05 16h09 | [Access] passer valeur d'un champ en attribut | Programmation | 21/05 16h26 | 1 |
| 15/01 00h36 | ACCESS - passage de valeur form->sous form | Logiciels/Pilotes | 15/01 00h36 | 0 |
| 30/05 08h44 | [Access/MySQL] Valeur oui/non/neutre | Programmation | 20/06 13h16 | 5 |
| 13/02 20h53 | vba ACCESS passer de chiffre a lettre | Programmation | 13/02 23h33 | 3 |
![]() | KeePass Password Safe - Aujourd'hui vous avez besoin de se rappeler beaucoup de mots de passe. Vous avez besoin d'un mot de passe pour... | Catégorie: Chiffrement Licence: Freeware/gratuit |
![]() | Password Safe - Password Safe permet de gérer tous vos mots de passe et noms d'utilisateur de façon sûre et en n'ayant qu'à retenir un mot... | Catégorie: Chiffrement Licence: Open Source |
![]() | Password Pond - Il n'est pas toujours aisé de devoir créer des mots de passe à chaque fois qu'on vous le demande. En plus le fait d'utiliser... | Catégorie: Personnalisation Licence: Freeware/gratuit |
![]() | 7Zip - 7-Zip est un utilitaire de compression/décompression libre pour systèmes Windows 32-bit. Il est très simple à utiliser:... | Catégorie: Compression/Décompression Licence: Open Source |