2017-09-21 8 views
0

クリックすると、そのレコードのメインフォームをフィルタする各行にボタン付きのサブフォーム(連続フォーム)があります。ボタンをクリックすると、サブフォームのフォーカスがサブフォームの先頭(つまり最初のレコード)にジャンプします。フォーカスをレコードに残すにはどうしたらいいですか?ボタンにフォーカスするサブフォームの変更をクリックします。

つまり、レコード100の横にあるボタンをクリックすると、フォーカスがサブフォームに記録されます(メインフォームはレコード100を意図したとおりに表示します)。私はここに私が使用しているVBAコードだ

記録100に滞在して、サブフォームに焦点を当てたい:

Private Sub select_record_button_Click() 
Me.Parent.Form.Filter = "[ID]=" & Me.ID 
Me.Parent.Form.FilterOn = True 
End Sub 

上記のコードは、サブフォーム上のボタンの上をクリックしてイベントです。

+0

フォームはリンクされていませんか?メインフォームまたはサブフォームの他のイベントコード? – BitAccesser

+0

スプリットフォームの機能を複製するように聞こえます。スプリットフォームを検討しましたか? – June7

+0

はい、分割フォームを再作成しますが、2つのサブフォームがあります。私は分割された形でそれをしようとするときに問題に遭遇しました。 – Dread

答えて

1

あなたはこの試みることができる:フィルタが適用された後、フィルタを適用する前に、変数にサブフォームの.SelTopプロパティを持ち、復元

を。

これは、選択したレコードを正確な行に保持することはありませんが、サブフォームの表示領域の最初のレコードになります。

Private Sub select_record_button_Click() 
    Dim t As Long 
    With Me 
     t = .SelTop 
     With .Parent.Form 
      .Filter = "[ID]=" & Me!ID 
      .FilterOn = True 
     End With 
     .SelTop = t 
    End with 
End Sub 
関連する問題