access 2007 - Beuth Hochschule für Technik Berlin

Werbung
ACCESS 2007
Frank Steyer
Datenbank erstellen
ACCESS7 aufrufen
Oben: neue leere Datenbank
Name eingeben
Ort finden
Datentyp ist dann *.accdb
Evtl. Makros/Programme aktivieren (Button „Optionen“)
Entwicklungsumgebung
-> Start
editieren, Tabelle ansehen, sortieren
-> Erstellen
Tabelle, Abfrage, Formular, Bericht, Makro, Modul
-> Externe Daten export, import, Mails
-> Datenbanktools Programme erstellen, Beziehungen einrichten, analysieren
Tabelle erstellen
Datenbank öffnen
-> Erstellen -> Tabellenentwurf
Tabelle ansehen oder Zeilen eintragen
rechte Maustaste: Tabelle öffnen
eintippen ist möglich
spaltenweises Sortieren ist möglich
Abfrage erstellen
Datenbank öffnen
-> Erstellen -> Abfrageentwurf
Formular erstellen
-> Erstellen -> Formularentwurf
-> vorhandene Felder hinzufügen, evtl. auch Controls
Formular benutzen oder modifizieren
Formular markieren
rechte Maustaste: öffnen oder
rechte Maustaste: Entwurfsmodus
Bericht erstellen
-> Erstellen -> Berichtsentwurf
-> vorhandene Felder hinzufügen, evtl. auch Controls
Programmieren
-> Schaltfläche ins Formular (andere Controls sind z.B. Textfeld und Label)
z.B. mit MsgBox nur Fensterausgabe
z.B. mit Textfeld und Zuweisung
z.B. mit DoCmd.Openform „Formularname“ einen Unterformularaufruf
Damit kann ein Menü mit Unterzweigen erstellt werden.
Datenbankzugriff mit DAO
konstant
Private Sub Befehl0_Click()
Dim db As DAO.Database
Dim ta As DAO.Recordset
Set db = CurrentDb()
Set ta = db.OpenRecordset("person")
ta.AddNew
ta!pnr = 99
ta!pname = "Zuse"
ta.Updatex
ta.Close
End Sub
Private Sub Befehl1_Click()
Dim db As DAO.Database
Dim ta As DAO.Recordset
Set db = CurrentDb()
Set ta = db.OpenRecordset("person")
ta.MoveFirst
While Not ta.EOF
MsgBox ta!pnr
MsgBox ta!pname
MsgBox "weiter?"
ta.MoveNext
Wend
ta.Close
End Sub
Mit Formularfeldern
Private Sub Befehl6_Click()
'Tabelle anlegen
Dim db As DAO.Database
Dim df As DAO.TableDef
Dim fe1 As DAO.Field
Dim fe2 As DAO.Field
Set db = CurrentDb()
Set df = db.CreateTableDef("person")
Set fe1 = df.CreateField("pnr", DB_INTEGER)
Set fe2 = df.CreateField("pname", DB_TEXT, 20)
df.Fields.Append fe1
df.Fields.Append fe2
db.TableDefs.Append df
End Sub
Private Sub Befehl0_Click()
'Zeile eintragen
Dim db As DAO.Database
Dim ta As DAO.Recordset
Set db = CurrentDb()
MsgBox "OK?"
Set ta = db.OpenRecordset("person")
ta.AddNew
ta!pnr = Text2
ta!pname = Text4
ta.Update
ta.Close
End Sub
Private Sub Befehl1_Click()
'alle Zeilen lesen
Dim db As DAO.Database
Dim ta As DAO.Recordset
Set db = CurrentDb()
Set ta = db.OpenRecordset("person")
ta.MoveFirst
While Not ta.EOF
Text2 = ta!pnr
Text4 = ta!pname
MsgBox "weiter?"
ta.MoveNext
Wend
ta.Close
End Sub
Private Sub Befehl7_Click()
'Zeilen mit Bedingung lesen
Dim db As DAO.Database
Dim ta As DAO.Recordset
Dim bedingung As String
Set db = CurrentDb()
bedingung = "pnr > 10"
Set ta = db.OpenRecordset("person", dbOpenDynaset)
ta.FindFirst bedingung
While Not ta.NoMatch
Text2 = ta!pnr
Text4 = ta!pname
MsgBox "weiter?"
ta.FindNext bedingung
Wend
ta.Close
End Sub
Private Sub Befehl1_Click()
'Zeilen löschen
Dim db As DAO.Database
Dim ta As DAO.Recordset
Set db = CurrentDb()
Set ta = db.OpenRecordset("person")
ta.MoveFirst
While Not ta.EOF
Text2 = ta!pnr
Text4 = ta!pname
ergebnis = MsgBox("löschen?", vbYesNo, "MsgBox-Beispiel")
If ergebnis = vbYes Then
ta.Edit
ta.Delete
End If
ta.MoveNext
Wend
ta.Close
End Sub
Datenbankzugriff mit SQL
Private Sub Befehl4_Click()
Dim db As DAO.Database
Dim cmd As String
Set db = CurrentDb()
cmd = "insert into person values (" + Text5 + ",'" + Text7 + "'," + Text9 + ")"
MsgBox cmd
db.Execute (cmd)
End Sub
Private Sub Befehl11_Click()
'Deklarationen
Dim db As DAO.Database
Dim ergebnis As DAO.Recordset
Set db = CurrentDb()
'Datenbankzugriff
Dim cmd As String
cmd = "select pnr, pname, palter from person"
Set ergebnis = db.OpenRecordset(cmd)
'Reaktion
ergebnis.MoveLast
ergebnis.MoveFirst
For i = 1 To ergebnis.RecordCount
Text5 = ergebnis!pnr
Text7 = ergebnis!pname
Text9 = ergebnis!palter
MsgBox "weiter"
ergebnis.MoveNext
Next
End Sub
Private Sub Befehl8_Click()
Text6 = Val(Text1) + Val(Text3)
End Sub
Private Sub Befehl9_Click()
Dim x As Integer
x = Val(Text2) + Val(Text4)
If x > 10 Then
Text7 = x
Else
Text7 = "zu klein"
End If
End Sub
Private Sub Befehl4_Click()
Dim x, i As Integer
x=0
i=1
While i <= Val(Text1)
x=x+i
i=i+1
Wend
Text8 = x
End Sub
Stringkonkatenation
Private Sub Befehl3_Click()
Text1 = "Eingabe war: " + Text1
End Sub
Zufall
Private Sub Befehl3_Click()
Text1 = CInt(Rnd * 10)
End Sub
Ja/Nein
Private Sub Befehl0_Click()
ergebnis = MsgBox("Ist das Wetter heute schön?", vbYesNo, "MsgBox-Beispiel")
If ergebnis = vbYes Then
MsgBox "Ja"
Else
MsgBox "Nein"
End If
End Sub
Weitere Befehle
If-Then
Private Sub Befehl3_Click()
Dim zufall As Integer
zufall = CInt(Rnd * 10)
If Val(Text1) = zufall Then
MsgBox ("Glückwunsch")
End If
End Sub
If-Then-Else
Private Sub Befehl3_Click()
Dim zufall As Integer
zufall = CInt(Rnd * 10)
If Val(Text1) = zufall Then
MsgBox ("Glückwunsch")
Else
MsgBox ("Pechvogel")
End If
End Sub
Select-Case
Private Sub Befehl3_Click()
Dim zufall1, zufall2, zufall3 As Integer
zufall1 = CInt(Rnd * 10)
zufall2 = CInt(Rnd * 10)
zufall3 = CInt(Rnd * 10)
Select Case Val(Text1)
Case zufall1
MsgBox ("erster Vergleich")
Case zufall2
MsgBox ("zweiter Vergleich")
Case zufall3
MsgBox ("dritter Vergleich")
Case Else
MsgBox ("überhaupt nichts")
End Select
End Sub
For-Next-Schleife
Private Sub Befehl1_Click()
Dim zufall, anzahl As Integer
For anzahl = 1 To 2
x = InputBox("Bitte Zahl eingeben")
zufall = CInt(Rnd * 10)
If x = zufall Then
MsgBox ("Glückwunsch")
Else
MsgBox ("Pechvogel")
End If
Next anzahl
DoCmd.Close acForm, "ForNext"
End Sub
Do-Loop-Schleife
Private Sub Befehl1_Click()
Dim zufall, x As Integer
Do
x = InputBox("Bitte Zahl eingeben")
If x <> 0 Then
zufall = CInt(Rnd * 10)
If x = zufall Then
MsgBox ("Glückwunsch")
Else
MsgBox ("Pechvogel")
End If
End If
Loop Until x = 0
DoCmd.Close acForm, "DoLoop"
End Sub
While-Wend-Schleife
Private Sub Befehl1_Click()
Dim zufall, x As Integer
x=5
While x <> 0
x = InputBox("Bitte Zahl eingeben")
If x <> 0 Then
zufall = CInt(Rnd * 10)
If x = zufall Then
MsgBox ("Glückwunsch")
Else
MsgBox ("Pechvogel")
End If
End If
Wend
DoCmd.Close acForm, "DoLoop"
End Sub
Aufgabe 1: Menüsystem zum Rechnen
Erstellen Sie ein Menüsystem für die vier Grundrechenarten
Menüformular
+
/
-
*
Addition
Subtraktion
Multiplikation
Division
Jedes Rechenformular hat etwa folgenden Aufbau:
<Überschrift>
<Op>
=
rechne
Aufgabe 2: Additions-Taschenrechner
Erstellen Sie einen Taschenrechner
1
2
3
4
5
6
7
8
9
0
+
=
C
- 1 Textfeld zur Anzeige
- 10 Ziffernbuttons
- 1 Plusbutton
- 1 Ergebnisbutton
- 1 Löschbutton
Ziffernbutton klicken
-> Anzeige der 1. Ziffer
-> speichern des Wertes in 1. Variablen
Plusbutton klicken -> umschalten
Ziffernbutton klicken
-> Anzeige der 2. Ziffer
-> speichern des Wertes in 2. Variablen
Ergebnisbutton klicken
-> Anzeige Ziffer1 + Ziffer2
Löschbutton klicken -> Textfeld löschen
-> Umschalter zurücksetzen
(Umschalter auf 1. Variable setzen in FormLoad)
Grundlagen der Informatik
Aufgabe 3: Menüsystem zur
Tabellenbearbeitung
Erstellen Sie ein Menüsystem zur Tabellenbearbeitung
Menüformular
eintragen
suchen
löschen
Jedes Tätigkeitsformular hat etwa folgenden Aufbau:
<Überschrift>
Feld1
Feld2
tue
TFH Berlin/Steyer
Grundlagen der Informatik
Aufgabe 4: Access mit login
- Legen Sie eine Datenbank 'lager' an.
- Erzeugen Sie die Tabelle 'artikel': artikelnr artikelname menge nettopreis
(Neue Tabelle, kein Primärschlüssel)
- Tragen Sie die Zeilen ein:
11
12
13
14
15
16
17
18
Fahrrad
Lenker
Rahmen
Laufrad
Nabe
Speichen
Felge
Schlauch
25
150
300
45
65
5 400.00 €
30
20.00 €
30.00 €
3
15.00 €
7.00 €
0.50 €
2.50 €
3.00 €
- Erstellen Sie eine Abfrage zu Artikel: artikelname und menge ausgeben
nach menge absteigend sortieren
Kriterium >=5
- Erstellen Sie ein Formular zu Artikel
Einspaltige Darstellung, alle Felder
Erweiterung um Bezeichnungsfeld zur Beschriftung, Textfeld zur Anzeige, Button
zur Berechnung, Programm zur
Berechnung des Bruttopreises
- Erstellen Sie einen Bericht zu Artikel
tabellarische Darstellung, artikelname, menge, sortiert nach artikelname
- Erzeugen Sie ein Formular "Artikelverwaltung" mit Kontrollelementen (Buttons), mit
denen
man die erstellten Abfrage, Formular und Bericht aufrufen kann.
- Legen Sie über das Formular "Artikelverwaltung" ein weiteres (Titel: "Firma"), das
als
Unterpunkte noch "Kundenverwaltung" und "Lieferantenverwaltung" enthält. Geben
Sie für die noch nicht realisierten Zweige die Meldung „noch nicht realisiert“ aus.
- Legen Sie über das Formular "Firma" ein Log-in-Formular, das Benutzername und
Passwort abfragt und bei
Button-Klick ihr Vorhandensein in einer Tabelle „User“ überprüft. Wenn ja, wird das
Formular „Firma“ geöffnet,
sonst erscheint eine Fehlermeldung.
Login:
Firma:
Artikelverwaltung
Kundenverwaltung
Lieferantenverwaltung
(noch nicht realisiert)
(noch nicht realisiert)
Machen Sie das Login-Formular zum Startformular.
TFH Berlin/Steyer
Herunterladen