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. 

      •  

 

 

 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *