MS ACCESS - Jak utworzyć raport z wybranym rekordem?

0

Hej - szybkie pytanko. Chcę utworzyć raport z wybranym rekordem, a nie ze wszystkimi rekordami w bazie. Sam raport stworzyć jest prosto, tylko jak załadować do niego dane z pożądanego dla mnie rekordu?

1

DoCmd.OpenReport parametr WhereCondition

0

@Panczo
Jak wrzucam coś takiego:

Private Sub Polecenie661_Click()
DoCmd.OpenReport "Raport1", acViewPreview, , "[ID_kartyprojektu] = '" & [numer_wybor_wpr] & "'"
End Sub

To otwiera mi się pusty formularz.
ID_kartyprojektu to miejsce w tabeli, w którym przechowuje moje ID, które tam jest tekstem - np.: "Ziemniak".
Numer_wybor_wpr to miejsce w formularzu, combobox, z którego mogę wybrać istniejące ID z mojej bazy.
ID_kartyprojektu_wpr to miejsce w formularzu, w którym wpisuje ID dla mojego projektu.

1

bądź precyzyjny kod otwiera raport ty piszesz o formularzu...

Reszty nie kumam, budujesz warunek filtru na podstawie kontrolki numer_wybor_wpr, czyli jeżeli ta kontrolka ma wybrane 1 to warunek będzie taki [ID_kartyprojektu] = '1', a jeśli ziemniak to taki [ID_kartyprojektu] = 'ziemniak', co do zasady powinieneś dać tam wartość której szukasz, nie wiem co do kodu ma ID_kartyprojektu_wpr...

0

Odpowiadaj w postach...

Starałem się napisać pomocny opis, bo pisaliście mi, że piszę precyzyjnie.

Piszesz NIE precyzjnie

Generalnie to co chce osiągnąć - na podstawie wybranej wartości w okienku dajmy na to "OKIENKO 1" wartości 1 ma Access znajdować w bazie właśnie tę wartość 1 i uzupełniać otworzony formularz danymi przypisanymi do niego.

Precyzyjność polega na tym, że piszemy dokładnie o co nam chodzi, w Accessie mamy obiekty: Tabele, Kwerendy, formularze, Raporty, Makra, Moduły, Formularze maja kontrolki: polatekstowe, combo boxy, listy, karty itd. Ty zaczynasz wątek od raportu, teraz piszesz już tylko o formularzu... Przeczytaj dokładnie to co napisałeś, odrzuć wiedzę która masz i zastanów się ile z tego rozumiesz, jak człowiek któremu tłumaczysz nie widząc na oczy twojego projektu. ma zinterpretować te stwierdzenia:

podstawie wybranej wartości w okienku dajmy na to "OKIENKO 1" Co to jest okienko? co to jest wybrana wartość? Gdzie ona się znajduje?

ma Access znajdować w bazie właśnie tę wartość 1 i uzupełniać otworzony formularz danymi przypisanymi do niego. w nomenklaturze Access-a baza to plik accdb, gdzie ma szukać?

Precyzyjny opis jest taki:

Mam formularz "okienko 1" w comboboxie na nim jest wybierana wartość, np. 1. Jak otworzyć formularz, który będzie przefiltrowany na podstawie tego combo?

Tak, ze nie mam problemu ze zrozumieniem tego co robisz i opis mogę odnieść do rzeczy z Accessa, a nie Twojej wyobraźni...

@Panczo Nie złość się, wciąż się uczę.

Nie złoszczę się, jak nie umiem pomóc to nie pomogam

0

@Panczo: Dobra, w takim razie powolutku, jeszcze raz.

  1. Mam utworzoną jedną tabelę, w której przechowuje w jednym rekordzie dane różnego typu: tekst długi, tekst krótki, liczba, data. Każdy rekord jest unikalny i posiada swoje ID nadawane z palca przez administratora bazy - nie użytkownika, ani nie automatycznie. Czyli moje ID może wyglądać tak: ToJestID01, ToJestInneID07, ID14021.

  2. Mam utworzony formularz, w którym mogę wpisywać poszczególne dane dla każdego projektu - czyli właśnie wszelkie numery, wszelkie opisy (pola tekstowe), daty.

  3. Formularz posiada opcję wczytania zapisanych już danych - czyli np. wczytujemy dane dla rekordu ToJestID01 - ładuje się to co jest uzupełnione.

  4. Formularz posiada przycisk, który wyświetla raport. Raport został wcześniej przygotowany przeze mnie i posiada takie informacje jak są w bazie (prawie wszystkie) - czyli daty, opisy itd. (z pominięciem kilku opisów). Chcę, aby raport był ładowany danymi tymi, dla którego zostały załadowane ten dane - czyli na podstawie punktu 3 - danymi z rekordu ToJestID01.

Jak zrobić, aby raport był załadowany tylko danymi z tego jednego rekordu (wybranego), a nie wszystkimi?

0

Rozwiń punkt 3, jak użytkownik wybiera ID które się ładuje?

0

@Panczo lol nie wyświetliło mi się powiadomienie o poście, ale nieważne.

Formularz posiada niejako dwie opcje:

  1. Po włączeniu go jest pusty, uzupełniasz go danymi i wysyłasz do bazy. Wtedy administrator bazy nadaje to unikalne ID, o którym pisałem wcześniej - z palca. Rekord jest w bazie i fajnie.
  2. Formularz został włączony i jest pusty. Jednak na formularzu znajduje się przycisk załaduj dane, który wyświetla (dokładnie to .visible) ukrytego comboboxa, który zasilany jest listą ID rekordów dostępnych w bazie. Czyli przed chwilą dajmy na to administrator nadał ID z palca "Ogórek", to teraz takie ID będzie widoczne na liście rozwijanej. Gdy klikniemy to ID to dane, które zostały uzupełnione podczas wprowadzania rekordu znajdują się w odpowiednich polach - imię było wprowadzone jako Tomek, to teraz też w imieniu widnieje Tomek.
1

Sposobów jest kilka. Jeden to taki, że opierasz raport na zapytaniu w którym w warunku where jest wartość pola z formularza np "select * from wydatki where [ID]= [forms]![wykaz]![id]"
wtedy podczas otwierania raportu z formularza "wykaz" za [forms]![wykaz]![id] będzie podstawiana odpowiednia wartość

0

@Panczo: @cw
Wracam z tym problemem, bo coś mi nie hula - nie potrafię tego naprawić. Tak wygląda mój wycinek kodu:

SELECT [Kopia Karta_Projektu].ID_kartyprojektu, [Kopia Karta_Projektu].o3kontakt_imie, [Kopia Karta_Projektu].o3kontakt_nazwisko, [Kopia Karta_Projektu].o3kontakt_mail
FROM [Kopia Karta_Projektu]
WHERE ((([forms]![Karta_projektu]![numer_wybor_wpr])=[Kopia Karta_Projektu].[ID_kartyprojektu]));

[forms]![Karta_projektu]![numer_wybor_wpr] - Jest to pole kombi, które nie ma odwołania w bazie danych, jest to pole kombi, które pobiera wartości z tabeli ID w bazie danych, służy tylko do wyboru, wybrana wartość nie przechowuje się nigdzie.
[Kopia Karta_Projektu].[ID_kartyprojektu] - Pole tekstowe, które zapisuje się w bazie danych.

1

Cały czas kręcisz się w kółko, najprościej, dodaj na tym formularzu przycisk z kodem:

msgbox me.numer_wybor_wpr

I zobacz czy zwraca to co faktycznie szukasz...

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