Access-Corner

Hier finden Sie in lockerer Reihenfolge Tipps und Anregungen zur MS-Access-Datenbank.

Access-Tipp 1: Rechnen in Datenbankfeldern

In Access werden Rechenoperationen über Abfragen, Formulare und Berichte erstellt.
Im eingeschränkten Umfang geht das aber auch direk in Datenbankfeldern. Wollen Sie Beispielsweise erreichen,
das ein Feld das Erstellungsdatum eines Datensatzes speichert, geben Sie in den Standardwert ein:
"Datum()".
Soll das Datum plus 14 Tage erfasst werden (zum Beispiel Zahlungsziel bei Rechnungen) tippen Sie als Standardwert ein:
"Datum()+14"

Access Tipp

Access-Tipp 2: Ist bereits ein User in der Datenbank?

Häufig ist es wichtig zu wissen, ob bereits ein anderer User in der Access Datenbank ist. Um dieses Problem zu lösen, legen Sie zunächst eine neue leere Tabelle an. Der Name der Tabelle in diesem Beispiel lautet "Anwender".
Diese Access Tabelle besteht aus einem einzigen Feld, das mit dem Namen "Anwender" versehen wird, der Felddatentyp ist "Text" und die Länge beträgt 50 Zeichen.
Nachdem diese Access Tabelle angelegt ist, geht es an die Programmierung. Wie üblich wird die Access Datenbank in VBA programmiert. Idealerweise programmieren Sie in dem Formular, das bei starten der Anwendung geöffnet wird.
Oftmals wird hierfür ein Übersichtsformular erstellt, von dem aus Sie andere Access Formular starten können.
Die Funktion geht aber auch mit jedem anderen Formular.
Sobald das Formular geöffnet wird, soll das Programm feststellen, ob in der Access-Tabelle "Anwender" bereits ein Name vorhanden ist. Wenn das der Fall ist, erscheint eine Hinweisbox mit dem Namen. Wenn die Tabelle leer ist, arbeitet das Programm ohne Meldung weiter.
Hier ist der Access Programmcode in VBA:  

Private Sub Form_Load()
DoCmd.Maximize
'=============================================================
'Prüfen, ob DB bereits von anderem User benutzt wird
'==============================================================
Dim AktuellerAnw As String
AktuellerAnw = CurrentUser 'Hier wird der aktuelle User der Access Datenbank ausgelesen
'Jetzt wir ein neues Objekt für die Datenbank angelegt
Dim ANW As ADODB.Recordset
Set ANW = New ADODB.Recordset
ANW.Open "Anwender", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
On Error Resume Next 'Vorsichtshalber ist eine Fehlerprüfung immer gut
If ANW.EOF = True Then 'Prüfen, ob bereits ein Anwender in der DB eigetragen ist.
ANW.AddNew
ANW!anwender = AktuellerAnw
ANW.Update 'Anwender in die DB eintrageb
Else
ANW.MoveFirst 'Wenn bereits ein Anwender in der Datenbank ist, dessen Namen auslesen
MsgBox "There is another current user in this applicaten: " & ANW!anwender '--
End If
'Beenden des Objekts
ANW.Close
Set ANW = Nothing

Über eine Schaltfläche wie zum Beispiel "Programmende" wird die Access Tabelle dann wieder gelöscht. Dieses Modul wurde als Funktion programmiert:

Function DBbeenden()
Dim ANW As ADODB.Recordset
On Error GoTo Ende
Set ANW = New ADODB.Recordset
ANW.Open "Anwender", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
ANW.MoveFirst
ANW.Delete
ANW.Close
Ende:
Application.Quit
End Function