🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych.msaccess
9 messages
9 total messages Started by lichu10 Sat, 01 Jul 2017 23:09
Typ obliczeniowy, wyświetlanie nazwy zamiast identyfikatora
#137482
Author: lichu10
Date: Sat, 01 Jul 2017 23:09
1 lines
2754 bytes
Witam! Buduję sobie w Access aplikację do zarządzania i analizy finansów firmowych i natrafiłem na taki chyba błahy problem. Dodam tylko na marginesie, że jestem zaawansowanym użytkownikiem komputerów i rozumiem relacyjne bazy danych, ale program Access jest dla mnie dość nowy i problemy sprawiają mi jego mechanizmy. Ok do rzeczy. Mam tabele 'Rok', 'Miesiąc', 'Projekty' (na razie, dopiero zacząłem to tworzyć, będzie ich dużo więcej). Chodzi o to, żeby zrobić relacje między miesiącem a rokiem, oraz projektem a miesiącem, czyli definiuję rok, przypisuję go do miesiąca (będzie 12 miesięcy z tym samym rokiem) a następnie przypisuję miesiąc do projektu. Wydało mi się to logiczne i elastyczne na przyszłość, gdy na przykład będę chciał wyciągnąć wszystkie projekty z danego roku lub danego okresu czasu. Chciałem w tabeli projekt wyświetlać miesiąc w postaci np. 'Czerwiec 2017' a w tabeli miesiąc mam pola: 'id', 'Miesiąc numer', 'Rok' (relacja z tabelą 'Rok'), "Miesiąc słownie', 'Nazwa wyświetlana' (typ obliczeniowy i tutaj mam obecnie następujące wyrażenie: [Miesiąc słownie] & " " & [Rok]). Problem w tym, że w polu 'Nazwa wyświetlana' wyświetla mi się Nazwa miesiąca i ID roku. Chciał bym natomiast żeby wyświetlało mi się tak jak napisałem na początku czyli nazwa miesiąca i rok np. 'Czerwiec 2017'. Czy może mi ktoś powiedzieć czemu mi to nie wychodzi? Nie szukam gotowego rozwiązania, ale wskazówki żeby się nauczyć. Oczywiście gotowe rozwiązanie mile widziane żebym się nauczył na przykładzie.
Re: Typ obliczeniowy, wyświetlanie nazwy zamiast identyfikatora
#137491
Author: Jacek
Date: Sun, 02 Jul 2017 07:43
31 lines
3193 bytes
Dnia Sat, 1 Jul 2017 16:09:29 -0700 (PDT), lichu10@gmail.com napisał(a):

> Witam! Buduję sobie w Access aplikację do zarządzania 
i analizy finansów firmowych i natrafiłem na taki chyba błahy problem.
Dodam tylko na marginesie, że jestem zaawansowanym użytkownikiem komputerów
i rozumiem relacyjne bazy danych, ale program Access jest dla mnie dość
nowy i problemy sprawiają mi jego mechanizmy. Ok do rzeczy. Mam tabele
'Rok', 'Miesiąc', 'Projekty' (na razie, dopiero zacząłem to tworzyć, będzie
ich dużo więcej). Chodzi o to, żeby zrobić relacje między miesiącem a
rokiem, oraz projektem a miesiącem, czyli definiuję rok, przypisuję go do
miesiąca (będzie 12 miesięcy z tym samym rokiem) a następnie przypisuję
miesiąc do projektu. Wydało mi się to logiczne i elastyczne na przyszłość,
gdy na przykład będę chciał wyciągnąć wszystkie projekty z danego roku lub
danego okresu czasu. Chciałem w tabeli projekt wyświetlać miesiąc w postaci
np. 'Czerwiec 2017' a w tabeli miesiąc mam pola: 'id', 'Miesiąc numer',
'Rok' (relacja z tabelą 'Rok'), "Miesiąc słownie', 'Nazwa wyświetlana' (typ
obliczeniowy i tutaj mam obecnie następujące wyrażenie: [Miesiąc słownie] &
" " & [Rok]). Problem w tym, że w polu 'Nazwa wyświetlana' wyświetla mi się
Nazwa miesiąca i ID roku. Chciał bym natomiast żeby wyświetlało mi się tak
jak napisałem na początku czyli nazwa miesiąca i rok np. 'Czerwiec 2017'.
Czy może mi ktoś powiedzieć czemu mi to nie wychodzi? Nie szukam gotowego
rozwiązania, ale wskazówki żeby się nauczyć. Oczywiście gotowe rozwiązanie
mile widziane żebym się nauczył na przykładzie.

Dlaczego w tebeli projekty nie masz pola 'DataProjektu'?
Nie rozumiem tabel 'Rok' i 'Miesiac'. Może wyjaśnisz dlaczego tak
wymyśliłeś?

---
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Re: Typ obliczeniowy, wyświetlanie nazwy zamiast identyfikatora
#137492
Author: LeszekN
Date: Tue, 04 Jul 2017 04:52
3 lines
1679 bytes
Trzeba tak ja kolega Jacek napisał, w tabeli projekty dodać pole DataProjektu
z daty można wyciągnąć rok oraz nazwę miesiąca 
Np: dla miesiąca Month(DataProjektu) dla roku  Year(DataProjektu)
Re: Typ obliczeniowy, wyświetlanie nazwy zamiast identyfikatora
#137495
Author: minfo
Date: Tue, 04 Jul 2017 08:35
8 lines
1885 bytes
W dniu wtorek, 4 lipca 2017 06:52:23 UTC+2 użytkownik LeszekN napisał:
> Trzeba tak ja kolega Jacek napisał, w tabeli projekty dodać pole DataProjektu
> z daty można wyciągnąć rok oraz nazwę miesiąca 
> Np: dla miesiąca Month(DataProjektu) dla roku  Year(DataProjektu)

Tak jak pisali Jacek i LeszekN
Na typie data działa i się sprawdza funkcja Format().
Poszukaj w helpie...
Re: Typ obliczeniowy, wyświetlanie nazwy zamiast identyfikatora
#137517
Author: minfo
Date: Tue, 04 Jul 2017 08:46
7 lines
1525 bytes
> Poszukaj w helpie...

prosto w MS:
'https://msdn.microsoft.com/VBA/Language-Reference-VBA/articles/format-function-visual-basic-for-applications

MF
Re: Typ obliczeniowy, wyświetlanie nazwy zamiast identyfikatora
#137488
Author: lichu10
Date: Fri, 07 Jul 2017 07:05
15 lines
3261 bytes
Ogólnie koncepcja taka wynikała z tego, że nie potrzebuję całych dat a tylko podział na miesiące, wydało mi się to łatwiejsze niż manipulowania datami. Odkąd pisałem moje zapytanie zorientowałem się że miałem złe założenia na temat podstawowych rzeczy w Access. Zrobiłem kurs i wiem już więcej. Dodałem pole daty w projektach tak jak sugerowaliście.

Natrafiłem jednak na inny problem.

Obecnie sytuacja jest następująca.

Mam tabelę 'Projekty', w niej pola: id, nazwa projektu, data, dział (i inne nieistotne w tym momencie). Mam też tabelę 'Koszty stałe' z polami: id, nazwa kosztu, kwota brutto, miesiąc, dział.

Potrzebuję wyciągnąć wszystkie projekty z danego miesiąca i działu, następnie wyciągnąć wszystkie koszty stałe z danego miesiąca z danego działu i wyświetlić wszystkie projekty z obliczoną wartością kosztów stałych przypisanych do każdego projektu proporcjonalnie do wartości projektu ale w ramach danego miesiąca i działu. Sama formuła na obliczenie tej wartości jest łatwa (wartość wszystkich kosztów stałych z danej kategorii i danego miesiąca * wartość projektu / wartość wszystkich projektów z danej kategorii i danego działu) ale ciężko mi się dostać do tych danych które występują w tej formule.

Poza tym chciał bym mieć listę wszystkich projektów z możliwością filtrowania właśnie po dziale i miesiącu. Czy da się zrobić taką kwerendę? Chciał bym też mieć formularz wyświetlający grupy projektów z możliwością wyboru kryteriów z listy, czyli jedna lista z wyborem zestawów <miesiąc rok> (dni nie potrzebuję w ogóle i zakresów dat też nie potrzebuję) a druga lista z kategorią (<wszystkie kategorie>, <kat 1>, <kat 2>, itd.).

Ja ogólnie jestem techniczny wiec sobie poradzę jak by mi ktoś wskazał kierunek właściwy lub nawet hasło pod jakim szukać wskazówki rozwiązania mojego problemu.

Serdecznie dziękuję za odpowiedzi i pozdrawiam, Rafał.
Re: Typ obliczeniowy, wyświetlanie nazwy zamiast identyfikatora
#137498
Author: minfo
Date: Sun, 09 Jul 2017 14:17
16 lines
2022 bytes
Czyli nie wiesz jak zacząć.
Napisz sobie kwerendy.

SQL1:

SELECT Format$([data];"YYYY MMMM") AS RokMiesiac, id, [nazwa projektu] FROM Projekty
GROUP BY Format$([data];"YYYY MMMM"), id, [nazwa projektu] 

SQL2:

SELECT ("2017" & Chr(32) & [miesiąc]) AS RokMiesiac, dział, Sum(kwota brutto] AS Koszt_suma FROM [Koszty stałe]
GROUP BY ("2017" & Chr(32) & [miesiąc]), dział, Sum(kwota brutto]

Potem 3 zapytanie łaczące w odpowiedni sposób 1 i 2.

to na początek.
Re: Typ obliczeniowy, wyświetlanie nazwy zamiast identyfikatora
#137487
Author: minfo
Date: Sun, 09 Jul 2017 14:22
24 lines
2425 bytes
W dniu niedziela, 9 lipca 2017 16:17:52 UTC+2 użytkownik mi...@onet.pl napisał:
> Czyli nie wiesz jak zacząć.
> Napisz sobie kwerendy.
> 
> SQL1:
> 
> SELECT Format$([data];"YYYY MMMM") AS RokMiesiac, id, [nazwa projektu] FROM Projekty
> GROUP BY Format$([data];"YYYY MMMM"), id, [nazwa projektu] 
> 
> SQL2:
> 
> SELECT ("2017" & Chr(32) & [miesiąc]) AS RokMiesiac, dział, Sum(kwota brutto] AS Koszt_suma FROM [Koszty stałe]
> GROUP BY ("2017" & Chr(32) & [miesiąc]), dział, Sum(kwota brutto]
> 
> Potem 3 zapytanie łaczące w odpowiedni sposób 1 i 2.
> 
> to na początek.

Założyłem, że tabela kosztów stałych dotyczy roku 2017 jeśli tak nie jest to trzeba zmienić poniższy wpis "2017" na pole w którym w tabeli koszty stałe będzie dany numer roku np.: [Rok]

SELECT ("2017" & Chr(32) & [miesiąc]) AS RokMiesiac, dział, Sum([kwota brutto]) AS Koszt_suma FROM [Koszty stałe] 
GROUP BY ("2017" & Chr(32) & [miesiąc]), dział, Sum([kwota brutto]) 

MF
Re: Typ obliczeniowy, wyświetlanie nazwy zamiast identyfikatora
#137493
Author: minfo
Date: Mon, 10 Jul 2017 04:58
16 lines
2108 bytes
jeszcze poprawki:

SQL1: 

SELECT Format$([data];"YYYY MMMM") AS RokMiesiac, Year(data), Month(data), dział, id, [nazwa projektu] FROM Projekty 
GROUP BY Format$([data];"YYYY MMMM"), id, [nazwa projektu] 

SQL2: 

SELECT ([Rok] & Chr(32) & [miesiąc]) AS RokMiesiac, [Rok], [Miesiac], dział, Sum(kwota brutto] AS Koszt_suma FROM [Koszty stałe] 
GROUP BY ([Rok] & Chr(32) & [miesiąc]), dział, Sum(kwota brutto] 


Dalej łączysz po Rok, Miesiac, dział.

MF
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads