2017-01-10 7 views
0

私は、患者が持っていたすべての手順をリストボックスでリストした患者入院フォームを持つAccessデータベースを持っています。リストボックスには、ProcedureID、ProcedureDate、およびProcedureTitleが含まれています。リストボックスは、1またはprocedureIDにバインドされています。MS Accessをダブルクリックすると、特定のレコードにフォームが開きますが、編集できません

プロシージャフォームを開くリストボックスのダブルクリックイベントがあります。フォームには、プロシージャに関連するさまざまなデータのビットを持つタブのサブフォームがあります。

フォームは正しいレコードを開き、関連するデータをフォームとサブフォームに表示します。私は私の手順フォーム上の汚れたイベント上にエラーポイント

you can't assign a value to this object 

..私は、次のエラーメッセージが表示されます。手順フォーム上にあるデータを編集しようとすると問題があります。これは、親フォームのデータを編集しようとすると、サブフォームが正常に動作し、編集内容が受け入れられた場合にのみ問題になります。

私は、リストボックスでダブルクリックイベントに

Private Sub lst_Procedure_DblClick(Cancel As Integer) 

    'double click to open procedure form to the selected record 

    Dim ProcID As Long 

    ProcID = Me!lst_Procedure 

    DoCmd.Close acForm, "frm_Admission" 
    DoCmd.OpenForm "frm_Procedure", , , "[ProcedureID] = " & ProcID 

End Sub 

Private Sub Form_Dirty(Cancel As Integer) 

    'open Procedure form to record selected in procedure list 
    Me.ProcedureID = Me.OpenArgs 

End Sub 

任意の提案を大幅になり、正しいレコードに開くための手順書にこのコードをこのコードを持っています感謝。私はonDirtyの代わりにonLoadでopenargsを受信しようとしましたが、役に立たなかった。

答えて

0
DoCmd.OpenForm "frm_Procedure", , , "[ProcedureID] = " & ProcID 

は、既存のレコードでフォームを開きます。 パラメータはOpenFormです。 https://msdn.microsoft.com/en-us/library/office/ff820845.aspx

オープンフォームにMe.ProcedureIDを設定する必要はありません。 Dirtyイベントプロシージャを削除するだけです。

ProcedureIDは主キーとオートナンバー型ですか?
オートナンバー型値は変更できません。

関連する問題