2017-12-04 4 views
0

私はAccess 2010を使用していますが、私はちょっと厄介なので...メインフォームとアンバインドされたサブフォームを作成します。メインフォームにバインドされていませんが、私は言うべきですが、レコードソースにバインドされています。物事は正常に動作します。このプロパティは読み取り専用であり、設定することはできません

サブフォームには、IDを含むcboGIReqNbrという名前のドロップダウンがあります。また、txtGIReqNbrというテキストボックスもあります。起こりそうなのは、ドロップダウンからcboGIReqNbrを選択すると、txtGIReqNbrがその説明を入力することになっているということです。私はcboGIReqNbrのAfterUpdateイベントでこれを持っている

Dim db As Database 
Dim rec As Recordset 
Dim sSql As String 

Set db = CurrentDb 

sSql = "Select GI_Request_Name from tblGIRequest where GI_Request_Nbr = '" & Me.cboGIReqNbr.Text & "'" 

Set rec = db.OpenRecordset(sSql) 

Me!txtGIReqNbr.SetFocus 

Me!txtGIReqNbr.Text = rec(0) <-- PROBLEM 

Me.txtLanID = Forms!frmHoursAssigned.cboEmployee.Value 

REC(0)、実際には、正しいテキストを取り込むん。

問題の行に表示されるエラーは次のとおりです。 "このプロパティは読み取り専用であり、設定できません"。私のオブジェクトはどれも読み取り専用ではなく、オンラインで見つけることができるすべての例は、予約語を使用している人(つまり、「名前」をフィールド名として使用している人)を指し示しています。

誰でもこれを解決する方法を知っていますか?

答えて

1

テキストボックスに値を割り当てるには、.Valueプロパティを使用する必要があります。 は可視値を変更し、フィールドにフォーカスがある場合にのみ使用できます。 .Valueは実際の値を格納し、いつでも使用できます。

Me!txtGIReqNbr.Value = rec(0) 

も参照してください:Distinction between using .text and .value in VBA Access

+0

その後、私はエラー「あなたは、このオブジェクトに値を代入することはできません」を取得。それはサブフォームがテーブルにリンクされているため、テキストボックスはテーブルのフィールドにバインドされていますか? –

+0

テーブルが書き込み可能で、テキストボックスのコントロールソースが式ではなくフィールドである場合、それは重要ではありません。テキストボックスの内容を手で変更できますか(それをクリックして何かを入力してください)?フィールドが更新不可能なものにバインドされている場合は、そのフィールドが説明され、バインドを解除できます。 –

+0

うん、それは機能した(バインドを解除しなければならなかった)が、私のフォームは連続したフォームであり、今の値はすべてのtxtGIReqNbrで同じです。まあ、それは別の質問です。ご協力いただきありがとうございます! –

関連する問題