Enter Tuşu İle Listede Tek Kalan Kayıda Gitmek

30/04/2020, 08:15

accessman

Arama kutusuna yazarken dinamik olarak kayıt listesini güncelliyoruz bazen listede tek eleman kalıyor. 
Klavyeyi bırakıp mouse alıp tek kalan elemanı tıklayıp ilgili kayıda gidiyoruz
halbuki tek eleman kaldığında enter tuşuna basıp listede tek kalan kayıda gitsek daha kolay olacak
bunu nasıl yapabiliriz
Kod:
Private Sub Field1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
'Run Code
End If
End Sub
şöyle bir şey yazmak lazım galiba ama nereye
30/04/2020, 09:17

Oğuz Türkyılmaz

3-4 yıl once bende aynı soruyu sormuştum ama çözüm bulunamamıştı. Ozellikle muhasebe kökenli iseniz hızlı fatura irsaliye ve sipariş verileri  girebilmek için şart ama cevap bulmam mümkün olmamıştı.
30/04/2020, 09:27

accessman

inşallah çözüm bulunur
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
şimdilik böyle bir çözüm buldum
Bunu Return ile yapamadım gerçi şart değil "+" da hemen onun üstünde ama yine Bunu vbKeyReturn ile yapmanın yolu var mı
30/04/2020, 11:56

ozanakkaya

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
   
If (KeyCode = vbKeyReturn) And ((Shift And acAltMask) <> 0) Then
KeyCode = 0
Me!Liste0.Selected(0) = True
End If
   
End Sub

Alt + Enter ile listedeki ilk kayda gidilebilir.
30/04/2020, 12:06

accessman

teşekkürler