1.3k Aufrufe
Gefragt in Datenbanken von
Hallo Spezialisten!

In einem Formular fülle ich über folgenden Code das aktuelle Datum und die aktuelle Uhrzeit in ein Memo-Feld.

Private Sub Historie-DS-anfuegen_Click()

SendKeys ("^{Home}")
historie.Text = historie.Text & vbCrLf & "-------------------------- " & Now & " --------------------------" & vbCrLf
historie.Text = historie.Text & vbCrLf & "----------------------------------------------------------------------------------------"
historie.SetFocus
SendKeys ("^{Down}")
SendKeys ("^{Down}")

End Sub

Nach dem Klicken wird folgender Eintrag in dem Memo-Feld gemacht (ohne "Beispieleintrag1"):

-------------------------- 03.09.2009 17:53:07 --------------------------
Beispieleintrag1
----------------------------------------------------------------------------------------

Der Cursor steht automatisch in der leeren Zeile (zwischen den beiden gestrichelten Linien), um Daten einzugeben (hier: Beispieleintrag1). Nun soll beim nächsten Klicken des Buttons wieder ÜBER dem alten Eintrag Datum und Uhrzeit eingetragen werden, also so:

-------------------------- 03.09.2009 17:54:59 --------------------------
Beispieleintrag2
----------------------------------------------------------------------------------------

-------------------------- 03.09.2009 17:53:07 --------------------------
Beispieleintrag1
----------------------------------------------------------------------------------------

Leider wird der zweite Eintrag aber UNTER dem ersten Eintrag erzeugt (trotz SendKeys ("^{Home}" in der ersten Zeile des Codes).

Hat jemand eine Idee, wie sich das bewerkstelligen läßt?

Vielen Dank schon mal im Voraus!

2 Antworten

0 Punkte
Beantwortet von
Hi,

Natürlich werden die neuen Einträge UNTER die bisherigen geschrieben. Daran kann auch Dein SendKeys ("^{Home}") nichts ändern. Damit positionierst Du nur den Cursor in die linke obere Ecke.
Die Reihenfolge/Zusammensetzung des Textes hingegen wird ausschliesslich in den Zeilen mit historie.Text =... bestimmt.

historie.Text = historie.Text & vbCrLf & "-------- " & Now & " -------" & vbCrLf


Hier hängst Du doch selbst an den bisherigen Text ein CRLF sowie die Bindestriche, als auch weiterhin Datum &Uhrzeit , etc. HINTEN dran. (Also unten drunter.)

Soll der neue Text vor den bisherigen, dann musst Du das auch im Code so zusammenfügen. Um bei Deinem obigen Beispiel zu bleiben, könnte das aussehen wie folgt:


Private Sub Historie-DS-anfuegen_Click()

historie.Text = vbCrLf & "----------" & vbCrLf & historie.Text
historie.Text = "----- " & Now & " -------" & vbCrLf & "?" & historie.Text
historie.SetFocus
SendKeys ("^{Home}")
SendKeys ("{Down}")
SendKeys ("^+{Right}")

End Sub


An welcher Stelle im Code die SendKeys stehen, sollte dabei egal sein. Ich hab sie nur "meiner Logik folgend" nach hinten geschoben. (Inhalt zusammenstückeln, Focus auf das Feld, Cursor nach links oben, eine Zeile runter, erstes Wort ("?") markieren.)

Bye
malSchauen
0 Punkte
Beantwortet von
Hi malSchauen,

vielen, vielen Dank, das klappt so!!!!! Perfekt !!!!!

Sorry, ich bin grade erst dabei, mich mit dem Thema zu beschäftigen, hab nicht allzu viel bis keine Erfahrung!

Vielen Dank nochmal für Deine Hilfe!

Torillo
...