PDA

Vollständige Version anzeigen : Netzwerk-Chat-Room Datenbank


ZeC
19.02.2009, 07:44
Hi Leute!

Ich hatte für meine Arbeit eine DB geplant in der mehrere Personen gleichzeitig all ihre Ideen einbringen können.

Damit alle gleichzeitig schreiben können und jeder lesen kann was gschrieben wurde sind E-Mails nicht gerade vorteilhaft.

Daher lasse ich alle in eine Tabelle schreiben und aktualisiere das Unterformular mit der Tabelle bei jedem neuen Datensatz.

Mittlerweile ist das Projekt ausgeartet und ähnelt schon eher einen Chat-Room :grins:

Bedienung ist recht einfach gehalten:
Die DB entzippen, in einen Ordner im Netzwerk ablegen auf den jeder Zugriff hat und die DB einfach [Freigegeben] öffnen.

Einen bestimmten Empfänger kann man einstellen indem man in in der Userlist doppelklickt oder im Texfeld "/" den Usernamen des Epfänger und ein Leerzeichen eingibt.

Um die Tabelle zu leeren schreibt man einfach in das Textfeld "/Clear_History".

Wenn ihr Ideen oder Anregungen habt freue ich mich sehr über Comments :D

greetz Chris

ZeC
19.02.2009, 12:51
Hi Leute!

Hab die DB wohl zu früh geschickt.

ich hab beim Code vergessen ,dass das Formular nur blinken kann solange der letzte Datensatz kontrolliert wurde.

Hier die aktuelle Version:

Afk009
27.02.2009, 09:40
@ Chris
gute Arbeit.... ist nett, aber schöner wäre wenn man noch verschiedene Farben benutzen kann, geht aber nicht. Hab das gleiche Problem bei meinem so ne Art ICQ Chat

ZeC
03.03.2009, 06:52
Hi,

@Afk009: Danke, Das mit den Farben lässt sich glaub ich nur mit VBA lösen aber leider habe ich gerade keine Zeit das auszuprobieren.


Ich habe auch eine kleine Anpassung im Code vorgenommen die es untrbindet das eine Fehlermeldung kommt wenn man auf <Send> klickt ohne Nachricht.

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Private Sub</span> cmdSend_Click()
<span class="TOKEN">Dim</span> cnt <span class="TOKEN">As</span> <span class="TOKEN">Long</span>
&nbsp;
<span class="TOKEN">If</span> IsNull(Me.txtNewText) <span class="TOKEN">Then</span> <span class="TOKEN">Exit Sub</span>
&nbsp;
<span class="REM">'Neuen Datensatz erstellen</span>
<span class="TOKEN">Dim</span> RS <span class="TOKEN">As</span> DAO.Recordset
<span class="TOKEN">Set</span> RS = CurrentDb.OpenRecordset(&quot;tbl_Haupttabelle&quot;)
RS.AddNew
RS!Sender = &quot;&gt;&gt;&quot; &amp; Me.txtUser
RS!Timestamp = Date &amp; &quot; &quot; &amp; Time()
&nbsp;
<span class="TOKEN">If</span> Me.txtNewText Like &quot;/Clear_History&quot; <span class="TOKEN">Then</span> <span class="REM">'Bei /Clear_History gesamte Tabelle leeren</span>
<span class="TOKEN">If</span> MsgBox(&quot;Wirklich l&ouml;schen&quot;, vbYesNo) = vbYes <span class="TOKEN">Then</span> CurrentDb.Execute &quot;DELETE tbl_Haupttabelle.* FROM tbl_Haupttabelle; &quot;
RS.CancelUpdate
RS.AddNew
RS!Text = &quot;Historie gel&ouml;scht&quot;
RS.Update
<span class="TOKEN">ElseIf</span> Left(Me.txtNewText, 1) = &quot;/&quot; <span class="TOKEN">Then</span> <span class="REM">'Wenn ein / am Textanfang steht wird der Empf&auml;nger eingetragen</span>
<span class="TOKEN">For</span> cnt = 2 <span class="TOKEN">To</span> Len(Me.txtNewText)
<span class="TOKEN">If</span> Mid(Me.txtNewText, cnt, 1) = &quot; &quot; <span class="TOKEN">Then</span>
RS!Empf&auml;nger = &quot;&lt;&lt;&quot; &amp; Mid(Me.txtNewText, 2, cnt - 2)
RS!Text = Mid(Me.txtNewText, cnt + 1, Len(Me.txtNewText))
RS.Update
<span class="TOKEN">Exit For</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Next</span>
<span class="TOKEN">If</span> cnt = Len(Me.txtNewText) + 1 <span class="TOKEN">Then</span> <span class="REM">'Wenn kein Text vorhanden ist</span>
RS.CancelUpdate <span class="REM">'Abbrechen</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Else</span> <span class="REM">'Ansonsten Text einf&uuml;gen</span>
RS!Text = Me.txtNewText
RS.Update
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
&nbsp;
RS.Close
<span class="TOKEN">Set</span> RS = <span class="TOKEN">Nothing</span>
&nbsp;
Me.txtNewText = <span class="TOKEN">Null</span> <span class="REM">'Textbox leeren</span>
Me.txtNewText.SetFocus
&nbsp;
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

mfg Chris

Blade0
02.07.2009, 11:45
Hallo zusammen,

ist es auch möglich anstatt eine eingabe bei start zu fordern autm.
den NT Usernamen zu ziehen?

Dann wäre ein funktion prima, die es erlaubt das nur das Fenster von dem User blinkt der PM angeschrieben wird.

Geht das?

ZeC
26.08.2009, 13:51
Hi Blade!

Das lässt sich alles leicht selber integrieren.
Den Usernamen des aktuell angemeldeten Users kriegst du mit CurrentUser() raus und wenn das mit dem blinken kannst du ganz leicht mit einer If-Anweisung vor dem Blinkroutineaufruf integrieren.

ZeC
10.09.2009, 11:03
Hi Blade!

Habe komplett übersehen das der NTUsername nicht zwingend der Access Username sein muss.

Habe daher die Suche gestartet und diese Funktion gefunden:
<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Public</span> <span class="TOKEN">Declare</span> <span class="TOKEN">Function</span> GetUserName <span class="TOKEN">Lib</span> &quot;advapi32.dll&quot; _
<span class="TOKEN">Alias</span> &quot;GetUserNameA&quot; (<span class="TOKEN">ByVal</span> lpBuffer <span class="TOKEN">As</span> String, nSize <span class="TOKEN">As</span> <span class="TOKEN">Long</span>) <span class="TOKEN">As</span> <span class="TOKEN">Long</span>
&nbsp;
<span class="TOKEN">Function</span> ReturnUserName() <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="REM">' returns the NT Domain User Name</span>
<span class="TOKEN">Dim</span> rString <span class="TOKEN">As</span> <span class="TOKEN">String</span> * 255, sLen <span class="TOKEN">As</span> Long, tString <span class="TOKEN">As</span> <span class="TOKEN">String</span>
tString = &quot;&quot;
<span class="TOKEN">On</span> <span class="TOKEN">Error</span> <span class="TOKEN">Resume</span> <span class="TOKEN">Next</span>
sLen = GetUserName(rString, 255)
sLen = InStr(1, rString, Chr(0))
<span class="TOKEN">If</span> sLen &gt; 0 <span class="TOKEN">Then</span>
tString = Left(rString, sLen - 1)
<span class="TOKEN">Else</span>
tString = rString
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">On Error GoTo 0</span>
ReturnUserName = UCase(Trim(tString))
<span class="TOKEN">End</span> <span class="TOKEN">Function</span>
&nbsp;</pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

vuachl
23.04.2010, 12:45
Hallo Forum,

könnte man die Datenbank vielleicht noch mit einem Passwort schützen? So das nicht jeder im Netzwerk diese öffnen kann. Wäre klasse wenn das noch jemand mit einbauen könnte.

Vielen Dank.

MFG