Podformularz z załącznikami

W poprzedniej notce opisywałam wstawianie załączników do pola tabeli:
Pole typu załącznik

Szybko i sprawnie można w ten sposób wstawić do każdego rekordu związaną z nim grafikę. Jeżeli jednak dla każdego rekordu jest przypisanych więcej załączników i to w różnych formatach plików,   lepiej zrobić to inaczej. 
Jeżeli w polu typu Załącznik jest kilka różnych plików i w formularzu mamy ustawione wyświetlanie jako ikona – widoczna będzie ikona pierwszego z nich. Jeżeli ustawimy ten formant jako Spinacz – zobaczymy to:

kliknij, aby powiększyć

Widzimy, że są tu 4 załączniki i po kliknięciu w formant, można je zobaczyć:

kliknij, aby powiększyć

W tym przypadku – nazwy załączonych plików wprawdzie wskazują mniej więcej, jaka jest ich zawartość, ale czasem może być to zawodne. 

Moim zdaniem lepszym rozwiązaniem jest stworzenie nowej tabeli, tylko z załącznikami, będącej źródłem rekordów dla podformularza. 
Wzór takiej tabeli to np.

kliknij, aby powiększyć

Przykład rekordów do jednej z książek:

kliknij, aby powiększyć

Do formularza można wstawić jako podformularza całą tabelę: 

kliknij, aby powiększyć

Ja z reguły tworzę tu jednak podformularz ciągły – można lepiej dopasować szerokości, widoczność, kolory itd. 

kliknij, aby powiększyć

Jest to metoda bardziej elastyczna, również umożliwia otwieranie/dodawanie/usuwanie załączników. 


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Pole typu załącznik

Pole typu Załącznik to kolumna Tabeli umożliwiająca wstawianie do bazy danych różnego typu plików jako załączników. 

Załącznikiem może być dowolny plik graficzny, PDF, plik aplikacji itp. Zostanie on zapisany w tabeli. Choć przy dużej ilości rekordów i wielu dużych załącznikach – może znacznie zwiększyć pojemność bazy danych. 

Dodawanie załączników do tabeli w najprostszy sposób to dwukrotne kliknięcie w kolumnie Załącznika, a następnie naciśnięcie przycisku Dodaj. 

kliknij, aby powiększyć

Następnie wybieramy plik do wstawienia

Do każdego pola typu Załącznik można wstawić większą ilość załączników, można je też usuwać, otwierać. 

Gdy w ten sposób wstawimy do pola plik graficzny – można ustawić wyświetlanie go jako obrazu w formularzu. 
W arkuszu właściwości ustawiamy wyświetlanie jako Ikona/Obraz

kliknij, aby powiększyć

Efekt końcowy wygląda tak:

Jest to całkiem dobry sposób na wstawianie pojedynczych obrazów do aplikacji. 
W przypadku większej ilości załączników dla każdego rekordu 
(i to nie tylko obrazów) stosuję inną metodę. Tworzę osobną tabelę, tam wstawiam załączniki, a następnie w formularzu dla każdego rekordu – podformularz z załącznikami. W te sposób mam szybki dostęp do wszystkich załączników. 
No i oczywiście – robię to wszystko kodem VBA. 

To już jednak tematy na kolejne notki. 


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Wstawianie połączonych obrazów w rekordach formularza

Wstawianiu obrazów w obrazach poświęcona jest notka:
Wstawianie obrazów w formularzu
Opisany tam jest jednak sposób do wstawiania obrazów „stałych”, identycznych dla każdego rekordu, a więc przeznaczonych raczej dla części wspólnych formularza np.nagłówka czy stopki. Chcąc uzależnić wyświetlany obraz od aktualnego rekordu konieczne jest jego powiązanie z źródłem danych formularza. 

Załóżmy, że mamy tabelę o takim układzie danych:

W kolumnie Foto oczywiście może być zamieszczony pełna nazwa pliku (czyli wraz z pełną ścieżką), ale ja stosuję w swoich projektach metodę bardziej elastyczną, umożliwiającą przeniesienie całości na inny komputer czy też do innej lokalizacji. bez konieczności aktualizacji adresów w tabeli.  
Najczęściej przyjmuję tu zasadę, że katalogiem nadrzędnym jest katalog, w którym znajduje się aplikacja Access. Tworzę w nim folder FOTO (i ewentualnie w nim podkatalogi) i tam umieszczam zdjęcia czy też inne pliki połączone. 

W praktyce wygląda to tak. 
W formularzu , dla którego źródłem danych jest tabela jw. wstawiam formant Obraz i w arkuszu  właściwości jako źródło danych wskazuję Kreatora wyrażeń:

kliknij, aby powiększyć

W kreatorze wyrażeń przechodzę do Funkcje –> Biblioteka(to nazwa moje aplikacji) i z modułu ModuleFunctionPUB wybieram funkcję AdresSG()> 

W module ModuleFunctionPUB mam zapisaną funkcję zwracającą adres bieżącej aplikacji Access. Wygląda ona tak: 

Public Function AdresSG()
’Adres folderu, w którym znajduje się aktualna aplikacja Access
AdresSG = CurrentProject.Path
End Function

Dokładam do tego fragment do podkatalogów, a następnie z pól formularza wybieram Foto czyli nazwę pliku obrazu:

Finalnie – źródłem danych dla tego formantu jest wyrażenie: 
=AdresSG() & „\Foto\Kategorie\” & [Foto]

Efekt końcowy wygląda tak:

Dla każdego rekordu jest widoczne przypisane do niego zdjęcie. Po przeniesieniu w inne miejsce, jeżeli zostanie zachowany ten sam układ katalogu – nie trzeba zmieniać żadnych linków, gdyż funkcja sama zlokalizuje na dysku położenie obrazu. 

      •  

 

 

 

Wstawianie obrazów w formularzu

Obraz do formularza wstawiamy tak jak wszystkie formanty –  
z grupy Formanty na karcie Projekt

kliknij, aby powiększyć

Jeżeli zaznaczony jest przycisk Użyj kreatorów kontrolek – automatycznie otwory się folder do wskazania pliku graficznego, który chcemy wstawić. 

kliknij, aby powiększyć

Formant Obraz, tak jak każdy z obiektów Accessa, ma swój Arkusz właściwości, gdzie ustawiamy wszystkie jego właściwości.  

Najważniejsze z właściwości to:

    • typ obrazu
kliknij, aby powiększyć

Są tu 3 opcje:

        • osadzony
          obraz jest zapisany w formularzu
        • połączony
          obraz jest ładowany z pliku (wymagana jest tu pełna ścieżka do pliku), po przeniesieniu w inne miejsce – nie będzie wyświetlany.
          Zajmuje mniej miejsca niż obraz osadzony, ale wymaga stałego połączenia z plikiem źródłowym.
        • udostępniony
          obraz jest współdzielony pomiędzy różnymi formularzami/raportami. 
          Najczęściej stosuje się do wstawiania logo jednakowego w różnych miejscach, pozwala na łatwą podmianę i jednocześnie zmniejsza wielkość bazy
    • tryb zmiany obrazu
kliknij, aby powiększyć

Właściwość ta decyduje, w jaki sposób wpasować obraz do wielkości formantu. Ma to duże znaczenie, gdyż raczej rzadko rozmiar formantu jest taki sam jak wielkość wstawianej grafiki. 

Są tu 3 opcje:

        • Obetnij
          jeżeli obraz jest większy niż formant w formularzu, widoczny będzie tylko jego fragment
kliknij, aby powiększyć
        • Rozciągnij
          rozmiar obrazu jest zmieniany do wielkości formantu. Zmiana proporcji może spowodować zniekształcenie
          kliknij, aby powiększyć
        • Powiększ
          obraz jest dopasowany do wielkości formantu, ale z zachowaniem oryginalnych proporcji
          kliknij, aby powiększyć
    • wyrównanie obrazu
kliknij, aby powiększyć

dostępne możliwości:
 – lewe górne
 – prawe górne
 – środkowe
 – lewe dolne
 – prawe dolne

Pozostałe właściwości i metody są standardowe, jak w przypadku innych formantów formularza.
Warto jednak pamiętać, że ten sposób wstawiania obrazu jest stosowany głównie w nagłówkach czy stopkach czy formularzach niezwiązanych.  Chcąc uzależnić obraz od aktualnego rekordu – stosuje się inne metody. 


 

 

 

Podformularz

Podformularz to jeden z formantów formularza. W formularzu głównym (nadrzędnym) umieszczony jest formularz podrzędny. 
Formant dostępny jest w grupie Formantów na karcie Projekt

kliknij, aby powiększyć

Załóżmy, że mamy formularz pojedynczy Kategorie, który będzie formularzem  nadrzędnym: 

kliknij, aby powiększyć

oraz formularz Książki, który będzie wstawiony jako podformularz (czyli formularz podrzędny).

kliknij, aby powiększyć

Przy wstawianiu formantu podformularza automatycznie uruchamia się Kreator podformularzy:

kliknij, aby powiększyć
kliknij, aby powiększyć

Efekt końcowy wygląda tak:

kliknij, aby powiększyć

Można jeszcze ewentualnie dopasować widok formularza, ukryć niepotrzebne kolumny itp. 

kliknij, aby powiększyć

Można też przełączyć widok podformularza na Arkusz danych:

kliknij, aby powiększyć

Przy każdej kategorii – pojawiają się przypisane do niej książki. Przejście do innej kategorii – zmienia od razu rekordy w podformularzu.

Warto też zwrócić uwagę, że formularz z podformularzem (może być ich kilka różnych)  to coś zupełnie innego niż formularz dzielony – różnią się przede wszystkim źródłem danych – są różne dla formularza i podformularza, a nie jednakowe jak w formularzu dzielonym. 

Ja akurat często stosuję ten formant w swoich projektach. Zdecydowanie ułatwia pracę. 


 

 

 

Sekcje formularza

Nagłówek i stopka to części formularza położone na górze (nagłówek) i na dole (stopka). 

W projekcie nowego formularza – domyślnym ustawieniem jest brak zarówno stopki jak i formularza. Włączamy je klikając prawym przyciskiem myszy w widoku projektu formularza i wybierając opcję z menu podręcznego. 

Pomiędzy nagłówkiem i stopką znajduje się sekcja szczegóły. 

Każda sekcja ma swój własny arkusz właściwości, gdzie można ustawić ich podstawowe właściwości i związane z nimi zdarzenia. 

kliknij, aby powiększyć
kliknij, aby powiększyć
kliknij, aby powiększyć

Szczegóły – to część formularza, w której umieszczane pola związane z źródłem danych, zmieniające wartość po przejściu do innego rekordu.
Nagłówek/stopka – takie same dla każdego rekordu, służą do umieszczania wspólnych formantów np. tytułu, przycisków makr itp. 

Jeżeli wysokość formularza jest większa niż widok na ekranie – nagłówek i stopka są zawsze widoczne, pasek przewijania jest widoczny tylko w sekcji szczegóły. 

Moim zdaniem nagłówek i stopka powinny być w każdym formularzu, ja zawsze je stosuję w swoich projektach. Są bardzo przydatne i ułatwiają poruszanie się po aplikacji. 


 

 

 

Formularz dzielony

Formularz dzielony to formularz, w którym na jednym ekranie widoczny są  2, oparte o to samo źródło danych  formularze: formularz ciągły oraz formularz pojedynczy. W obydwu częściach formularza dzielonego aktywny jest ten sam rekord. 

kliknij, aby powiększyć

Aktywując konkretny rekord w arkuszu danych, jednocześnie zmienia się widok w części formularza pojedynczego.  

Formularz dzielony tworzymy ustawiając Widok domyślny w karcie Format w arkuszu właściwości

kliknij, aby powiększyć

Położenie arkusza danych w formularzu można ustawić również w karcie Format w arkuszu właściwości:

kliknij, aby powiększyć

Wszystkie inne właściwości formularza są takie same jak w innych formularzach. 
Najczęściej jest wykorzystywany w ten sposób, że w części formularza pojedynczego występują dodatkowe pola oparte o różne wyrażenia. Bywa przydatny.