1 1 1 1 1 1 1 1 1 1 Rating 0.00 (0 Votes)

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 ab A00 lauffähig

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
        End If
    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

Dateien:
(0 Stimmen)

Beispiel für einen Belegungsplan

ab A00

Die Zip-Datei enthält eine Version ab A00
Datum 05.02.2018
Dateigröße 27.43 KB
Download 1.947


Ähnliche Artikel

You have no rights to post comments

Login Form

Neueste Artikel

SQL zu VBA Konverter
26. Oktober 2018
Problemstellung: Nur für 32Bit Office Versionen Gibt es eine Möglichkeit SQL-Code einer Abfrage so zu konvertieren das der Code in VBA genutzt werden kann? Lösung: Bis Access 2010 gibt das Tool...
1.png5.png7.png9.png3.png9.png3.png
Heute425
Gestern486
Diese Woche1742
Dieser Monat8016
Total1579393

  • IP: 3.214.184.69
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

3
Online

29. März 2024

Letzte Kommentare

  • Berechnen von Zeiträumen als Abfragekriterium

    elmard 02.02.2021 21:02
    1000 Dank
    für diese Datenbankanwendung! Eine sehr gute Umsetzung mit den vielen Möglichkeiten des Datums.

    Weiterlesen...

     
  • SQL zu VBA Konverter

    Tommy Admin 03.11.2019 16:33
    RE: SQL zu VBA Konverter
    Hallo Elmard, danke für die Info. :lol:

    Weiterlesen...

     
  • SQL zu VBA Konverter

    elmard 03.11.2019 14:49
    Bei SmartTools neue Version 4.0
    Dieses Tool liegt inzwischen in der Version 4 vor und läuft nun auch von A2013 und A2016 sowie im ...

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    TommyK 27.02.2019 06:52
    Workshop
    Hallo mpegjunkie, danke für Dein Feedback. Schön das Dir Workshop weiter hilft. :D

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    mpegjunkie 26.02.2019 20:10
    Perfekter Workshop
    Hallo Tommy, perfekter Workshop, toll und umfassend erläutert. Jetzt nutze ich diese Controls auch.

    Weiterlesen...