Skip to main content

AccessTr.neT


Keypress İle Listedeki Son Kayda Gitmek

Keypress İle Listedeki Son Kayda Gitmek

Çözüldü #1
bir dinamik arama metin kutumuz var liste girilen her karakter ile güncelleniyor

ama listede tek eleman kalması için çok fazla karakter girmemiz gerekiyor
mesela arama kutusuna 4 karakter girdikten sonra listede 29 kayıt kalıyor 
...............
Reno Sembol 2010 model 11.000 km
Reno Sembol 2010 model 21.000 km
Reno Sembol 2010 model 31.000 km
...............
.....................
..............
Reno Sembol 2010 model 91.000 km

bizim istediğimiz kayıt en sonda 
biz mouse elimize almadan en son sıradaki kayda keypress ile nasıl gideriz

Kod:
Private Sub ara_KeyPress(KeyAscii As Integer)
On Error Resume Next
    If KeyAscii = 43 Then '+ tuşu
        If (Me.lst_ara.ListCount = 2) Then 'sutun başları yoksa 1 olacak
            Me.lst_ara.Width = 0
            Me.lst_ara.Height = 0
            kayitDegistir CInt(Me.lst_ara.ItemData(1))'sutun başları yoksa 0 olacak
            Me.btn_ek2.SetFocus
            lst_ara.Visible = False
        Else
            Call closingMsgBox("Listede birden fazla kayıt var", "Kayıda Gidilemeyecek", 1)
        End If
    End If
End Sub

bunda bir yerleri değiştirmek lazım ama nereleri
@benbendedeilem
Son Düzenleme: 30/04/2020, 11:37, Düzenleyen: accessman.
Cevapla
#2
Herhangi bir kod girmeden ctrl + shift + 7 ile ilk satıra, ctrl + shift + 1 ile son satıra gidilebilir.
Cevapla
#3
Liste derken listbox ise alttaki kodu uyarlayabilirsiniz normal Vba da çalışıyor.


ListBox1.Selected(ListBox1.ListCount - 1) = True 'True olursa son satira gider Listboxun

ListBox1.ListIndex = ListBox1.ListCount - 1 'son satira gider Listboxun
Cevapla
#4
Kod:
Private Sub ara_KeyPress(KeyAscii As Integer)
On Error Resume Next
    If KeyAscii = 43 Then   '+ tuşu
        If (Me.lst_ara.ListCount = 2) Then
            Me.lst_ara.Width = 0
            Me.lst_ara.Height = 0
            kayitDegistir CInt(Me.lst_ara.ItemData(1))
            Me.btn_ek2.SetFocus
            lst_ara.Visible = False
        Else
            Call closingMsgBox("Listede birden fazla kayıt var", "Kayıda Gidilemeyecek", 1)
        End If
    ElseIf KeyAscii = 45 Then   '- tuşu
        If (Me.lst_ara.ListCount >= 2) Then
            Me.lst_ara.Width = 0
            Me.lst_ara.Height = 0
            kayitDegistir CInt(Me.lst_ara.ItemData(Me.lst_ara.ListCount - 1))
            Me.btn_ek2.SetFocus
            lst_ara.Visible = False
        Else
            Call closingMsgBox("Listede birden fazla kayıt var", "Kayıda Gidilemeyecek", 1)
        End If
    Else
        'MsgBox KeyAscii
    End If
End Sub

teşekkürler arkadaşlar şimdilik şöyle çözüm buldum
@benbendedeilem
Son Düzenleme: 30/04/2020, 12:03, Düzenleyen: accessman.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task