(VBA) F7 Tuşu ile Form Filtresi (Filtre Aç) moduna geçsin

1 2 3
12/12/2011, 23:29

WiniFred

Bir kısmını çözdüm.

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF7 Then
DoCmd.RunCommand acCmdFilterByForm
End If
End Sub

Böyle yapınca yazım denetimi gelmedi (galiba tuşa işlev atayınca varsayılanı disable oluyor). Form Filtresine tıklanmış gibi filtre aç moduna geçip değer girmemi bekledi. Buraya kadar tam istediğim gibi. Ama bir türlü filtreyi uygulatamadım. Benim mantığıma göre acCmdToggleFilter ile filtreyi uygulaması lazım ama çalışmadı. Yani aşağıdaki gibi yaptığımda F7 kısmı çalıştı, F8 kısmı çalışmadı.

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF7 Then
DoCmd.RunCommand acCmdFilterByForm
End If
If KeyCode = vbKeyF8 Then
DoCmd.RunCommand acCmdToggleFilter
End If
End Sub

Kısaca, artık yapılabildiğine eminim. Yalnızca ikinci adımı nasıl yapabileceğimi çözmeliyim. Umarım bu kodlar size yol gösterebilir.
12/12/2011, 23:37

ozanakkaya

DoCmd.RunCommand acCmdToggleFilter kodu yerine #3. mesajdaki kodları deneseniz?
12/12/2011, 23:44

WiniFred

çalışmadı
12/12/2011, 23:51

ozanakkaya

10. mesaja kadar geldik ama, şu örneği bi ekleseniz ?
12/12/2011, 23:58

WiniFred

üzerinde çalıştığım projeme buraya aktaramayacağım veriler eklediğimden, sıfırdan bir örnek oluşturmalıyım. Bu da biraz zaman alacak.

Bu arada şunu da belirteyim. Bir yere kadar F8 tuşu da çalışıyor. Şöyle ki: Biliyorsunuz bir filtreleme yapıp tekrar tüm kayıtları listelediğimizde (yani filtreyi temizlediğimizde), direkt "Filtreyi Değiştir"e tıklarsak en son yaptığımız filtreleme uygulanır. İşte F8 bu şekilde çalışıyor. Yani yaptığım son filtreyi çağırıyor. Ama önce Form Filtresi yapıp sonra F8'e basarsam çalışmıyor. Ufak birşeyi kaçırıyorum ama neyi???
13/12/2011, 09:56

Coskun0559

Bunu Denermisin.

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF7 Then DoCmd.RunCommand acCmdFilterByForm: exit sub
If KeyCode = vbKeyF8 Then DoCmd.RunCommand acCmdToggleFilter:exit sub
End Sub
1 2 3