Supportnet / Forum / Datenbanken
Textfeld mit VB aus Tabelle füllen
Frage
Hallo alle zusammen,
ich bin absoluter anfänger in Access und möcht hier mal eine Frage stellen:
Ich habe ein Textfeld, das ich mit einem Feld aus einer Tabelle füllen möchte. Dieses soll in VB geschehen. Ich hab hier im Forum gesehen, wie das mit einer Combobox funktioniert. Aber bei einem Textfeld gibt es kein rowsource.
Wenn mir jemand da weiterhelfen könnte, wäre ich sehr dankbar.
Gruß
Jürgen
Antwort 1 von El Bobbele
Hallo Jürgen!
Das Textfeld hat stattdessen die Eigenschaft Value.
Gruss
El Bobbele
Das Textfeld hat stattdessen die Eigenschaft Value.
Me.MeinTextfeld.Value = "bla"
'oder auch:
Me.MeinTextfeld = "bla"
'weil Value die Standardeigenschaft ist
Gruss
El Bobbele
Antwort 2 von JuergenB
Hallo El Bobbele,
Danke, das ist schon mal gut zu wissen.
Ich hatte vergessen zu sagen, daß das Textfeld mit einer Select Abfrage sein Wert erhalten soll.
Wenn ich das so mache wie du gesagt hast habe ich den Select-Befehl im Textfeld stehen.
Vielleicht weißt du ja auch wie das hinhaut?
Gruß
Jürgen
Danke, das ist schon mal gut zu wissen.
Ich hatte vergessen zu sagen, daß das Textfeld mit einer Select Abfrage sein Wert erhalten soll.
Wenn ich das so mache wie du gesagt hast habe ich den Select-Befehl im Textfeld stehen.
Vielleicht weißt du ja auch wie das hinhaut?
Gruß
Jürgen
Antwort 3 von El Bobbele
Hallo Jürgen!
Mit der zusätzlichen Erklärung sieht die Sache natürlich ganz anders aus. :-)
In deinem Fall wäre es am naheliegendsten, wenn du deine SQL-Anweisung in die Datenherkunft-Eigenschaft des Formulars steckst. Damit stehen erstmal alle Spalten der Abfrage allen Steuerelementen des Formulars zur Verfügung.
Anschließend trägst du in die Steuerelementinhalt-Eigenschaft deines Textfeldes das Feld aus der Abfrage ein, wodurch es zu einem gebundenen Textfeld wird, d.h. es zeigt nur noch Daten des zugewiesenen Feldes an und schreibt Änderungen in selbiges wieder zurück.
So sollte es auch bei dir laufen. Wenn der Lösungsansatz für deinen Formularentwurf aber ungeeignet ist, dann gibt es bei Bedarf noch andere Möglichkeiten.
Gruss
El Bobbele
Mit der zusätzlichen Erklärung sieht die Sache natürlich ganz anders aus. :-)
In deinem Fall wäre es am naheliegendsten, wenn du deine SQL-Anweisung in die Datenherkunft-Eigenschaft des Formulars steckst. Damit stehen erstmal alle Spalten der Abfrage allen Steuerelementen des Formulars zur Verfügung.
Anschließend trägst du in die Steuerelementinhalt-Eigenschaft deines Textfeldes das Feld aus der Abfrage ein, wodurch es zu einem gebundenen Textfeld wird, d.h. es zeigt nur noch Daten des zugewiesenen Feldes an und schreibt Änderungen in selbiges wieder zurück.
So sollte es auch bei dir laufen. Wenn der Lösungsansatz für deinen Formularentwurf aber ungeeignet ist, dann gibt es bei Bedarf noch andere Möglichkeiten.
Gruss
El Bobbele
Antwort 4 von El Bobbele
Ich habe gerade deinen Betreff nochmal gelesen, du wolltest es ja mit VB gelöst haben! Das hab ich offensichtlich übersehen... :-/
Wenn deine Abfrage nur einen einzigen Wert zurückgibt, dann ist die DLookup()-Funktion am besten geeignet.
Sind es mehrere Spalten oder Zeilen, dann brauchst du ein Recordset.
Gruss
El Bobbele
Wenn deine Abfrage nur einen einzigen Wert zurückgibt, dann ist die DLookup()-Funktion am besten geeignet.
Me.MeinTextfeld = DLookup("Feldname","TabelleOderAbfrage","OptionaleBedingung")
Sind es mehrere Spalten oder Zeilen, dann brauchst du ein Recordset.
Dim db As Database
dim rst As Recordset
'Recordset erstellen
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT Feldname1, Feldname2 FROM Tabelle;")
'Werte auslesen
Me.MeinTextfeld1 = rst!Feldname1
Me.MeinTextfeld2 = rst!Feldname2
Gruss
El Bobbele
Antwort 5 von JuergenB
Hallo El Bobbele,
Das ganze müsste glaube ich schon in VB geschehen, da der Inhalt der Textbox von verschiedenen Checkboxen abhängt.
Wenn Checkbox1 aktiv ist, dann Text1 in der Textbox.
Wenn Checkbox2 aktiv ist, dann Text2 in der Textbox.
Da das Ergebnis der Abfrage nur ein einziger String ist, muß es doch soetwas wie rowsource bei der Combobox geben, oder?
(Combobox.rowsource = "Select...")
Gruß
Jürgen
Das ganze müsste glaube ich schon in VB geschehen, da der Inhalt der Textbox von verschiedenen Checkboxen abhängt.
Wenn Checkbox1 aktiv ist, dann Text1 in der Textbox.
Wenn Checkbox2 aktiv ist, dann Text2 in der Textbox.
Da das Ergebnis der Abfrage nur ein einziger String ist, muß es doch soetwas wie rowsource bei der Combobox geben, oder?
(Combobox.rowsource = "Select...")
Gruß
Jürgen
Antwort 6 von JuergenB
Ups da war ich wohl etwas schnell :)
Juhu, es funktioniert mit DLookup :)
Vielen,Vielen Dank für deine Hilfe.
Ich wünsche noch ein angenehmes Wochenende.
Gruß
Jürgen
Juhu, es funktioniert mit DLookup :)
Vielen,Vielen Dank für deine Hilfe.
Ich wünsche noch ein angenehmes Wochenende.
Gruß
Jürgen

