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
Author: LeszekN
Date: Thu, 27 Apr 2017 10:07
Date: Thu, 27 Apr 2017 10:07
17 lines
1752 bytes
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
Author: Smyk
Date: Thu, 27 Apr 2017 13:44
Date: Thu, 27 Apr 2017 13:44
23 lines
1722 bytes
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
Author: Zbigniew Bratko
Date: Fri, 28 Apr 2017 09:09
Date: Fri, 28 Apr 2017 09:09
31 lines
1946 bytes
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
Author: LeszekN
Date: Fri, 28 Apr 2017 14:10
Date: Fri, 28 Apr 2017 14:10
26 lines
2386 bytes
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
Author: Zbigniew Bratko
Date: Fri, 28 Apr 2017 15:42
Date: Fri, 28 Apr 2017 15:42
60 lines
3334 bytes
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
Author: LeszekN
Date: Fri, 28 Apr 2017 22:05
Date: Fri, 28 Apr 2017 22:05
16 lines
1858 bytes
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