MS ACCESS - szare pole podpowiedzi w polu tekstowym.

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
0

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

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.

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/

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".

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.

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