logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Access - jak zmienić kolor tła raportu w zależności od typu wpisu?

08 Maj 2009 20:00 5300 9
REKLAMA
  • #1 6506941
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • Pomocny post
    #2 6507894
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Kolor tła odnosi się do całości raportu/sekcji (jako właściwości obiektu) i decyduje o tym pierwsza sprawdzana w warunku wartość.
    Private Sub Report_Activate()
    If Me.Tekst8 = "POCHWAŁA" Then
        Me.Section("szczegóły").BackColor = 8454143
        'i wszystkie pola tekstowe
        'lub zmienić we właściwościach na przejrzyste
    End If
    End Sub

    Jeżeli tekst w polu "Tekst8" ulega zmianom w wyniku warunku w otwartym już raporcie, to nie ma to już wpływu na kolor tła.
    Pozostaje utworzyć tyle kwerend i raportów ile jest możliwości, lub w przypadku wydruków użycie papieru w odp. kolorze.

    Edit: Jeszcze jedno rozwiązanie przyszło mi do głowy.
    Można rozdzielić otwieranie raportu (w formularzu) na dwa przyciski lub przez użycie pól opcji: pochwała/nagana i w zależności od wyboru przekazać kryteria do kwerendy. W raporcie (z użyciem w/w kodu) byłyby tylko pochwały lub tylko nagany w odp. kolorze tła...
  • REKLAMA
  • #3 6513019
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #4 6513215
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Jaka operacja przypisana jest do przycisku? Może wystarczy zmienić standardowy komunikat bęłdu (MsgBox Err.Description) na coś swojego...
  • #5 6513239
    Konto nie istnieje
    Konto nie istnieje  
  • #6 6513282
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Jeżeli szukanie rekordu odbywa się przez okno dialogowe (DoCmd.DoMenuItem...) to komunikat dotyczy wyników operacji. Tzn "Nie znaleziono rekordu" jest prawidłowym wynikiem, nie jest błędem i nie można go zmienić.
    Z drugiej strony coś mi tu nie gra. Skąd formularz pobiera rekordy z tabeli, czy kwerendy?
    Jeżeli z kwerendy to jakie są kryteria?
  • REKLAMA
  • #7 6513287
    Konto nie istnieje
    Konto nie istnieje  
  • #8 6513383
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Cytat:
    Mam formularz oparty częsciowo na tabeli i częściowo na kwerendzie.
    Sprawdź we właściwościach, w zakładce: Dane>źródło rekordów. Źródło rekordów formularza może być tylko jedno. Jeżeli źródłem jest kwerenda, to w zależności od kryteriów filtrowania może się tak wydarzyć.
  • #9 6519124
    Konto nie istnieje
    Konto nie istnieje  
  • #10 6519454
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Ad.2 Ustaw format pola tekstowego na "liczba", miejsca dziesiętne na "1".

    Ad.1 Najprawdopodobniej (zgaduję) źródłem danych formularza jest kwerenda pobierająca dane z kilku tabel, które mają nieprawidłowe (dla tego przypadku) relacje. Lub kwerenda grupująca z tabeli, gdzie nauczyciel jest tylko wiązany z innym polem (klasy, przedmioty).
    Najbardziej oczywistym źródłem byłaby tabela, w której znajdują się wszyscy nauczyciele. Być może zbyt uprościłeś bazę. Dane typu: nauczyciele, przedmioty, klasy, uczniowie powinny być w osobnych tabelach z odpowiednimi relacjami. Nauczyciel>Przedmiot (może nauczać wielu). Nauczyciel>Klasa (może być wychowawcą wielu) Uczeń>Klasa (może studiować wiele kierunków) itd.

Podsumowanie tematu

✨ Dyskusja dotyczy możliwości zmiany koloru tła raportu w Microsoft Access w zależności od typu wpisu, np. "pochwała" lub "nagana". Zaproponowano użycie zdarzenia Report_Activate z warunkiem sprawdzającym wartość pola (np. Tekst8) i ustawiającym kolor tła sekcji raportu. Zwrócono uwagę, że zmiana koloru tła w otwartym raporcie nie reaguje na dynamiczne zmiany wartości pola, co wymaga tworzenia osobnych raportów lub kwerend dla różnych typów wpisów. Alternatywnie zasugerowano rozdzielenie otwierania raportu na różne przyciski lub opcje wyboru, które przekazują odpowiednie kryteria do kwerendy. W dalszej części poruszono temat formularza z przyciskiem "Znajdź rekord", gdzie standardowy komunikat "Nie znaleziono rekordu" nie może być zmieniony na inny tekst, gdyż nie jest to błąd, lecz prawidłowy wynik operacji. Omówiono także problem źródła rekordów formularza, które może być oparte na tabeli lub kwerendzie, co wpływa na wyświetlane dane, np. wyświetlanie tylko nauczycieli będących wychowawcami. Wskazano na konieczność prawidłowego modelowania bazy danych z osobnymi tabelami i relacjami dla nauczycieli, przedmiotów, klas i uczniów. Na koniec podano sposób formatowania pola tekstowego w formularzu, aby wyświetlać średnią z jedną cyfrą po przecinku, ustawiając format liczbowy i liczbę miejsc dziesiętnych.
REKLAMA