2010-07-24 7 views
0

donc je passe la valeur d'identité d'une forme à l'autre en utilisantMS Access 2007 - OpenArgs ne passant pas la valeur au prochain formulaire?

Docmd.OpenForm "SecondForm",,,,,, MainID 
Docmd.Close AcForm, "FirstForm", acSaveYes 

puis-je vérifier la valeur sur l'événement de charge de la deuxième forme:

MainID = val(Me.OpenArgs) 

et quand je mise au point et l'étape à I survolez ceci et peut voir qu'il contient une valeur

Ensuite, j'ai un événement de clic sur le second formulaire qui est censé répéter le processus, mais quand je lance ce qui suit

0 Après cela, c'est un peu de rs.edit, etc choses .... la routine n'est même pas en faire si loin.
Dim rs as DAO.Recordset 
Dim dbs as DAO.Database 
Set dbs = CurrentDB 

Set MyRS = dbs.OpenRecordset("tblMain") 

If MyRS!MainID = MainID THen 

Une fois que je fais le même débogage et le même vol stationnaire, la valeur ici est vide. Y at-il quelque chose que je suis absent parce que je peux voir la valeur de l'événement de charge des formes, mais une fois que j'essaie de l'utiliser dans une autre action, il est MIA

grâce justin

Répondre

1

Sons comme cela pourrait être un problème de portée . Où MainID est-il déclaré?

Si vous le déclarez dans votre procédure Form Open, il disparaît une fois cette procédure terminée.

Envisagez de modifier la procédure d'événement de clic de votre bouton. OpenArgs ne "disparaît" pas après le chargement du formulaire. Je ne vois pas pourquoi vous avez besoin de stocker OpenArgs à votre variable MainID. Vous pouvez utiliser Val (Me.OpenArgs) où vous utilisiez la variable MainID. Alternativement, vous pouvez faire MainID une variable de niveau de module afin qu'elle soit disponible pour toutes les procédures de votre formulaire.

Mise à jour: Existe-t-il une situation dans laquelle vous pouvez ouvrir le formulaire sans lui attribuer une valeur pour OpenArgs? Si c'est le cas, Val (Me.OpenArgs) renverra 0. Sera-ce une condition d'erreur dans la logique de votre application? Votre bouton de commande doit-il être "cliquable" (activé) lorsqu'une valeur OpenArgs n'a pas été fournie?

+0

merci Hans ... qui l'a arrangé pour moi. – Justin