Access2000: Textfelder dauerhaft beschriften

Hallo Experten!

Ich glaube es kaum, aber ich bringe etwas nicht hin, was aus meiner Sicht eigentlich kein Problem sein sollte:

Wenn ich in Access2000 ein Formular erstelle, welches unter Anderem ein Textfeld enthält, erscheint dieses bei einem Neustart des Formulars leer; sprich => ich erstelle ein Textfeld in der Entwurfsansicht, gehe in die Normalansicht über, schreibe etwas hinein, speichere, schliesse Access, öffne es wieder und den Text, welchen ich einfügte, ist nicht mehr da… Wie kann ich das Problem lösen?

Danke für Eure Antworten!

MfG / David

Hi David,

verwechselst Du Textfeld und Bezeichungfeld?

Ein Textfeld enthält Daten aus der Datenbank.
In den Eigenschaften des Feldes (Karte „Daten“, Feld „Steuerelementinhalt“) gibst Du ein, auf welches DB-Feld sich dieses Textfeld beziehen soll, also welche DB-Daten es enthalten soll. Wenn die Eigenschaft „Steuerelementinhalt“ leer ist (in der Entwurfsansicht des Formulars steht „ungebunden“ im textfeld), schreibst Du die Daten, die Du eingibst ins Nichts - und beim nächsten Öffnen sind die Daten weg.
Ein Bezeichnungsfeld ist ein „Label“, es enthält einen String und ist Datenunabhängig.

Bei Fragen melde Dich einfach!

Michl

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Michl

Danke für Deine Antwort! So weit so gut; was ist jedoch, wenn ich in der Normalansicht des Formulars etwas in dieses Feld reinschreiben möchte? Das geht ja nicht bei einem Bezeichnungsfeld, oder?

Danke für Dein Tip!

Gruss, David

Hi David,

verwechselst Du Textfeld und Bezeichungfeld?

Ein Textfeld enthält Daten aus der Datenbank.
In den Eigenschaften des Feldes (Karte „Daten“, Feld
„Steuerelementinhalt“) gibst Du ein, auf welches DB-Feld sich
dieses Textfeld beziehen soll, also welche DB-Daten es
enthalten soll. Wenn die Eigenschaft „Steuerelementinhalt“
leer ist (in der Entwurfsansicht des Formulars steht
„ungebunden“ im textfeld), schreibst Du die Daten, die Du
eingibst ins Nichts - und beim nächsten Öffnen sind die Daten
weg.
Ein Bezeichnungsfeld ist ein „Label“, es enthält einen String
und ist Datenunabhängig.

Bei Fragen melde Dich einfach!

Michl

was ist jedoch, wenn
ich in der Normalansicht des Formulars etwas in dieses Feld
reinschreiben möchte?

Du kannst:

  • in den Eigenschaften einen Standardwert für das Feld vorbelegen.

  • oder direkt einen Inhalt hinterlegen (z.B.mit: =„das ist ein Testext“) Hat aber den Nachteil, dass sich dann keine Änderungen speichern lassen, weil das Feld an diesen vorgegeben Ausdruck gebunden ist.

Oder per VBA-Code zuweisen: MeinFeld = „das ist ein Testtext“

„Echt“ gespeichert wird der Inhalt aber nur, wenn man ihn an ein Datenbankfeld bindet, wie Michl es beschrieben hat.

Gruß,
Claudio

OK, ich möchte jedoch ein dynamisches Feld, also ohne Standardwert. Ich möchte jedesmal etwas anderes in das Feld reinschreiben, wenn ich das Formular öffne…

Wie geht das?

Du kannst:

  • in den Eigenschaften einen Standardwert für das Feld
    vorbelegen.

  • oder direkt einen Inhalt hinterlegen (z.B.mit: =„das ist ein
    Testext“) Hat aber den Nachteil, dass sich dann keine
    Änderungen speichern lassen, weil das Feld an diesen
    vorgegeben Ausdruck gebunden ist.

Oder per VBA-Code zuweisen: MeinFeld = „das ist ein Testtext“

„Echt“ gespeichert wird der Inhalt aber nur, wenn man ihn an
ein Datenbankfeld bindet, wie Michl es beschrieben hat.

Gruß,
Claudio

Hi David,

richtig, Du kannst in ein Bezeichnungsfeld nichts eintragen.
Wenn Du das möchtest, so erstelle eine Tabelle und verknüpfe diese Tabelle mit dem Formular. Dann verknüpfst Du noch ein Textfeld mit einer Spalte der Tabelle und schon werden die Werte, die zu zur Laufzeit in das ZTextfeld eingibst, in der Tabelle abgespeichert.

Viele Grüße,

Michl

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo David,

vielleicht hilft Dir das …

Sub DeinTextFeld\_AfterUpdate()
Dim DB As DAO.Database ' DAO nur verwenden bei Access 2000!
Dim RS As DAO.Recordset 'ansonsten weglassen

Set DB = CurrentDb()

Set RS = DB.OpenRecordset("DeineTabelle")

RS.AddNew

RS!TEXTFELD = Me!DeinTextFeld 
'TEXTFELD ist Feld in Tabelle "DeineTabelle"
'DeinTextFeld ist Dein Textfeld im Formular

RS.Update
RS.Close

Set DB = Nothing

End Sub

Das fügts Du als Ereignisprozedur unter „Nach Aktualisierung“ bei Deinem Textfeld ein.

gruss moritzbock

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]