Tekst informacyjny o polityce Cookies Close 

• Właściwość - RecordSource (Żródło Rekordów)

  1. Tabela lub kwerenda jako źródło danych dla formularza.
  2. Instrukcja SQL zwracająca rekordy tylko z określonych pól.
  3. Ograniczenie liczby zwracanych rekordów poprzez dynamiczną zmianę Właściwości: RecordSource (Źródło Rekordów) formularza za pomocą kodu VBA.

RecordSource - dynamiczna zmiana zestawu rekordów.

Właściwość RecordSource (Źródło Rekordów) określa źródło danych dla formularza. Źródłem danych dla formularza może być pojedyncza tabela, kwerenda oparta na jednej (lub wielu tabelach), albo instrukcja SQL.
Właściwość RecordSource (Źródło Rekordów) można ustawić używając arkusza właściwości formularza lub raportu, makra lub języka Visual Basic.
Aby ustawić tę właściwość w języku Visual Basic, należy użyć wyrażenia typu ciąg znaków.

Uwaga:   Zmiana źródła rekordów otwartego formularza lub raportu automatycznie powoduje wykonanie kwerendy na nowych danych.

Okno Właściwości - zakładka wszystkie

W przypadku, kiedy chcemy by źródłem rekordów była tabela lub kwerenda, to po ustawieniu fokusu (kliknięciu) w polu "Źródło rekordów" i kliknięciu strzałki po prawej stronie pola, pojawi się rozwinięta lista zawierająca wszystkie tabele i kwerendy w bazie. Aby na przykład wyświetlić i edytować dane dotyczące "Pozycji w Książce", powinniśmy właściwość RecordSource formularza przypisać wartość "tblPozKsiazka" z listy. Jeżeli chcemy ograniczyć ilość zwracanych pól z tabeli źródłowej, lub utworzyć samemu Instrukcję SQL zwracającą rekordy z określonych pól, to musimy kliknąć przycisk Tabela Szkolenia znajdujący się tuż za strzałką rozwijającą listę zawierającą nazwy tabel i kwerend w bazie.

Określenie tabeli źródłowej formularza

Tworząc źródło rekordów w postaci Instrukcji SQL możemy oprzeć takie źródło na kilku (lub wielu) tabelach i dodatkowo ograniczyć ilość zwracanych rekordów narzucając odpowiednie warunki na poszczególne pola.

Konstruktor kwerend

Instrukcja SQL dla utworzonego źródła rekordów formularza będzie miała postać:

SELECT tblPozKsiazka.NazwaKsiazka, tblPozKsiazka.StanOtwarcia, tblPozKsiazka.StanMin
FROM tblGrupa INNER JOIN tblPozKsiazka ON tblGrupa.ID_Gr = tblPozKsiazka.Id_Gr
WHERE (((tblPozKsiazka.StanOtwarcia)>0) AND ((tblGrupa.NazwaGrupy)="Dysk"))
ORDER BY tblPozKsiazka.NazwaKsiazka;

Właściwość RecordSource (Źródło Rekordów) można ustawić na trzy sposoby:
• okna właściwości (sposób opisany powyżej)
• użycie makra (nie polecam tej metody)
• za pomocą języka VBA (Visual Basic for Application)

Używając VBA należy pamiętać, że właściwość ta jest wyrażeniem typu ciąg znaków, a po zmianie źródła rekordów Instrukcja SQL zostaje wykonana dla nowych danych.
Kod przedstawiony w poniższym przykładzie (uruchamiany po kliknięciu przycisku btnZmienZrodlo ustawia właściwość RecordSource (Źródło Rekordów) formularza na tabelę "tblPozKsiazka" i ogranicza zwracany zestaw rekordów do pojedynczego rekordu, dla którego NazwaKsiazka = Tally 9220, (jeżeli pole [NazwaKsiazka] może zawierać duplikaty, to ilość rekordów może być większa niż jeden rekord.)

Private Sub btnZmienZrodlo_Click()
Dim strNoweZrodlo As String
strNoweZrodlo = "SELECT * FROM tblPozKsiazka " & _
"WHERE NazwaKsiazka='Tally 9220'"
Me.RecordSource = strNoweZrodlo
End Sub

Ograniczenie w powyższy sposób liczby zwracanych rekordów w formularzu może w zdecydowany sposób polepszyć wydajność bazy danych. Można także właściwości RecordSource formularza przypisywać pojedynczy rekord i zmieniać źródło danych formularza w zależności od kryteriów wybieranych przez użytkownika.

• Na następnej stronie omówiona zostanie Właściwość Filter Filtr) znajdująca się na zakładce Dane w oknie "Właściwości".