🚀 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 03:07
KeyCode a uzyskanie focusu
#133909
Author: LeszekN
Date: Thu, 27 Apr 2017 03:07
18 lines
578 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
#133910
Author: Smyk
Date: Thu, 27 Apr 2017 15:44
22 lines
625 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
#133912
Author: LeszekN
Date: Fri, 28 Apr 2017 07:10
32 lines
1259 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
#133911
Author: Zbigniew Bratko
Date: Fri, 28 Apr 2017 11:09
30 lines
1009 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
#133914
Author: LeszekN
Date: Fri, 28 Apr 2017 15:05
16 lines
439 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
Re: KeyCode a uzyskanie focusu
#133913
Author: Zbigniew Bratko
Date: Fri, 28 Apr 2017 17:42
59 lines
2289 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
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