FAQ amvCalendar
amvCalendar installieren
Die Installation von amvCalendar auf dem System des Entwicklers erfolgt über ein Setup. Dieses kannst Du nach dem Kauf im Downloadbereich Deines Kundenkontos im Shop von André Minhorst herunterladen.
Im Download findest Du eine Zip-Datei, die wiederum ein Setup namens amvCalendar.exe enthält. Dieses startest Du per Doppelklick und durchläufst die einzelnen Schritte.
Die installierten Dateien findest Du anschließend in dem gewählten Verzeichnis, standardmäßig unter:
C:\Users\[Benutzername]\Documents\AMV-Tools\Calendar
Der Ordner enthält neben der Datei amvCalendar.accdb noch die Deinstallationroutine und einen Unterordner mit den Lizenzbedingungen:
Wie Du amvCalendar zu Deiner eigenen Anwendung hinzufügst, erfährst Du in diesem Artikel.
Einen Schritt geht es in diesem Artikel, wo wir erläutern, wie Du amvCalender in Deiner Anwendung anzeigen kannst.
amvCalendar in eigene Anwendungen integrieren
Der Hauptzweck von amvCalendar ist, dass Du es in Deine eigenen Anwendungen integrieren kannst. So erhalten Du und Deine Benutzer und/oder Kunden eine performante und zuverlässige Terminplanung.
Dazu müssen wir die Elemente aus der Datenbank amvCalendar.accdb, die Du vorher wie hier beschrieben installierst, in Deine Datenbank importieren und einen Verweis auf die Bibliothek Microsoft Office x.0 Object Library setzen.
Dazu öffnest Du zuerst Deine eigene Datenbank. Hier wählst Du den Ribbonbefehl Externe Daten|Importieren und Verknüpfen|Neue Datenquelle|Aus Datenbank|Access aus.
Im folgenden Dialog wählst Du die Datei amvCalendar.accdb aus und klickst auf OK.
Im nun erscheinenden Dialog wählst Du alle Elemente der verschiedenen Bereiche aus und klickst auf OK.
Danach enthält Deine Datenbank berits alle Elemente. Wenn die Zieldatenbank noch kein Element namens Autoexec enthielt, kannst Du die Anwendung jetzt durch Schließen und erneutes Öffnen starten und sie zeigt direkt den amvCalendar an.
Hast Du bereits ein Makro namens Autoexec, wird das Autoexec-Makro von amvCalendar unter dem Namen Autoexec1 hinzugefügt. Willst Du nun ebenfalls direkt beim Start amvCalendar öffnen, fügst Du den einzigen Befehl des neuen Autoexec1 in das vorhandene Autoexec ein.
Nun fehlt noch der Verweis auf die Office-Bibliothek. Diesen fügst Du hinzu, indem Du mit Strg + G den VBA-Editor öffnest. Hier klickst Du auf den Menüeintrag Extras|Verweise. Im nun erscheinenden Verweise-Dialog wählst Du den Eintrag Microsoft Office x.0 Object Library aus. Das x steht für die jeweilige Version, zum Beispiel 16.
Mehr zum Starten von amvCalender erfährst Du in diesem Artikel.
amvCalendar aufrufen
Wenn Du den amvCalendar installiert und die Elemente in Deine Zieldatenbank importiert hast, findest Du eine ganze Menge neuer Objekte in Deiner Datenbank vor. Welches musst Du nun öffnen, damit der amvCalendar in Deiner Datenbank erscheint und welche Optionen bieten sich? Das schauen wir uns in diesem Artikel an.
Öffnen per Doppelklick
Die einfachste Möglichkeit, amvCalendar zu öffnen, ist ein Doppelklick auf das Formular FRM_CAL_MAIN im Navigationsbereich:
Damit wird amvCalendar für das aktuelle Tagesdatum geöffnet.
Öffnen per DoCmd.OpenForm
Du kannst amvCalender auch mit DoCmd.OpenForm öffnen. Das bietet sich an, wenn Du den Kalender per Schaltfläche in einem Formular oder über das Ribbon öffnen möchtest:
DoCmd.OpenForm “FRM_CAL_MAIN“
Optionen beim Öffnen
Im Auslieferungszustand wird amvCalender für das aktuelle Datum geöffnet und mit der Monatsansicht und geöffnetem Seitenbereich. Genau diese drei Einstellungen kannst Du selbst vornehmen:
  • Startdatum beim Anzeigen
  • Ansicht (Tagesansicht, Arbeitswoche, Woche, Monat)
  • Seitenbereich geöffnet oder geschlossen
Dazu gibt es die folgenden Variablen im Modul MOD_CAL_FUNCTION:
Public C_APP_START_DATE As Date ' Startdatum: des Kalenders
Public C_APP_START_VIEW As Long ' Startansicht: 1=Tag / 2=Arbeitswoche / 3=Woche / 4=Monat
Public C_APP_START_SLIDER As Long ' Startansicht: 1=FRM_CAL_SLIDE eingefahren / 2=FRM_CAL_SLIDE ausgefahren
Mit C_APP_START_DATE legst Du das Datum fest, das beim Öffnen des Kalenders angezeigt werden soll, zum Beispiel:
C_APP_START_DATE = “1.1.2024”
Du kannst Du auch eine Funktion wie Date() zuweisen, wenn amvCalendar immer für den aktuellen Tag geöffnet werden soll. Diese Einstellung muss, wie auch die anderen Einstellungen, vor dem Öffnen von amvCalendar vorgenommen werden.
Damit beim Starten beim ersten Test immer das aktuelle Datum angezeigt wird, haben wir dies selbst im Code des Formulars FRM_CAL_HOLDER wie folgt eingestellt, und zwar im Ereignis Beim Öffnen:
Wenn Du nicht willst, dass das Formular immer mit dieser Einstellung geöffnet wird, solltest Du diese Zeile auskommentieren.
Automatische Übername der Werte beim Schließen
Wenn alle drei Zeilen ausgeblendet sind, speichert amvCalendar immer beim Schließen die aktuellen Einstellungen für das aktuelle Datum, die Ansicht und den Seitenbereich in der Tabelle TBL_CAL_PROPERTY.
Diese Einstellungen werden beim nächsten Starten wieder eingelesen – es sein denn, Du hast eine der Variablen C_APP_START_DATE, C_APP_START_VIEW oder C_APP_START_SLIDER zuvor per Code eingestellt. Dann verwendet amvCalendar diese Werte.
Alle Werte einstellen
Das Einstellen von C_APP_START_DATE haben wir bereits weiter oben erläutert.
C_APP_START_VIEW erwartet einen der folgenden Werte:
  • 1: Tag
  • 2: Arbeitswoche
  • 3: Woche
  • 4: Monat
C_APP_START_SLIDER erwartet einen dieser Werte:
  • 1: Seitenbereich geschlossen
  • 2: Seitenbereich geöffnet
amvCalendar kaufen
Wenn Du amvCalendar kaufen möchtest, hast Du vielleicht Fragen, welche und wieviele Lizenzen Du kaufen musst. Oder Du fragst Dich, wo Du amvCalendar mit den verschiedenen Lizenzen überhaupt kaufen kannst. Wir beginnen mit den Möglichkeiten zum Kaufen, dann kommen wir zum Lizenzmodell.
amvCalender im Shop
Der Link zum Shop lautet:
Hier sieht Du zuerst nur die Möglichkeit, Entwicklerlizenzen zu kaufen. Hier findest Du zwei Auswahlfelder:
Mit dem ersten Auswahlfeld gibst Du an, wie viele Entwicklerlizenzen Du benötigst:
Danach wählst Du aus, wieviele Endbenutzerlizenzen Du benötigst:
Nun wird Dein Preis oben eingeblendet – hier für eine Entwicklerlizenz (149 EUR) und fünf Endbenutzerlizenzen (5 x 49 EUR):
Und wenn Du groß spielen möchtest, nimmst Du direkt die Ultimate-Lizenz. Damit kannst Du beliebig viele Entwickler in Deiner Firma mit amvCalendar arbeiten lassen und Deine Lösungen mit integriertem amvCalendar an beliebig viele Kunden verteilen:
amvCalendar: Die Lizenzen
Es gibt zwei verschiedene Lizenzen:
  • Entwicklerlizenz: Ist nötig zum Entwickeln von Lösungen mit amvCalendar.
  • Endbenutzerlizenz: Ist nötig für jeden Endbenutzer, der mit einer Lösung arbeitet, die amvCalendar enthält.
amvCalendar-Entwicklerlizenzen
Wenn Du überhaupt mit amvCalendar arbeiten möchtest, benötigst Du eine Entwicklerlizenz. Mit dieser Lizenz darfst Du amvCalender auf Deinem Arbeitsplatz zum Entwickeln Deiner Lösungen mit Integration von amvCalendar nutzen. Und natürlich darfst Du, wenn Du die Lösung nur für Dich oder auch für Dich programmierst, auch auf Deinem Rechner mit einer Lösung mit integriertem amvCalendar arbeiten.
Wenn Du Mitarbeiter hast, die ebenfalls Lösungen mit amvCalendar entwickeln, benötigst Du fürjeden Mitarbeiter weitere Entwicklerlizenzen. Die gute Nachricht ist: Wenn Du eine brauchst, kostet sie 149 EUR, bei zweien kostet jede Entwicklerlizenz nur 99 EUR, für zwei Entwickler also 198 EUR, für drei 297 EUR und so weiter.
amvCalendar-Endbenutzerlizenzen
Wenn Deine Lösung mit integriertem amvCalendar reif für den Kunden oder für Benutzer in Deinem Unternehmen ist, benötigst Du Endbenutzerlizenzen. Und zwar für jeden Benutzer, der mit dieser Lösung arbeitet, eine eigene.
Dafür haben wir eine schicke Staffelung entwickelt:
  • Kaufst Du eine bis fünf Endbenutzerlizenzen Standard, kostet jede jeweils 49 EUR.
  • Kaufst Du sechs bis zehn Endbenutzerlizenzen Standard, kostet jede jeweils 39 EUR.
  • Kaufst Du elf oder mehr Endbenutzerlizenzen Standard, kostet jede jeweils 29 EUR.
  • Und es gibt noch den Knaller für alle, die mehr als 68 Lizenzen benötigen: Dann zahlst Du für die Entwicklerlizenz Ultimate einmalig pauschal 1.999 EUR und kannst so viele Entwickler in Deiner Firma und so viele Endbenutzer mit Deiner Lösung mit integriertem amvCalendar ausstatten, wie Du möchtest.
Beispiele:
  • Du möchtest amvCalendar nur für Dich allein nutzen. Dann brauchst Du nur eine Entwicklerlizenz (149 EUR).
  • Du möchtest amvCalender selbst in eine Lösung integrieren und diese fünf Mitarbeitern in Deiner Firma zur Verfügung stellen. Dann brauchst Du eine Entwicklerlizenz und fünf Endbenutzerlizenzen (149 EUR plus 5 x 49 EUR = 394 EUR).
  • Du entwickelst im Team von drei Entwicklern an der Lösung mit integriertem amvCalendar und diese soll von 30 Benutzern eingesetzt werden. Dann brauchst Du drei Entwicklerlizenzen und 30 Endbenutzerlizenzen (3 x 99 EUR plus 30 x 29 EUR = 1.167 EUR).
Achtung: Die Staffelpreise gelten nur für den jeweiligen Einkauf. Wenn Du also einmal fünf Endbenutzerlizenzen kaufst und am nächsten Tag nochmal drei, kosten diese immer 49 EUR, also 5 x 49 plus 3 x 49 = 394 EUR. Kaufst Du direkt acht, zahlst Du nur 8 x 39 = 312 EUR.
Schweizer Kunden
Schweizer Privatkunden kann ich in meinem eigenen Shop nicht bedienen. Der Kauf von Software ist nur für Schweizer Firmenkunden möglich. Dazu musst Du im Shop auswählen, dass Du eine Firma hast und Deinen Firmennamen angeben. Danach müssen wir Dich noch freischalten. Bitte schicke uns deshalb nach der Registrierung oder wenn Du bereits Kunde bist und nun Deine Firma eingetragen hast, eine E-Mail mit der Bitte um Freischaltung.
Schweizer Privatkunden
Bist Du Privatkunde aus der Schweiz, kannst Du amvCalendar aktuell nicht kaufen.
Anzeigen des Kalenders in verschiedenen Ansichten
Wenn Du den Kalender in einer bestimmten Ansicht anzeigen möchtest, kannst Du die folgenden Aktionen durchführen.
Wenn die Ansicht geändert werden soll und der Kalender bereits geöffnet ist, diesen immer zuerst schließen:
DoCmd.Close acForm, "FRM_CAL_MAIN"
Zu aktuellem Datum wechseln
C_APP_START_DATE = Date
DoCmd.OpenForm "FRM_CAL_MAIN"
Tagesansicht aktivieren
C_APP_START_VIEW = 1
DoCmd.OpenForm "FRM_CAL_MAIN"
Arbeitswoche aktivieren
C_APP_START_VIEW = 2
DoCmd.OpenForm "FRM_CAL_MAIN"
Wochenansicht mit sieben Tagen aktivieren
C_APP_START_VIEW = 3
DoCmd.OpenForm "FRM_CAL_MAIN"
Monatsansicht aktivieren
C_APP_START_VIEW = 4
DoCmd.OpenForm "FRM_CAL_MAIN"
Sidebar einblenden
C_APP_START_SLIDER = 2
DoCmd.OpenForm "FRM_CAL_MAIN"
Sidebar ausblenden
C_APP_START_SLIDER = 1
DoCmd.OpenForm "FRM_CAL_MAIN"
Kalender schließen
DoCmd.Close acForm, "FRM_CAL_MAIN"
Neuen Termin anlegen
Statt Subject, Body und Location die gewünschten Daten angeben. Danach folgen die Startzeit und die Endzeit.
Es erscheint der Dialog mit den angegebenen Daten.
CreateNewMeeting "Subject", "Body", "Location", Now, Now + 1 / 48
Termine per VBA anlegen
Wenn Du Termine nicht über die Benutzeroberfläche des Kalenders, sondern per VBA anlegen willst, haben wir Dir die Funktion CreateNewMeeting_Parameter vorbereitet.
Diese platzierst Du in einem Standardmodul:
Public Function CreateNewMeeting_Parameter(strSubject As String, strBody As String, strLocation As String, datStart As Date, datEnd As Date, Optional bolShow As Boolean = True)
Dim rs As DAO.Recordset
Dim lID As Long
Dim sSql As String
Dim lHour As Long
Dim lMinute As Long
Set rs = CurrentDb.OpenRecordset("SELECT * FROM TBL_CAL_MEETING WHERE TID=-1")
With rs
.AddNew
lID = rs!TID ' Zur weiteren Verwendung
.Fields("TMASTER") = True ' IST FÜR TIDSUB (ZEIGT AN WELCHER TERMIN DER ERSTE IST / BEGINN DATUM < ENDE DATUM)
'************** Siehe TBL_CAL_ACCOUNT ***************************************************************************************************
.Fields("TMID") = 1 ' MASTER ID FUER MEHRERE KONTEN
'*********************************************************************************************************************************************
.Fields("TDATE") = Int(datStart) ' START DATUM DES TERMINS
.Fields("TDATEEND") = Int(datEnd) ' ENDE DATUM DES TERMINS
lHour = Format(datStart, "HH")
lMinute = Format(datStart, "nn")
If lMinute < 15 Then
lMinute = 0
ElseIf lMinute > 14 And lMinute < 30 Then
lMinute = 15
ElseIf lMinute > 29 And lMinute < 45 Then
lMinute = 30
ElseIf lMinute > 44 And lMinute < 59 Then
lMinute = 45
Else
lMinute = 0
lHour = lHour + 1
End If
If lHour = 24 Then
lHour = 0
End If
.Fields("TTIMEON") = Format(lHour & ":" & lMinute, "HH:MM") ' UHRZEIT VON
.Fields("TTIMEOFF") = DateAdd("n", 30, .Fields("TTIMEON")) ' UHRZEIT BIS
.Fields("TDAY") = False ' GANZTÄGIGES EREIGNIS
.Fields("TCAPTION") = strSubject ' BETREFF
.Fields("TLOCATION") = strLocation ' ORT
.Fields("TNOTICE") = strBody ' TEXT
'************** Siehe TBL_CAL_REMINDER ***************************************************************************************************
.Fields("TREMINDER") = True ' ERINNERUNG AKTIV JA / NEIN
.Fields("TREMINDERDURATION") = -15 ' MINUTEN VOR TERMIN TDATE
.Fields("TREMINDERTEXT") = "15 Minuten" ' MINUTE, STUNDE, TAG, MONAT USW.
.Fields("TREMINDERDAYTIME") = "12.09.2023 13:30:00" ' ERINNERUNGS-DATUM UND ERNEUT ERINNERN DATUM UHRZEIT
'*********************************************************************************************************************************************
'************** Siehe TBL_CAL_CATEGORY ***************************************************************************************************
.Fields("TCATEGORYCOLOR") = 10864631
.Fields("TCATEGORYID") = 1
'*********************************************************************************************************************************************
'************** Siehe TBL_CAL_POINTER ****************************************************************************************************
.Fields("TPOINTERCOLOR") = 3245299
.Fields("TPOINTERID") = 4
'*********************************************************************************************************************************************
.Update
End With
If Not rs Is Nothing Then
rs.Close: Set rs = Nothing
End If
If C_RCST_DAO_CATEGORY Is Nothing Then
Set C_RCST_DAO_CATEGORY = CurrentDb.OpenRecordset("TRANSFORM First(TBL_CAL_CATEGORY.TCATEGORY) AS C SELECT TBL_CAL_CATEGORY.TFID FROM TBL_CAL_CATEGORY GROUP BY TBL_CAL_CATEGORY.TFID PIVOT TBL_CAL_CATEGORY.TPOS")
Set C_RCST_DAO_CATEGORY_COLOR = CurrentDb.OpenRecordset("TRANSFORM First(TBL_CAL_CATEGORY.TCOLOR) AS C SELECT TBL_CAL_CATEGORY.TFID FROM TBL_CAL_CATEGORY GROUP BY TBL_CAL_CATEGORY.TFID PIVOT TBL_CAL_CATEGORY.TPOS")
Set C_RCST_DAO_POINTER = CurrentDb.OpenRecordset("TRANSFORM First(TBL_CAL_POINTER.TPOINTER) AS C SELECT TBL_CAL_POINTER.TFID FROM TBL_CAL_POINTER GROUP BY TBL_CAL_POINTER.TFID PIVOT TBL_CAL_POINTER.TPOS")
Set C_RCST_DAO_POINTER_COLOR = CurrentDb.OpenRecordset("TRANSFORM First(TBL_CAL_POINTER.TCOLOR) AS C SELECT TBL_CAL_POINTER.TFID FROM TBL_CAL_POINTER GROUP BY TBL_CAL_POINTER.TFID PIVOT TBL_CAL_POINTER.TPOS")
End If
If bolShow = True Then
sSql = "SELECT * FROM TBL_CAL_MEETING WHERE TID=" & lID
'Achtung: Hier 4 angeben für Anlegen eines neuen Termins
CAL_OpenForm "FRM_CAL_MEETING", , , , , , 4 & "~" & sSql & "~" & lID
End If
End Function
Wenn Du ein neues Meeting mit bestimmten Parametern anlegen möchtest und dieses gleich im Meeting-Formular anzeigen willst, verwende den folgenden Aufruf:
Public Sub Test_CreateNewMeeting_Param_MitAnzeige()
Call CreateNewMeeting_Parameter("Subject", "Body", "Location", Now, Now + 1 / 48)
End Sub
Wenn Du den Termin einfach so anlegen möchtest, ohne das der Termin in seinem Formular angezeigt wird, nutzt Du diesen Aufruf:
Public Sub Test_CreateNewMeeting_Param_OhneAnzeige()
Call CreateNewMeeting_Parameter("Subject", "Body", "Location", Now, Now + 1 / 48, False)
End Sub
Termin per VBA anzeigen
Zum Anzeigen eines Termins im Meeting-Formular kannst Du die folgende Prozedur nutzen. Diese fügst Du einem Standardmodul hinzu:
Public Sub ShowMeeting(lngID As Long)
Dim strSql As String
strSql = "SELECT * FROM TBL_CAL_MEETING WHERE TID=" & lngID
'Achtung: Hier 3 angeben, da Termin angezeigt werden soll
CAL_OpenForm "FRM_CAL_MEETING", , , , , , 3 & "~" & strSql & "~" & lngID
End Sub
Der Aufruf lautet beispielsweise:
Public Sub Test_ShowMeeting()
Call ShowMeeting(8)
End Sub
Als Parameter übergibst Du die ID des Meetings aus der Tabelle TBL_CAL_MEETING.
© 2025 Minhorst and Minhorst GbR. All rights reserved