Przeglądanie danych w podformularzu po datach

0

Dzień dobry,

W ramach bazy mam za zadanie zrobić formularz, w którym będą przeglądane dane w zależności od wybranej daty.
Chodzi o kod lub sposób, dzięki któremu z widocznych na załączniku kontrolek do wpisywania dat (lub jednej- mam dwie koncepcje) w poniższym formularzu (który już mam) wyświetlały się tylko te, które zawierają datę zadaną w zapytaniu przez pole do wpisywania dat.

W wyniku zapytania mają wyświetlać się te dane (kontrole), które zawierają datę podaną w zapytaniu lub zawiera się w zakresie między datą rozpoczęcia, a zakończenia kontroli (czyli że w danym dniu dana kontrola jest "aktywna").

Z góry dziękuję za każdą pomoc! Szkic dat ver1.pngSzkic dat ver2.png

0

Szkic:

"SELECT * FROM [Kontrole] WHERE [DataRozp] >= @DataRozp AND [DataZak] <= @DataZak"

O to chodzi?

0

Chodzi, że @DataRozp i @DataZak wpisuje sobie użytkownik? Jeśli tak to blisko, ale jakby to w kodzie VBA wyglądało (w w którym miejscu).

1

Z tego co pamietam, to nie w kodzie VBA a we właściwościach podformularza możesz ustawić. Chyba . Filter.
Ale Accessem to się jakieś 20 lat temu bawiłem...

0

Wie ktoś może skąd w tym miejscu błąd składniowy? If Me.DataRozp <> "" And Me.DataZak <> "" Then q = "SELECT * FROM Kontrole WHERE [Data rozp kontroli] = # " & Me.DataRozp & " # AND [Data zakoń kontroli ] = # " & Me.DataZak & " # " Me.RecordSource = q End If

0

@.andy: zgodnie z prośbą podaje z dwóch prób (kod mam z innego forum, a druga wersja to próba dostosowania do mojego kodu)Błąd na forum1.PNGBłąd na forum2.PNG

0

Zamiast # użyj ':

If Me.DataRozp <> "" And Me.DataZak <> "" 
Then q = "SELECT * FROM Kontrole WHERE [Data rozp kontroli] = ' " & Me.DataRozp & " ' AND [Data zakoń kontroli ] = ' " & Me.DataZak & " ' " Me.RecordSource = q 
End If
0

@BlackBad: coś w tym stylu podpowiada Stackoverflow (np. tu: https://stackoverflow.com/questions/37971887/vba-syntax-error czy tu: https://stackoverflow.com/questions/37146632/syntax-error-in-vba-sql), ale # musi być, gdyż jest znakiem, że dane po nim są typu data

0
q = "SELECT * FROM Kontrole WHERE [Data rozp kontroli] = #" & Format( Me.DataRozp,"MM/dd/yyyy") & "# AND [Data zakoń kontroli] = #" & Format(Me.DataZak,"MM/dd/yyyy")  & "# " 
0

To weź sprawdź to najpierw po najniższej lini oporu z datą wpisana z łapy ? Coś jak:

q = "SELECT * FROM Kontrole WHERE [Data rozp kontroli] = #11-03-2021# AND [Data zakoń kontroli] = #11-04-2021# "

Ewentualnie z formatem europejskim 03-11-2021 i sprawdź czy Ci to w ogóle działa ?

0

Tak, czy siak dalej błąd składniowy. Zapewne chodzi o odpowiednie ułożenie ' wobec #

Odpowiadaj w wątkach

q = "SELECT * FROM Kontrole WHERE [Data rozp kontroli] = #" & Format( Me.DataRozp,"MM/dd/yyyy") & "# AND [Data zakoń kontroli] = #" & Format(Me.DataZak,"MM/dd/yyyy")  & "# " 
debug.print g

Wklej co ci wyskoczyło w Immediate Wingow (Ctrl+G w edytorze vba)

0

To: SELECT * FROM [0 Ogólne Dane Kontroli] WHERE [Data Rozpoczęcia czynności kontrolnych] = #01.02.2017# AND [Data zakończenia czynności kontrolnych] = #02.01.2017# (Nazwy tabel są już moje, wcześniejsze skróty pochodzą z testowej z innego forum)
Wygląda że jestem blisko...

0

A wklej to teraz w projekt kwerendy i zobacz czy masz błąd

0

Dalej błąd składniowy, może to wynika z następnej linijki

Me.RecordSource = q
0

A pełny komunikat

0

Pewnie już pokazywałem: Błąd na forum3.PNG
Znaczniki mniejszy-większy są docelowe. W podformularzu, mają się pojawiać w wyniku jej działania wszystkie kontrole między datą początkową, a końcową

0

Z komunikau wynika że brakuje # na końcu

0

No właśnie na innym forum o to poszło. Końcówka wygląda tak:```
& Me.DataZak & "#"
Debug.Print q

0

wklej zapytanie ze zmiennej q do projektu kwerendy i zobacz czy masz błąd

0

Wyszło że problem dotyczy formatu dat. wariant z myślnikami (np 05-11-2021) daje efekt, a z kropkami nie

0

Ale pisałem o tym w wątku wyrzej, kod który podawałem zmieniał format na odpowiedni:

Format( Me.DataRozp,"MM/dd/yyyy") nie sprawdziłeś?

0

Ech, ująłem to tak, że temat konwersji zamykam. Teraz krzyczy błąd 2465, że istnieje odwołanie do pola, który nie w wyrażeniu się nie pojawia (i z podformularza, gdzie ma następować sortowanie zostało usunięte).

0

Tak przedstawiasz problem, że ja nie rozumiem o czym piszesz (jakie sortowanie?)...

0

Sortowanie w sensie działanie tego kodu, czyli selekcja danych z bazy

0

selekcja to filtrowanie...

Nadal nie wiem o co chodzi bo nie widzę zapytania które puszczasz i pełnej treści komunikatu błedu

0

Już podaje co obecnie mi wyświetla, wraz z (prawie całą) treścią funkcjibłąd na forum2.PNG
Pole to o które krzyczy nie ma znaczenia w tym zapytaniu!

0

wychodzi ze bład jest w kwerendzie kwerenda z datami podformularz

p.s. w tabelach nazwach kolumn nie używaj polskich znaków spacji itd.

0

Nagłówek tego pod formularza wygląda tak (danych ze względu na RODO nie mogę):
błąd na forum3.PNG

0

operujesz na danych w tabeli a pokazujesz nagłówek formularza...

Czy jesteś w stanie wyswietlić dane przy pomocy kwerendy: kwerenda z datami podformularz

0

Ona jest zdefiniowana jako podformularz do formularza, do przeglądania danych po datach. Niestety nie, bo wyskakuje błąd 2465. Stworzyłem jeszcze dwie kwerendy, w których testowałem zgodnie z sugestią @BlackBad (strona 1), "na sucho" zapytania i tam to działa. Chodzi mi tylko żeby przełożyć to zapytanie tak, aby użytkownik sam wybierał daty, po których mógłby przeszukiwać kontrole.

1 użytkowników online, w tym zalogowanych: 0, gości: 1