🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych.msaccess
6 messages
6 total messages Started by LeszekN Thu, 27 Apr 2017 10:07
KeyCode a uzyskanie focusu
#137449
Author: LeszekN
Date: Thu, 27 Apr 2017 10:07
17 lines
1752 bytes
Witam
Jak to zrobić? aby w Fnazwa uzyskać fokus po naciśnięciu klawisza'y ale też w wpisał się klawisz, czyli przy naciśnięciu np. "z" w fnazwa pojawiło się to "z" 
Z uzyskaniem focusu niema problemu.

Private Sub Symbol_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
        Case 13 'ENTER
        DoCmd.OpenForm "frm", acNormal, , , acFormAdd, acDialog
        
        Case Else
              
            Forms!frmWyborTowary.FNazwa.SetFocus
    End Select
End Sub

pozdrawiam 
Leszek
Re: KeyCode a uzyskanie focusu
#137450
Author: Smyk
Date: Thu, 27 Apr 2017 13:44
23 lines
1722 bytes
LeszekN wrote at Do 27.04.2017 12:07:

> Witam
> Jak to zrobić? aby w Fnazwa uzyskać fokus po naciśnięciu klawisza'y ale
> też w wpisał się klawisz, czyli przy naciśnięciu np. "z" w fnazwa pojawiło
> się to "z" Z uzyskaniem focusu niema problemu.
> 
> Private Sub Symbol_KeyDown(KeyCode As Integer, Shift As Integer)
>     Select Case KeyCode
>         Case 13 'ENTER
>         DoCmd.OpenForm "frm", acNormal, , , acFormAdd, acDialog
>         
>         Case Else
>               
>             Forms!frmWyborTowary.FNazwa.SetFocus

              SendKeys Chr(KeyCode) '-- Moze tak ?

>     End Select
> End Sub


Ciao, Smyk
Re: KeyCode a uzyskanie focusu
#137451
Author: Zbigniew Bratko
Date: Fri, 28 Apr 2017 09:09
31 lines
1946 bytes
W dniu 2017-04-27 o 12:07, LeszekN pisze:
> Witam
> Jak to zrobić? aby w Fnazwa uzyskać fokus po naciśnięciu klawisza'y ale też w wpisał się klawisz, czyli przy naciśnięciu np. "z" w fnazwa pojawiło się to "z"
> Z uzyskaniem focusu niema problemu.
>
> Private Sub Symbol_KeyDown(KeyCode As Integer, Shift As Integer)
>     Select Case KeyCode
>         Case 13 'ENTER
>         DoCmd.OpenForm "frm", acNormal, , , acFormAdd, acDialog

Czyli w przypadku naciśnięcia ENTER w formancie "Symbol" otwierany jest 
formularz dialogowy "frm" i przypadek ten nas nie interesuje, gdyż 
formularz dialogowy wstrzymuje wykonywanie kodu w formularzu bieżącym.


>
>         Case Else
>
>             Forms!frmWyborTowary.FNazwa.SetFocus

Otwarty jest formularz "frmWyborTowary", ustawiasz fokus na formancie 
"FNazwa" i chcesz by w trakcie pisania tekstu w formancie "Symbol" taki 
sam tekst pojawił się w formancie "FNazwa".
Czy dobrze rozumuję ?


-- 
Pozdrowienia
BraZby
www.faq.accdb.pl
www.accdb.pl
Re: KeyCode a uzyskanie focusu
#137452
Author: LeszekN
Date: Fri, 28 Apr 2017 14:10
26 lines
2386 bytes
> Otwarty jest formularz "frmWyborTowary", ustawiasz fokus na formancie 
> "FNazwa" i chcesz by w trakcie pisania tekstu w formancie "Symbol" taki 
> sam tekst pojawił się w formancie "FNazwa".
> Czy dobrze rozumuję ?

Witam Pana Zbigniewa, dzięki za zainteresowanie.

Formant "symbol" pochodzi z podfomularza, jest to lista Towarów, po której poruszamy się za pomocą strzałek, enter otwiera Formularz ze szczegółami danego rekordu, natomiast przy naciśnięciu klawiszy od a do z oczywiście alt, ctrl, shift, liczby, itp chciałbym aby najpierw uzyskać focus na Fnazwa a potem pojawił się znak wciśnięty na klawiaturze a dalej wyjaśni to poniższy kod 

Private Sub FNazwa_Change()
On Error Resume Next
Static iLen As Byte
    rs.FindFirst "NazwaTowaru Like '" & Me!FNazwa.Text & "*'"
    If rs.NoMatch Then
        'zaczerniamy ten fragment, który nie pasuje
        Me!FNazwa.SelStart = iLen
        Me!FNazwa.SelLength = 255
    Else
        'znalazł rekord, synchronizujemy formularz z recordsetem
        iLen = Len(Me!FNazwa.Text)
        sB.Bookmark = rs.Bookmark
    End If
End Sub 

pozdrawiam 
Leszek
Re: KeyCode a uzyskanie focusu
#137453
Author: Zbigniew Bratko
Date: Fri, 28 Apr 2017 15:42
60 lines
3334 bytes
W dniu 2017-04-28 o 16:10, LeszekN pisze:
>> Otwarty jest formularz "frmWyborTowary", ustawiasz fokus na formancie
>> "FNazwa" i chcesz by w trakcie pisania tekstu w formancie "Symbol" taki
>> sam tekst pojawił się w formancie "FNazwa".
>> Czy dobrze rozumuję ?
>
> Witam Pana Zbigniewa, dzięki za zainteresowanie.
>
> Formant "symbol" pochodzi z podfomularza, jest to lista Towarów, po której poruszamy się za pomocą strzałek, enter otwiera Formularz ze szczegółami danego rekordu, natomiast przy naciśnięciu klawiszy od a do z oczywiście alt, ctrl, shift, liczby, itp chciałbym aby najpierw uzyskać focus na Fnazwa a potem pojawił się znak wciśnięty na klawiaturze a dalej wyjaśni to poniższy kod

[...]


Tak jak pisałem wcześniej. Formularz "frmWyborTowary" nie może być 
otwarty z argumentem acDialog (formularz dialogowy), bo wykonanie kodu 
zatrzyma się na linijce  otwarcia formularaz i zostanie wznowione po 
jego zamknięciu.

Może w ten sposób da się osiągnąć zamierzony cel:
'________________________________________________________________
Private Sub Symbol_KeyDown(KeyCode As Integer, Shift As Integer)
   If KeyCode = vbKeyReturn Then
     ' sprawdź, czy jest załadowany formularz
     If Not IsFormLoaded("frmWyborTowary") Then
       DoCmd.OpenForm "frmWyborTowary", acNormal, , , acFormAdd ', acDialog
       Forms("frmWyborTowary").Controls("fNazwa").SetFocus
       DoEvents
     End If
   End If

End Sub
'____________________________________________________________
Private Sub Symbol_KeyUp(KeyCode As Integer, Shift As Integer)
     ' sprawdź, czy jestn załadowany formularz
     If Not IsFormLoaded("frmWyborTowary") Then Exit Sub

    ' sprawdź, czy fokus jest w formancie "fNazwa"
   If StrComp("fNazwa", Forms("frmWyborTowary").ActiveControl.Name, 
vbTextCompare) <> 0 Then
     Forms("frmWyborTowary").Controls("fNazwa").SetFocus
     DoEvents
   End If

   ' wpisz tekst w formancie "fNazwa"
   Forms!frmWyborTowary.fNazwa.Text = Me.Symbol.Text

End Sub
'___________________________________________________________
Private Function IsFormLoaded(strFrmName As String) As Boolean
   On Error Resume Next
     IsFormLoaded = CBool(Forms(strFrmName).Hwnd)
End Function



-- 
Pozdrowienia
BraZby
www.faq.accdb.pl
www.accdb.pl
Re: KeyCode a uzyskanie focusu
#137454
Author: LeszekN
Date: Fri, 28 Apr 2017 22:05
16 lines
1858 bytes
Rozwiązanie problemu ;)

Private Sub Symbol_KeyDown(KeyCode As Integer, Shift As Integer)
    Forms!frmWybortowary.FNazwa.SetFocus
    Select Case KeyCode
        Case 13 ' ENTER
        DoCmd.OpenForm "frmWyborTowaru", acNormal, , , acFormAdd, acDialog
        Case Else
        SendKeys Chr(KeyCode) 
  End Select
End Sub

Podpowiedz Smyka rozwiązała problem uzyskania focusu oraz wpisanie klawisza.

pozdrawiam
Leszek
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads