'otwarcie i ustawienie zbioru rekordow na podstawie tabeli Studenci Set rs = CurrentDb.OpenRecordset("Studenci", dbopensnapshot)



Podobne dokumenty
Materiały do laboratorium MS ACCESS BASIC

DAO. tworzenie tabeli

Manipulowanie danymi przy użyciu DAO

Bazy Danych. Wykład VII Makropolecenia. Copyright by Arkadiusz Rzucidło 1

Aplikacje w środowisku VBA. Visual Basic for Aplications

1.1. System otwartych baz danych ODBC. System otwartych baz danych ODBC. Interfejs ODBC. Interfejs ODBC. System otwartych baz danych ODBC

Materiały pomocnicze do zajęć z przedmiotu Projekt ADP

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

5. Bazy danych Base Okno bazy danych

BAZY DANYCH MAKRA I PRZYCISKI. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

PODSTAWOWE POJĘCIA BAZ DANYCH

Wykład III. dr Artur Bartoszewski Wydział Nauczycielski, Kierunek Pedagogika Wprowadzenie do baz danych

1. MS Access opis programu.

BAZY DANYCH. Co to jest baza danych. Przykłady baz danych. Z czego składa się baza danych. Rodzaje baz danych

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

PHP: bazy danych, SQL, AJAX i JSON

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Programowanie obiektowe

Przewodnik Szybki start

Technologia informacyjna

Laboratorium nr 5. Bazy danych OpenOffice Base.

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

Joyce Cox Joan Lambert. Microsoft Access Krok po kroku. Przekład: Jakub Niedźwiedź

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PRZEKROJOWY.

LibreOffice Calc VBA

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków:

LABORATORIUM 6: ARKUSZ MS EXCEL JAKO BAZA DANYCH

Sposób tworzenia tabeli przestawnej pokażę na przykładzie listy krajów z podstawowymi informacjami o nich.

Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA

2017/2018 WGGiOS AGH. LibreOffice Base

Konspekt do lekcji informatyki dla klasy II gimnazjum. TEMAT(1): Baza danych w programie Microsoft Access.

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU. studia pierwszego stopnia

Tworzenie bazy danych na przykładzie Access

Pytania SO Oprogramowanie Biurowe. Pytania: Egzamin Zawodowy

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Visual Basic dla AutoCAD

Makra programu Microsoft Access.

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

KORPORACYJNE SYSTEMY ZARZĄDZANIA INFORMACJĄ

Instrukcje cykliczne (pętle) WHILE...END WHILE

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel

Krzysztof Kadowski. PL-E3579, PL-EA0312,

BAZY DANYCH Panel sterujący

System imed24 Instrukcja Moduł Analizy i raporty

Database Connectivity

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PODSTAWOWY.

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

2. Podstawy programu Microsoft Access

PRZEWODNIK PO PRZEDMIOCIE

Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013. Visual Basic.NET dostęp do bazy danych. Baza Microsoft SQL Server Compact

Wyświetl imie i nazwisko ucznia, nazwę przedmiotu z którego otrzymał ocenę niedostateczną. Nazwij tę kwerendę oceny niedostateczne.

Podstawowe zagadnienia z zakresu baz danych

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Makropolecenia w PowerPoint Spis treści

Tworzenie raportów. Ćwiczenie 1. Utwórz Autoraport przedstawiający tabelę Studenci

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI

Programowanie MorphX Ax

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej.

Bazodanowe usługi sieciowe w technologii ASP.NET. dr inż. Tomasz Tatoń

Baza danych kwerendy, formularze, raporty

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

Plik->Opcje->Zakladka Główne->Dostosuj Wstążkę Zaznaczamy kwadracik Developer na liscie po prawej stronie. Klikamy OK.

Autor: dr inż. Katarzyna Rudnik

Autor: Joanna Karwowska

Zapytania do bazy danych

TEMAT ĆWICZENIA Zapoznanie z technologią LINQ

Microsoft Access. Prezentacja

TI - Bazy TECHNOLOGIE INFORMACYJNE

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

INFORMATYKA W SELEKCJI

BAZY DANYCH Formularze i raporty

Obsługa zdarzeń w formularzach przy pomocy makr

Programowanie obiektowe

Wykład I. dr Artur Bartoszewski Wydział Nauczycielski, Kierunek Pedagogika Wprowadzenie do baz danych

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

MsAccess - ćwiczenie nr 3 (zao) Budowa formularzy

Tandem. art. 41 ust. 8 ustawy z 13 października 1998 r. o systemie ubezpieczeń społecznych (tekst jedn.: Dz.U. z 2009 r. nr 205, poz ze zm.).

Użycie Visual Basic for Applications ("VBA")

Tablice, DataGridView

VBA praca z makrami w Excelu

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM, regulski@metal.agh.edu.pl

Połączenie AutoCad'a z bazą danych

Systemy GIS Tworzenie zapytań w bazach danych

ActiveXperts SMS Messaging Server

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

OpenOfficePL. Zestaw szablonów magazynowych. Instrukcja obsługi

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

Visual Basic for Applications. Wstęp

Oracle11g: Wprowadzenie do SQL

ECDL/ICDL Zaawansowane użytkowanie baz danych Moduł A3 Sylabus, wersja 2.0

Program szkolenia PODSTAWY VBA (VISUAL BASIC FOR APPLICATIONS) I FORMULARZE.

Rok akademicki: 2013/2014 Kod: STC s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

MS Access formularze

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Baza danych. Program: Access 2007

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

Transkrypt:

Tworzenie rozwiązań baz danych w Visual Basic for Applications dla MS Access 2010 Dr inż. Dariusz Mrozek (na podstawie materiałów firmy Microsoft) Microsoft Access jest zintegrowanym systemem do tworzenia rozwiązań w zakresie gromadzenia, przetwarzania i prezentacji danych. W systemie tym mamy możliwość łatwego tworzenia baz danych, utrzymywania ich spójności, odpytywania i modyfikowania tabel bazy przy pomocy kwerend, a także zbudowania warstwy prezentacji w postaci formularzy, raportów i stron internetowych udostępniających dane w strukturalizowany sposób. Dodatkowo mamy możliwość oprogramowania zbudowanej aplikacji przy pomocy makr zawierających uporządkowany zestaw predefiniowanych poleceń, takich jak np. otwarcie formularza, oraz przy pomocy procedur i funkcji napisanych w języku Visual Basic for Access. Wszystkie te cechy sprawiają, że Microsoft Access staje się doskonałym narzędziem do tworzenia prostych baz danych w małych i średnich przedsiębiorstwach, bez ponoszenia wysokich kosztów związanych z zakupem wysoko wyspecjalizowanego oprogramowania do tworzenia systemów opartych na bazach danych. Architektura systemu Przetwarzanie danych w systemie MS Access 2010 jest realizowane przez motor bazy danych Microsoft Access Database Engine (ACE Engine), który zastąpił znany z poprzednich wersji Microsoft JET (Microsoft Joint Engine Technology). Na rys. 1 zaprezentowano, w jaki sposób Access (UI) oraz ACE (engine) tworzą kompletny system zarządzania bazą danych (SZBD). Rys. 1 Ogólna architektura MS Access 2010 Interfejs użytkownika Access UI jest odpowiedzialny za sposób, w jaki użytkownicy przeglądają, edytują i używają danych przy pomocy formularzy, raportów, zapytań, makr oraz szeroko rozwiniętych kreatorów. Z kolei motor ACE Engine udostępnia szereg usług typowych dla systemu zarządzania bazą danych, tj.: 1

fizyczne przechowywanie danych w systemie plików, możliwość definiowania, modyfikowania i usuwania obiektów bazy danych tabel i ich kolumn, utrzymywanie spójności danych utrzymywanie więzów referencyjnych zapobiegających pojawianiu się błędów w danych, manipulację danymi dodawanie, edycję i usuwanie danych, pobieranie danych i wykonywanie poleceń SQL, szyfrowanie danych zapobiegające przed nieuprawnionym dostępem do informacji, współdzielenie danych w sieciowym środowisku pracy wielu użytkowników, publikowanie danych w sieci Internet, import, eksport danych oraz możliwość dołączenia zewnętrznych źródeł danych. Technologie przetwarzania danych w MS Access 2010 Microsoft udostępnia kilka technologii umożliwiających pracę z bazami MS Access. Do oprogramowywania baz danych użytkownicy mogą użyć różnych interfejsów programowania aplikacji API oraz warstw dostępowych do danych, m.in.: Data Access Objects (DAO) Object Linking and Embedding, Database (OLE DB) ADO.NET ActiveX Data Objects (ADO) Open Database Connectivity (ODBC) Podczas dostępu do danych z poziomu kodu programiści mają możliwość użycia którejkolwiek z wymienionych technologii, w zależności od bieżących potrzeb. Zależy to w dużej mierze od preferowanego języka programowania, używanej platformy, spodziewanej funkcjonalności, aspektów bezpieczeństwa, wydajności i późniejszej konserwacji. Jeśli na przykład aplikacja ma współpracować wyłącznie z bazami danych Accessa, wówczas naturalnym wydaje się użycie technologii DAO, ponieważ dostarcza ona najbardziej wszechstronnej funkcjonalności. Z drugiej strony, jeżeli aplikacja ma być rozwijana przy użyciu języka C# wówczas najlepszym wyborem wydaje się być ADO.NET. W dalszej części skoncentrujemy się na technologii DAO, która jest natywną technologią dostępu do baz danych MS Access. Programowanie w Visual Basic for Applications dla MS Access 2010 Visual Basic for Applications (VBA) jest językiem programowania dla aplikacji Microsoft Office opartym na języku Visual Basic. VBA zawiera w swojej składni większość instrukcji znanych z innych języków programowania, przy czym pisany kod jest bardzo przejrzysty i przyjazny. 2

UWAGA: Na potrzeby laboratorium Baz danych I podstawowe składnie instrukcji języka VBA zostały omówione w opracowaniu Materiały do laboratorium MS ACCESS BASIC dr inż. Katarzyny Harężlak. Poniżej zaprezentowano kilka sposobów, w jaki programiści mogą przetwarzać dane z bazy danych MS Access przy pomocy języka VBA. Podstawową klasą obiektów używanych do operowanie na rekordach tabeli z poziomu VBA jest klasa Recordset. Reprezentuje ona zwykle pojedynczą tabelę z bazy danych lub tabelę utworzoną przez wykonanie zapytania/kwerendy. Zanim zaczniemy przetwarzać rekordy należy najpierw obiekt Recordset otworzyć i ustawić. Otwarcie i ustawienie obiektu Recordset można osiągnąć np. przy pomocy metody OpenRecordset wywołanej na rzecz obiektu bazy danych lub metody RecordserClone wywołanej na rzecz obiektu formularza: 'otwarcie i ustawienie zbioru rekordow na podstawie tabeli Studenci Set rs = CurrentDb.OpenRecordset("Studenci", dbopensnapshot) lub 'deklaracja recordsetu 'ustawienie recordsetu na podstawie rekordow z formularza 'Me biezacy formularz Set rs = Me.RecordsetClone Pierwszy sposób powoduje utworzenie zbioru rekordów na podstawie rekordów z tabeli Studenci. Drugi sposób klonuje rekordy znajdujące się na formularzu. W zależności od potrzeb związanych z przetwarzaniem możemy użyć jednego z podanych sposobów. Tworząc reprezentację tabeli z układem wierszowo-kolumnowym w postaci obiektów Recordset możemy poruszać się po tak utworzonym zbiorze rekordów w różnych kierunkach, np. od początku do końca, korzystając z metod z rodziny Move.. (MoveFirst, MoveLast, MoveNext, MovePrevious). Przykład 1. Otwarcie zbioru rekordów, przejście po kolejnych rekordach w zbiorze i ich zliczenie. 'procedura obslugujaca nacisniecie przycisku na formularzu Private Sub btnoblicz_click() Dim db As DAO.Database Dim licznik As Integer 'biezaca baza danych Set db = CurrentDb 'otwarcie i ustawienie zbioru rekordow na podstawie tabeli Set rs = db.openrecordset("studenci", dbopensnapshot) 3

'przejscie po rekordach w petli, az do osiagniecia konca zbioru (EOF) rs.movefirst Do Until rs.eof licznik = licznik + 1 rs.movenext Loop 'zwrocenie wyniku do pola tekstowego Tekst3 na bieżącym formularzu Tekst3 = licznik End Sub Czasami, bardziej niż spacer po wszystkich rekordach, interesuje nas wyszukanie rekordów spełniających zadane kryteria. Możemy wówczas skorzystać z metod z rodziny Find.. (FindFirst, FindLast, FindNext, FindPrevious). Przykład 2. Procedura, która na naciśnięcie przycisku Oblicz sumę oblicza sumę wypłat pracownika zaznaczonego na formularzu. Rys. 2 Formularz użyty w przykładzie 2 'procedura obslugujaca nacisniecie przycisku na formularzu Private Sub btnoblicz_click() Dim kryt As String Dim vsuma As Single 'ustawienie rekordsetu poprzez sklonowanie rekordow Set rs = Me.RecordsetClone 'ustawienie kryterium wyszukiwania '+ sczytanie nr prac z biezacego rekordu na formularzu kryt = "NR_PRAC = " & Me.NR_PRAC ' znalezienie pierwszego rekordu spelniajacego kryterium 4

' i kolejnych w petli ' az kryterium nie zostanie spelnione (NoMatch) rs.findfirst kryt Do Until rs.nomatch ' sczytanie pola KWOTA z biezacego rekordu i dodanie vsuma = vsuma + rs!kwota rs.findnext kryt Loop 'ustawienie pola na formularzu txtsuma = vsuma End Sub Kryteria przekazywane do funkcji Find.. mają charakter łańcuchów tekstowych String i z wyglądu przypominają zwykle warunki filtrujące klauzuli WHERE polecenia SELECT w języku SQL. Np.: 'szukamy pracownika o nr = 5 "NR_PRAC = 5" lub 'szukamy pracownika o nazwisku Kowalski "NAZWISKO = 'Kowalski'" Czasem jednak wartość dla skonstruowania kryterium jest przekazywana poprzez zmienną lub parametr i wówczas należy skleić ją z łańcuchem kryterium, jak to pokazano w poniższych przykładach i przykładzie 2. 'szukamy pracownika o nr = wartosci zmiennej "NR_PRAC = " & vnr lub 'szukamy pracownika o nazwisku przekazanym w zmiennej "NAZWISKO = '" & vnazw & "'" Przydatną właściwością zbiorów rekordów jest właściwość Bookmark. Pozwala ona zapamiętać położenie rekordu w zbiorze np. w pomocniczej zmiennej i później powrócić do tego rekordu. Właściwość Bookmark zwraca bowiem unikalną wartość dla każdego rekordu w zbiorze. Co więcej, jeśli do utworzenia zbioru rekordów użyto metody klonowania, to wartości Bookmark dla rekordów formularza i rekordsetu są identyczne i mogą być używane zamiennie lub służyć do synchronizacji zbiorów, jak w poniższym przykładzie. Przykład 3. Synchronizacja zbiorów. Procedura, która na naciśnięcie przycisku Pokaż kwotę synchronizuje zbiory i wyświetla kwotę dla zaznaczonego na formularzu rekordu. (Oczywiście można to zrobić prościej, ale to już innym razem) 5

Private Sub btnshow_click() Rys. 3 Formularz użyty w przykładzie 3 Dim vkwota As Single 'ustawienie rekordsetu poprzez sklonowanie rekordow Set rs = Me.RecordsetClone 'synchronizacja zbiorow rs.bookmark = Me.Bookmark 'sczytanie kwoty If Not rs.eof Then vkwota = rs!kwota End If 'wyswietlenie komunikatu MsgBox vkwota End Sub 6