Grund:
Ich habe mir ein Formular erstellt um eine wenig mit Strings zu üben, und mich an VBA zu gewöhnen.
Denn ich möchte Daten aus einer Textdatei einlesen und mir Werte rausziehen, die Daten sind leider nicht in Tabellenform egal.
Problem:
Ich wollte mir eine Soubroutine machen welche mir ein wenig Tipparbeit erleichter, und mir eine Zeichenkette zu meinem Textfeld hinzufügt
Private Sub writeToScratchPad(strData As String, newLine As Boolean)
'edtScratchPad ist ein Textfeld auf besagtem Formular
edtScratchPad.Value = edtScratchPad.Value & strData
If newLine Then
edtScratchPad.Value = edtScratchPad.Value & vbCrLf
End If
End Sub
Das Problem ist die müsste ich eigenltich in die Klasse meines Formulars packen, um sie dann mit
Me.writeToScratchPad(...) bei einem Ereigniss zu nutzen, nur wie mache ich das bei Access?
Achja VBA und Access sind neu für mich, kenne mich ein wenig C++,und C#
Hallo,
um die Routine aufzurufen, benötigst Du ein auswertbares Ereignis im Form, das eine Ereignisprozedur anstößt.
z. B. beim Klick auf eine Schaltfläche ("btnWriteScratch"):
Sub btnWriteScratch_Click()
Call writeToScratchPad ("Das ist mein Text", True)
End Sub
Etwas korrigierter Code:
Private Sub writeToScratchPad(strData As String, newLine As Boolean)
'edtScratchPad ist ein Textfeld auf besagtem Formular
Me!edtScratchPad.Value = Me!edtScratchPad.Value & strData ' ME! ("This"!!) nicht vergessen , aber auch nur, wenn die Sub im akt. Formularklassenmodul steht, Value ist Default
If newLine Then
Me!edtScratchPad = Me!edtScratchPad & vbCrLf
End If
End Sub
Insgesamt hat diese SUB aber eher keinen großen Vorteil (vom Üben mal abgesehen) weil der eigentlich relevante Code gleich in die beispielhafte Ereignisprozedur geschrieben werden könnte:
Sub btnWriteScratch_Click()
Dim strData as String
strData = "Das ist mein Text" ' nur als Beispiel, um zu einem Wert für strData zu kommen.
Me!edtScratchPad = Me!edtScratchPad & strData ' m. E. eher so: Me!edtScratchPad = Me!edtScratchPad & vbCrLf & strData
' oder Me!edtScratchPad = Me!edtScratchPad & vbCrLf 'falls das an dieser Stelle gewünscht und überhaupt sinnvoll ist
End Sub