Home

1 1 1 1 1 1 1 1 1 1 Rating 3.00 (1 Vote)

Problemstellung:
Erweiterung für die Userverwaltung I und II:
Verwenden eines eigenen Mailsystems innerhalb einer Access Mehrbenutzer Anwendung

Die hier vorgestellte Lösung ist eine Erweiterung der beiden Bsp:
Userverwaltung I
Userverwaltung II
Es wurde die Frage aufgeworfen: Wie kann man innerhalb einer Access
Mehrbenutzer Anwendung ein System, ähnlich E-Mail,
aufbauen aber weder mittels E-Mail noch NetSend o.ä.?
Es soll nur innerhalb der Access-Anwendung funktionieren.
Eine Lösung möchte ich hier mal vorstellen.

Voraussetzungen:
Das Bsp ist ab A00 lauffähig.

Das Setup installert die Dateien automatisch in das Verzeichnis
"C:\tk_Mailsystem"
Grund sind die Tabellenverknüpfungen des BE's im FE.
Auch kommt die "Crypter2.dll" wieder zum Einsatz, diese wird automatisch installiert und registriert.
Benutzer der "CrypterPW.dll" können diese auch hier für benutzen.
Der Unterschied ist nur das in der "Crypter2.dll"
noch das FileStorage-System enthalten ist.
Dieses Bsp baut auf die Userverwaltungen aus o.g. DB's auf.
Für andere Userverwaltungen steht es jedem frei dieses Bsp anzupassen oder umzuschreiben.

Funktionsweise:
Folgende Objekte werden benötigt: Tabellen im BE (Einbinden ins FE):
In den Userverwaltungen bereits vorhanden:
tbl_User: enthält die Daten der User
zusätzliche neue Tabelle:
tbl_Mail: enthält alle Daten der Mails, wie Absender, Empfänger, Mailtext usw.

Abfragen:
In den Userverwaltungen bereits vorhanden:
qry_Filter_logon: wird für das Startform, zur Anzeige des eingeloggten Users benötigt.
zusätzliche neue Abfragen:
qry_MailAll: wird für das Form benötigt zur Anzeige aller Mails des jeweiligen Users.
qry_MailLog: wird für das Form MailMsgBox benötigt zur Anzeige neuer Mails.
Formulare:
In den Userverwaltungen bereits vorhanden:
frm_User_anmelden: wird beim Start des Programms geladen zum Einloggen in die DB
frm_User_Passwort_Neu: zum Passwort ändern
frm_PW_Return: Hilfsform zum zurücksetzen das Passworts (wird nicht angezeigt)
frm_Userstamm: Anzeige und bearbeiten der User (nur für Admin’s)
frm_Start: nur zur Demonstration des Mailsystems
zusätzliche neue Forms:
frm_Mail: zum Schreiben neuer Mails
frmMailAll: Anzeige aller erhaltenen Mails, Löschen möglich
frmMailboxLog: ausgeblendetes Formular zum Prüfen auf neue Mails
frmMailMsgBox: Anzeige aller ungelesenen Mails
Module:
In den Userverwaltungen bereits vorhanden:
mod_Funktionen: enthält einige benötigte Funktionen.
Bei Verwendung in den Userverwaltungen ist nur folgender Code ist zusätzlich erforderlich,
da Modul schon vorhanden
'Im Modulkopf einfügen
Public intUserID As Integer
Public Function fct_SendVar()
  fct_SendVar = intUserID
End Function


So funktionierts:
Nach der Useranmeldung und der Anzeige des Startforms wird das Formular
"frmMailboxLog" ausgeblendet geladen.
Das Laden des Forms und die Zuweisung der UserID erfolgt im "Load-Ereignis" des Startforms.
Hinweis:
Im Startform müssen ggü. der orginalen Userverwaltungen noch 2 Felder eingefügt werden (Sichtbar=Nein)
1. Name: txt_User_Name Steuerelementinhalt: User_Name
2. Name: txt_User_ID Steuerelementinhalt: User_ID

Private Sub Form_Open(Cancel As Integer)
    intUserID = Me.txt_User_ID
    DoCmd.OpenForm "frmMailboxLog", acNormal, , , , acHidden
End Sub

Der Timer des Forms ist auf 60 Sek eingestellt. Das bedeutet aller 60 Sek fragt das Form ab
ob neue Nachrichten da sind.
Dieser Wert kann beliebig verändert werden, aber ein Verkleinerung wäre nicht zu empfehlen,
da hier die Systembelastung steigt.

Private Sub Form_Timer()
  Static MsgBoxDone As Boolean
  Dim strMsg As String
  Dim MailLog As Boolean
  Dim iCount As Integer
  Dim db As DAO.Database, rs As DAO.Recordset
  
  MailLog = False
  On Error Resume Next
  Set db = CurrentDb()
  Set rs = db.OpenRecordset("qry_MailLog")
  rs.MoveLast
  iCount = rs.RecordCount
  If iCount > 0 Then MailLog = True
  rs.Close
  db.Close
  On Error GoTo 0
  
  If MailLog = True Then
    If Not MsgBoxDone Then
      Beep
      DoCmd.OpenForm "frmMailMsgBox"
      MsgBoxDone = True
    End If
  End If
End Sub


Ist ein neues Mail da wird das Form "frmMailMsgBox" geöffnet und das oder die neuen Mails angezeigt.
Im sich öffnenden Fenster wird die Anzahl der vorhandenen Nachrichten angezeigt.
Mit den Navigations-Buttons klickt man sich durch die vorhandenen Nachrichten.
Wurde das Mail gelesen wird automatisch, durch das Anzeigen-Ereignis ein Flag gesetzt der
das Mail als gelesen kennzeichnet.
Sind mehrere Mails angekommen aber es werden nicht alle gelesen poppt das Fenster nach 60 Sek wieder auf,
da noch ungelesene Mails da sind.
Haben Mails den Flag "Gelesen" erhalten können diese im Form "
frmMailAll" angezeigt werden,
auch ein Löschen von Nachrichten ist hier möglich.


Im Startform ist eine Combobox enthalten in der alle aktiven User, auch offline, angezeigt werden.
Die Auswahl eines Users als Empfänger und das Schreiben neuer Mails kann auch aus einem
seperaten Form geschehen.
In diesem Fall muss aber das Startform immer im Hintergrund offen sein.
Nach der Auswahl eines Users kann über den Button "Neue Mail schreiben" eine neue Mail erfasst werden.
Mittels "Abbrechen"-Button kann der Vorgang abgebrochen werden. Mit "Mail senden" wird
das Mail in die DB geschrieben.
Ist der Empfänger online erhält nach 60 Sek die neue Mail ansonsten wenn er sich das nächste
Mal in der DB anmeldet. Auch hier nach dem ersten Zyklus von 60 Sek.

In der Bsp-DB sind für den User "Egon Aufsicht" 2 Mails und für den User "Willi Gast" ein Mail hinterlegt.
Erfolgt die Anmeldung mit einem von beiden erhaltet Ihr innerhalb von 60 Sek nach dem
Start die Mitteilung über neue Nachrichten.

Fazit:
Es ist sicher eine Lösung die noch erweiterbar ist. Der Eigeninitiative sind hier keine Grenzen gesetzt.

Dateien:

Erweiterung für die Userverwaltung I und II:

Verwenden eines eigenen Mailsystems innerhalb einer Access Mehrbenutzer Anwendung

ab A00

Die Setup-Datei enthält eine Version ab A00

Datum 05.02.2018
Dateigröße 293.49 KB
Download 1.949

Ä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.png8.png5.png9.png6.png
Heute114
Gestern271
Diese Woche945
Dieser Monat7219
Total1578596

  • IP: 35.171.159.141
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

2
Online

28. 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...