Automatyczne dodanie daty + dopisywanie kolejnych rekordów.

0

Witam,

Staram się stworzyć zapytanie tak aby z tabeli Team pobrać wybrane dane ze wskacanie "Active = Y".
I to wszystko OK. Jednak w tworzonej tabeli chciałbym dodać jedną kolumnę więcej - o nazwie "Date:, gdzie będzie zapisywana dzisiejsza data.
Każde zapytanie powinno dopisywać się poniżej w tabeli Table1.

niestety nie mogę podołać kwesti automatyczne dodawania bieżącej daty po Querry, a także dopisywaniu danych poniżej.
Obecnie nadpisuje mi dane.

SELECT Team.TeamName, Team.EmployeeID, Team.Surrname, Team.Name, Date INTO Table1
FROM Team
WHERE (((Team.Active)="Y"));

Za wszelką pomoc z góry dziękuję.

pozdrawiam

0

Parę rzeczy powinieneś sobie uporządkować jeśli chodzi o tabelę w bazie danych, to w uproszczeniu:

  • tabela będzie pusta dopóki ktoś/coś nie wstawi tam danych
  • raz wstawione dane same się nie zmienią (musi zadziałać na nie jakaś zewnętrzna siła)
  • na tabeli możesz wykonywać operacje: Usuwania danych, dodawania danych, modyfikacji danych, zapytania o dane, zmiany struktury/nazwy tabeli

I teraz piszesz: "Jednak w tworzonej tabeli chciałbym dodać jedną kolumnę więcej - o nazwie "Date:, gdzie będzie zapisywana dzisiejsza data."

Kiedy będzie ta data zapisywana? Bo zapytanie nie modyfikuje danych..

0

Dziękuję za odpowidź.

najpierw opisze kocept może będzie czytelniejsze.

Istniej taka o to tabele z informacją o Teamnie

screenshot-20180726145736.png

Jedna z ważniejszych wartości to Active - czyli czy dany członek Team-u jest wciąż aktywyny czy już nie.

Następnie codziennie Leader zespołu wykonuje zapytanie gdzie widzi wszystkich aktywynych członków Teamu.
Tutaj sądziłem, że mogę dołożyć jedną kolumnę więcej z datą wykonywania tej czynności.
Czyli codziennie wykonujemy zapytanie a wynik dopisywany jest do tabeli z datą wykonania.

Mam nadzieję, że nie namieszałem.

Pozdrawiam.

0

Wynik zapytania, to po prostu statyczne dane. Nie zmienią się. Tak jakbyś wydrukował na kartce.

Jak chcesz dane zmienić, to musisz mieć jakiś interfejs (aplikację dedykowaną, klienta bazodanowego) i przez ten interfejs zmienić dane.

Pytanie, jaki masz interfejs do tej bazy?

0

Na dzień dzisiejszy jeszcze żaden ale myślałem nad komunikacją poprzez formularz.

0
Ghostdb napisał(a):

Na dzień dzisiejszy jeszcze żaden ale myślałem nad komunikacją poprzez formularz.

No to sobie ten formularz oprogramujesz. Będzie tam magiczny przycisk "Zapisz" i pod ten przycisk podepniesz kod, który zaktualizuje dane w bazie.

0

jakaś mała podpowiedź co do końcowej wypowiedzi?

i pod ten przycisk podepniesz kod, który zaktualizuje dane w bazie

1

Innymi słowy skopiujesz interesujące Cie dane z "Twojej tabelki" do tabeli z logami (bo chyba w sumie o to się rozbija ze chcesz mieć logi aktualnej sytuacji żeby np. sprawdzić jaki był stan tydzień temu ?) + wprowadzisz do "dodatkowej kolumny" = LogDate (czy jakkolwiek) datę z dziś Date(). Możesz to zrobić w VBA albo odpalając kwerendę dodająca dane, whatever.

EDIT:
np. coś w ten deseń:

    Dim  mySql  As String
    
    mySql = "SELECT Team.TeamName, Team.EmployeeID, Team.Surrname, Team.Name, Date INTO Table1 FROM Team WHERE (((Team.Active)='Y'));"
    DoCmd.RunSQL mySql

Ps. Zapytanie skopiowałem od Ciebie ...

0

Dziękuję za podpowiedź i powalczę z tematem.
Mam nadzieję, że z pozytywnym rezultatem.

0

Witam,

Poradziłem sobie z datą, jednak mam obecnie inną blokadę.

Konkretnie mam oto takie zapytanie:

SELECT WH_Team.EmployeeID, WH_Team.Name, WH_Team.Surrname, Date() AS [Day], OSI_Att.Attandance, OSI_Att.Checked
INTO Table1
FROM WH_Team, OSI_Att
WHERE (((WH_Team.Active)="Y"));

Dodaje mi ono to table1 informację o aktywnych osobach danego dnia.

Teraz chciałbym aby te dane były gromadzone albo w tej samej tabeli ablo w innej ale tak aby się nie dublowały.
Zrobiłem coś takiego i po zapytaniu dane wyświetlają się nie powielone ale w tabeli dalej dopisywane są zdublowane rekordy.

INSERT INTO table2 ( EmployeeID, Name, Surrname, [Day], Attandance, Checked )
SELECT DISTINCT Result_OSI_Att.EmployeeID, Result_OSI_Att.Name, Result_OSI_Att.Surrname, Result_OSI_Att.Day, Result_OSI_Att.Attandance, Result_OSI_Att.Checked
FROM Result_OSI_Att;

Proszę o wsparcie.

0

LEFT JOIN z Nullem
:)

0

chyba się zgubiłem, w którym miejscu?

dziękuję

0

Na końcu.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.