Sekme Sayfaları arasında tek tuşla geçiş

17/05/2015, 19:30

Dadadu

Oluşturduğum formda sekme denetimi ile 7 adet sayfa oluşturdum. Sayfaları elle değil de bir buton yardımı ile değiştirmek istiyorum. Önceki ve Sonraki sayfa butonuna bastığımda sırasıyla sayfalar arasında gezinmek istiyorum. Bir kod yazdım ancak bu tek tek geçiyor ve tek bir buton yerine her sayfaya buton koymak zorunda kalıyorum. Tek bir butonla nasıl geçiş yapabilirim. Yardımcı olabilirseniz sevinirim.


Kullandığım kod şudur:

Private Sub btn5_Click()
Me.Sayfa1.SetFocus
Sayfa2.SetFocus
End Sub
17/05/2015, 20:37

alpeki99

Formun yüklendiğinde olayında tuş izlemeyi aktif edelim:

Me.KeyPreview = True

Sonrasında formun Tuşa Basılırken olayı şu şekilde olacak:


  Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

 
  If seciliTab = tablar.Pages.Count Then
    seciliTab = 0
  End If
 
  If KeyCode = vbKeyF10 Then
   
   tablar.Pages.Item(seciliTab).SetFocus
   seciliTab = seciliTab + 1
 
  End If
 
End Sub

seciliTab değişkeni bizim o anda hangi indekse sahip Tab içinde olduğumuz sakladığımız bir değişken. Her F10 tuşuna bastığımızda değerini bir arttırıyoruz ki sonraki indekse sahip Tab'a geçiş yapılsın. Pages.Count ile toplam Tab sayfasını öğreniyoruz eğer son Tab'da isek ilk Tab'a geçmek için değerini 0 yapıyoruz.

seciliTab değişkenini tüm formda kullanabilmek için Modül bazında Byte değişken türünde tanımlıyoruz:

Dim seciliTab As Byte
17/05/2015, 23:10

Dadadu

Kodu çalıştırmaya çalıştım ancak başaramadım. Ekte eklediğim örnek üzerinde gösterebilirseniz sevinirim. Tuşlara basarak sayfalar arasında ileri geri gidip gelmek istiyorum.
18/05/2015, 10:55

alpeki99

1- Formda bulunan sekme denetimine isim olarak TabCtl17 vermişsiniz ben isim olarak tablar vermiştim öncelikle bunu değiştirmelisiniz.

2- Dim seciliTab As Byte tanımlama işlemini prosedür içinde yapmışsınız, modül bazında olacaktı. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) satırının üstüne yazmalısınız.

Not : Ben F10 tuşu olarak tanımlamıştım ama Access'te F10 tuşu Ribbon ile Form arasında geçiş işlemi için kullanıldığından 2-3 defa tuşa bastıktan sonra işe yarar. vbKeyF9 olarak değiştirirseniz ilk defada sekmeler arasında geçiş yapacaktır.
18/05/2015, 13:46

alpeki99

Sorunuzu temel alan bir video ders hazırladım anlamadığınız yer olursa oradan takip edebilirsiniz:

18/05/2015, 20:47

Dadadu

Sn.alpeki99
Öncelikle ilginiz ve anlayışınız için teşekkür ederim. Videolu ders anlatımınız süper. Çok yararlı oldu. Değerli vaktinizi ayırarak yapmış olduğunuz bu çalışma için teşekkürü bir kez daha bir borç bilirim.