TKSoft-Online

Beispiel für einen Belegungsplan PDF Drucken E-Mail
( 0 Votes )
MS-Access Bsp. DB's - Bsp. Downloads Formulare
  
Montag, den 25. Oktober 2010 um 00:00 Uhr

Problemstellung:

Wie kann ich Daten grafisch darstellen?

z.B. einen Belegungsplan für eine Pension, Autovermietung, Maschinenbelegung o.ä.

Dieses Bsp. zeigt nur die grafische Umsetzung und stellt kein Buchsprogramm usw. dar!

Voraussetzungen:

Das Bsp ist unter A00-A10 lauffähig

unter A07 / A10 muss sich Bsp-DB in einen „Vertrauenswürdigen Standort“ befinden

 

Funktionsweise:

So in etwa soll das Ergebnis aussehen:

Hier im Bsp. habe ich mal eine kleine Pension abgebildet die 4 Etagen hat.
Oben im Formular wird das Datum angezeigt.

Sind Zimmer am gewählten Datum Frei sind diese grün, gelb bedeutet Reserviert und Rot ist belegt.

3 Tabellen sind erforderlich und eine ist optional.

Tabelle "tbl_Zimmer", "tbl_Kunden" und "tbl_Belegung"

Die Tabelle "tbl_Art" enthalt die Farbcodes für den jeweiligen Status. Das könnte aber auch im Code übergeben werden.

Das Form ist recht simpel gehalten, wobei ich nicht auf den oberen Teil mit dem Datum und den Buttons eingehe da

diese selbst erklärend sind.

Für jedes Zimmer wird ein Bezeichnungsfeld anlegt und erhält als Beschriftung die Zimmernummer und als Farbhintergrund "Grün"

Wichtig ist die Benennung der Bezeichnungsfelder. Hier im Bsp. habe ich den Präfix "z" und die Zimmernummer gewählt.

Warum das so ist dazu kommen wir jetzt.

1. Holen der Farbe für die freien Zimmer (Funktion "fcDomWert" s. Modul "mod_Tool"):


Option Compare Database
Option Explicit

Dim nFreeColor As Long

Private Sub Form_Load()
    nFreeColor = fcDomWert("ArtCol", "tbl_Art", "[ArtArt]=" & "'Frei'", ltDLookup)
End Sub

2. Reset der Felder:


Private Sub ResetBelegung()
    Dim frm As Form, ctl As Control

    Set frm = Me
    For Each ctl In frm.Controls
        If ctl.ControlType = acLabel And Left(ctl.Name, 1) = "z" Then ctl.BackColor =
nFreeColor
    Next
End Sub

 

Es werden alle Controls im Form durchlaufen und ist es ein Bezeichungsfeld und beginnt mit "z" dann wird die Backcolor auf "Frei" gesetzt.

 

3. Einfärben der Label


Private Sub Belegung()
    Dim sDate As String
    Dim sSQL As String
    Dim vSet As Variant
    Dim rsBelegung As DAO.Recordset

    'SQL konformes Datum
    sDate = Sqldatum(Me.txt_Dat)

    sSQL = "SELECT tbl_Zimmer.ID_Zimmer, tbl_Zimmer.ZimmerNr, tbl_Belegung.ID_Kunde, tbl_Belegung.Datum_Von, tbl_Belegung.Datum_Bis, tbl_Art.ArtCol " & _
           "FROM tbl_Art INNER JOIN (tbl_Kunden INNER JOIN (tbl_Zimmer INNER JOIN tbl_Belegung ON tbl_Zimmer.ID_Zimmer = tbl_Belegung.ID_Zimmer) " & _
           "ON tbl_Kunden.KundenID = tbl_Belegung.ID_Kunde) ON tbl_Art.ArtID = tbl_Belegung.BelegungArt " & _
           "WHERE (((tbl_Belegung.Datum_Von)<=" & sDate & ") AND ((tbl_Belegung.Datum_Bis)>=" & sDate & "));"

    Set rsBelegung = CurrentDb.OpenRecordset(sSQL)

    'durchlaufen der Label und Einfärben
    Do While Not rsBelegung.EOF
        vSet = "z" & rsBelegung!ZimmerNr
        If Not IsNull(rsBelegung!ArtCol) Then
            Me(vSet).BackColor = rsBelegung!ArtCol
        Else
            Me(vSet).BackColor = nFreeColor
        End If
        rsBelegung.MoveNext
    Loop

    rsBelegung.Close
End Sub

Hier wird ein Recordset geöffnet das alle Termine enthält die am gewählten Datum vorhanden sind und die Label entsprechend einfärbt.

4. Aufruf der Prozeduren


Private Sub Form_Current()
    Call ResetBelegung
    Call Belegung
End Sub

 

Beispiel für einen Belegungsplan

Beispiel für einen Belegungsplan
Die Zip-Datei enthält eine Version für A00 - A10



Erstellt am
Dateigröße
Downloads
25.10.2010
27.43 KB
550


 

Downloads in dieser Kategorie

MS-Access Formulare

MS-Access Formulare

 Seite: 1

 Seite: 2


DatumKlicks
Total2848
Mi. 237
Di. 223
Mo. 214
So. 204
Sa. 191
Fr. 183
Do. 173
Aktualisiert ( Mittwoch, den 19. Oktober 2011 um 12:42 Uhr )
 

Kommentar schreiben


Sicherheitscode
Aktualisieren

Login

Latest Comments

Latest Forum Posts

Mehr »

Download Statistik

41 Kategorien
187 Dateien
173466 Downloads