MS ACCESS - szare pole podpowiedzi w polu tekstowym.

Odpowiedz Nowy wątek
2019-01-18 11:43
0

Hej.
Chciałbym zrobić pewien bajer, o którym już pisałem na forum, ale nie zrobiłem go. Chciałbym, aby w formularzu mojego pola tekstowego wyświetlała się podpowiedź, dopóki ktoś nie wypełni pola lub nie "odkliknie" się w inne miejsce. Ktoś podlinkował ten temat na stacku: https://stackoverflow.com/questions/21536192/textbox-text-disappear-on-text-entry-excel-vba. Próbowałem zastosować rozwiązanie, jednak coś nie poszło. Podlinkowany kod zakłada istnienie jakiegoś guziczka, jednak ja takiego nie posiadam. Mój kod VBA wygląda tak jak poniżej - jak uczynić, aby to zadziałało?

Private Sub OK_imie_wpr_Enter()
    With OK_imie_wpr
        If .Text = "Proszę wpisać imię OK tutaj." Then
            .ForeColor = &H80000008
            .Text = ""
        End If
    End With
End Sub

Private Sub OK_imie_wpr_AfterUpdate()
    With OK_imie_wpr
        If .Text = "" Then
            .ForeColor = &HC0C0C0
            .Text = "Please Enter Name Here"
        End If
    End With
End Sub

Private Sub OK_imie_wpr_Initialize()
    OK_imie_wpr.ForeColor = &HC0C0C0
    OK_imie_wpr.Text = "Please Enter Name Here"
    button_rekord.SetFocus
End Sub

Pozostało 580 znaków

2019-01-18 11:50
0

Chyba musisz dołączyć plik Accessa z tym formularzem.

Pozostało 580 znaków

2019-01-18 11:55
1

Nie musisz mieć żadnego przycisku ... po prostu w innych zdarzeniach oprogramuj zmiany. Możesz np na wejściu po ustawiać odpowiednie komunikaty i zmienić kolor na szary, a gdy pole dostaje fokus zmienić na czarny (czy tam jaki chcesz) i 2 x po updacie jeśli została wprowadzona wartość to tez taki kolor, a jak nie to ma zostać "podpowiedź" i szary.

Pozostało 580 znaków

2019-01-18 12:05
2

Może zamiast wspierać się przykładami z Excela, opartego na UserForm, zobaczysz jak robią to inni: https://www.devhut.net/2018/09/14/access-textbox-hint-text/

Obadam to, dzięki. - Tomasz Papryka 2019-01-18 12:22
hmm interesująco to rozwiązał - w pewnych przypadkach pewnie to najlepsze podejście - BlackBad 2019-01-18 12:33

Pozostało 580 znaków

2019-01-18 12:52
0

@BlackBad: Przeanalizowałem Twoje rozwiązanie i okej, napisałeś:

Możesz np na wejściu po ustawiać odpowiednie komunikaty

I próbowałem ustawić wartość tego pola przy ładowaniu formularza - jednak nie zadziałało.
Następnie próbowałem ustawić też "na wejściu" tego pola tekstowego, również nie działa.
Działa w przypadku kiedy ustawiłem zdarzenie na: "kliknięcie".

edytowany 2x, ostatnio: Tomasz Papryka, 2019-01-18 12:54

Pozostało 580 znaków

2019-01-18 13:38
1

Generalnie teraz załapałem, że Ty to chcesz ustawić na textBoxach podpiętych pod tabele najpewniej co już jest dość ryzykowne :) bo musisz pamiętać, że ta "podpowiedź" to nic innego jak wprowadzenie wartości do pola i zmiana koloru ... czyli przy zapisie danych jeśli tego nie "wycofasz" to zapiszesz podpowiedź do tabeli. Do tej pory cały czas miałem w głowie TextBoxy nie związane z tabelą.

Tak czy inaczej dla Twojego pola "Nazwa projektu" wprowadzenie podpowiedzi i wycofanie jej jeśli nic nie zostało wpisane będzie wyglądać tak:

Private Sub Tekst1084_GotFocus()

    With Tekst1084
        If .Text = "" Then
            .ForeColor = &HC0C0C0
            .Text = "Wprowadz nazwe projektu"
        End If
    End With

End Sub

Private Sub Tekst1084_LostFocus()

    With Tekst1084
        If .Text = "Wprowadz nazwe projektu" Then
            .ForeColor = &H80000008
            .Text = ""
        End If
    End With

End Sub

Edit: to przy uzyskaniu i utracie focusu na polu ... przy odpaleniu formularza też by się dało to zrobić pewnie (nie przypominam sobie żebym tego potrzebował a i dawno nic nie robiłem w Accessie więc dla tego tylko "pewnie") ale to już więcej zabawy bo musisz oprogramować każde możliwe wyjście z formularza i możliwe opcje zapisania rekordu, czyli przycisk "zapisz", przejście do innego rekordu etc.

edytowany 1x, ostatnio: BlackBad, 2019-01-18 13:42
W accessie nie ma możliwości ustawienia kilku wartości na start, podczas ładowania formularza? Przykładowo przy: Private Sub Form_Load() ? Po prostu, na sztywno to wpisać? - Tomasz Papryka 2019-01-18 13:47
Sprawdź ten link od Panczo - ściągnij sobie ten przykład i zobacz jak to jest tam rozwiązane. W Twojej sytuacji to chyba najlepsze rozwiązanie :) - BlackBad 2019-01-18 14:33

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0