PDA

Vollständige Version anzeigen : Eingabe in einem Feld ergibt automatische Ausgabe im nächsten Feld


Pusteblume
27.04.2011, 15:04
Hallo zusammen,

mein Anliegen: weiß nicht so wirklich wie ich es mittels Suchmaschine finden soll. Alsooo, ich habe ein Bezeichnungsfeld. Wenn ich in diesem z.B. Temperatur eingebe, soll im nächsten Bezeichnungsfeld automatisch Celsius stehen. Geht so etwas?

LG Pusteblume

maikek
27.04.2011, 15:08
Bezeichnungsfeld? Wieso willst du etwas in Bezeichnungsfelder eingeben, ich mein, außer einmal beim Erstellen des Formulars? :confused:
Beschreib das doch bitte mal etwas genauer, was du da vorhast ...
maike

CptChaos
27.04.2011, 15:08
In einem Bezeichnungsfeld wirst Du nichts eingeben können.
Du meinst vmtl. ein Textfeld...

Letztlich brauchst Du irgendwo eine "Übersetzungstabelle" in der diese Zuordnung abgebildet ist.
Über DLookUp könnte man dann den entsprechenden Wert auslesen.

Was ist der Hintergrund der Frage?

Atrus2711
27.04.2011, 15:08
Hi,

ich habe ein Bezeichnungsfeld. Wenn ich in diesem z.B. Temperatur eingebe
ist das wirklich ein Bezeichnungsfeld? Dann kannst du es nur im Entwurf oder per VBA befüllen. Ist es ein Textfeld, geht das auch in der Formularansicht.

Wenn ich in diesem z.B. Temperatur eingebe, soll im nächsten Bezeichnungsfeld automatisch Celsius stehen. Geht so etwas?
Woher soll Access wissen, dass Celsius eine Maßeinheit der Temperatur ist? Das kannst du allenfalls in einer Tabelle ablegen. Diese Tabelle "weiß" (von dir), welche Einheit für welche Größe gilt.
Im einfachsten Fall:
Einheit Größe
Temperatur Celsius
Masse g
Geschwindigkeit m/sec
Spannung Volt
etc

Im Formular könnte diese Tabelle dann als Basis für ein Kombifeld dienen. Bei Auswahl der Größe steht dann die Einheit dazu zur Verfügung.

Ist das so etwa das, was du vorhast?

Pusteblume
27.04.2011, 15:09
Es ist natürlich ein Textfeld.

Pusteblume
27.04.2011, 15:16
Und wie funktioniert das genau? Ich würde für Temperatur etc. ein Kombinationsfeld anlegen. Wenn ich dann bspw. Temperatur ausgewählt habe, soll im nächsten TEXTFELD ;) dann Celsius oder welche Einheit auch immer stehen.

gpswanderer
27.04.2011, 15:55
Hallo,
im Anhang ein einfaches Beispiel. Aufbauend auf dem Vorschlag von Martin.
Wähle im Formular ein Messwert (mit dem Kombi) dann erscheint automatisch die passende Einheit. Nur noch den gemessenen Wert eintragen.

Es wird im Beispiel nichts programmiert. Das sind alles Standardfunktionen von Access.

Pusteblume
28.04.2011, 08:51
Was habe ich falsch gemacht?

CptChaos
28.04.2011, 08:56
Die Felder Indikator_Wert und Indikator_Einheit beziehen sich auf nicht vorhandene Felder...
Und wieso wurde aus den Bezeichnungsfeldern die eigentlich Textfelder waren jetzt plötzlich Kombinationsfelder?

Geht es evtl. eher um "abhängige Kombinationsfelder" (s. Link in meiner Sig)

gpswanderer
28.04.2011, 09:06
Hallo,
Was habe ich falsch gemacht?Du verwendest Steuerelementinhalte die es gar nicht gibt.

Pusteblume
28.04.2011, 09:40
ah okay. wie mache ich es denn wenn das formular auf einem query beruht?

CptChaos
28.04.2011, 09:41
Auch eine Query hat Felder die als Datenherkunft genutzt werden können...

Schau Dir doch ggf. nochmal das einfache und sehr gute Beispiel von Klaus an.
Auch dort dient dem Formular eine Abfrage als Datenherkunft...

Pusteblume
28.04.2011, 09:50
Aber man sieht die Abfrage ja nicht direkt im Startbildschirm. Erst wenn man auf Eigenschaften Datenherkunft geht ist folgender "Code" hinterlegt:
SELECT Messwerte.*, Einheiten.Einheit FROM Einheiten INNER JOIN Messwerte ON Einheiten.EinheitID=Messwerte.EinheitID_F;
Ist das überhaupt eine Abfrage?

CptChaos
28.04.2011, 09:54
Das ist eine SQL-Anweisung die hier wie eine Abfrage genutzt wird, ja.

Aber genau so hast Du es doch auch in dem von Dir geposteten, nicht funktioinierendem Beispiel.
Ändere die Datenherkunft der Felder im Formular auf wirklich existierende Felder (der Datenherkunft des Formulars!) und es funktioniert.

gpswanderer
28.04.2011, 10:13
Hallo,
diese Select Anweisung kannst Du auch als Abfrage speichern und dann wie eine Tabelle verwenden.
Abfragen und Tabellen sind bei Access gleichwertig.

Pusteblume
28.04.2011, 10:28
Also Felder existieren jetzt bzw. ich habe es so übernommen wie Klaus es in der zurück geschickten DB gemacht hat.

Jetzt habe ich in dem Formular bei den Eigenschaften unter Datenherkunft folgende SQL-Anweisung stehen:
SELECT Messwerte.*, Einheiten.Einheit FROM Einheiten INNER JOIN Messwerte ON Einheiten.ID=Messwerte.KPI;

Habe nun aus einem anderen Formular verschiedene Felder (wie z.B. Datum, Uhrzeit,...) kopiert und in das neue Formular eingefügt. Konsequenz: das Feld existiert nicht in der Feldliste. Muss ich die Abfrage an die SQL-Anweisung dran fügen?

gpswanderer
28.04.2011, 10:34
Hallo,
Du kannst doch nicht einfach irgendwo Felder hernehmen und einfach in das Formular einfügen. Das muss Dir doch klar sein. Die neuen felder müssen doch auch in der Datenherkunft vorhanden sein.
Du musst also in der Abfrage die fehlenden Felder ergänzen.

Pusteblume
28.04.2011, 10:47
Wenn ich die SQL-Anweisung als Abfrage speichere und dann wie du gesagt hast, die fehlenden Felder (mittels Hinzufügen der Abfrage mit den fehlenden Feldern) in der neu gespeicherten Abfrage ergänze, dann passiert beim Öffnen des Formulars folgendes:
ich kann in dem Kombinationsfeld zwar den dropdown Button klicken, aber nichts auswählen.

Atrus2711
28.04.2011, 12:05
Hi,

wenn die Abfrage sie gewünschten Zeilen und Spalten liefert, wenn du sie separat öffnest, liegt das an den Einstellungen des Kombifelds.

Prüf für das Kombifeld mal,

ob die Eigenschaft Spaltenzahl der Anzahl der sichtbaren Spalten in der Abfrage entspricht
den Wert der Eigenschaft Spaltenbreiten. Du kannst hier so viele Breiten angeben (durch Semikolon getrennt), wie du bei Spaltenzahl eingestellt hast.
die gebundene Spalte. Die Zahl dort steht für die "sovielte" (Anzahl) der sichtbaren Spalten der Abfrage. Der Wert dieser Spalte wird beim Auswählen gelesen und in die Eigenschaft Steuerelementinhalt geschrieben.

Pusteblume
28.04.2011, 12:25
Letzteres verstehe ich nicht wirklich. Kannst du es noch näher erklären?

Atrus2711
28.04.2011, 12:37
Bei Gebundene Spalte steht doch eine Zahl. Diese Zahl ist die Nummer der Spalte aus der Abfrage, die du letztlich einträgst, sobald du durch Aufklappen und Auswählen des Kombis einen Wert festlegst.

Ist das z.B. deine Kombi-Abfrage:

1 Meier 27.11.1980
2 Müller 13.10.1993
3 Schulze 04.09.1991

und du wählst die Schulze-Zeile aus, dann "hat" das Kombi als ganzes den Wert

3, wenn die gebundene Spalte die 1 ist (= 1. Spalte = Nummer vom Schulze)
Schulze, wenn die gebundene Spalte die 2 ist (= 2. Spalte = Name vom Schulze)
04.09.1991, wenn die gebundene Spalte die 3 ist (= 3. Spalte = Geburtsdatum vom Schulze)

Pusteblume
28.04.2011, 12:45
Hmm, daran liegt es auch nicht. Man kann einfach nichts auswählen :-(

Atrus2711
28.04.2011, 12:46
Ist das Kombi mglw. gesperrt oder nicht aktiviert (beides Eigeschaften)?

Ansonsten lad mal hoch...

maikek
28.04.2011, 12:49
Bei dem bisher gezeigten leicht unorthodoxen Umgang mit Feldern ;) würde ich mal auf eine nicht aktualisierbare Abfrage als Datenherkunft des Formulars tippen?
maike

Pusteblume
28.04.2011, 12:53
Wuah, so langsam versteh ich nur noch bahnhof. ich versuch nochmal die db etwas kleiner zu bekommen und den murks dann hochzuladen...

Atrus2711
28.04.2011, 13:04
Maike meinte: kannst du denn in den anderen Feldern des Formulars irgendwas eingeben?

Pusteblume
28.04.2011, 13:13
Ja in den anderen Feldern kann ich etwas eingeben. Habe die DB mal hochgeladen. Ich hoffe ihr flippt nicht ganz so aus....

CptChaos
28.04.2011, 13:17
Datenbank lässt sich bei mir nicht öffnen.
Bekomme diverse Fehler bzgl. nicht vorhandener Objekte.
Scheint ein Fehler beim Packen und/oder hochladen gewesen zu sein oder die Datenbank selbst ist korrupt.

Bitte nochmals komprimieren & reparieren, anschließend zippen und danach hier hochladen.

Atrus2711
28.04.2011, 13:18
Hi,

abgesehen von den fehlenden Teilen, die da angemahnt werden:

Die Datenquelle des Kombis ist eine Abfrage auf Basis der Tabelle Berichte. Und diese Tabelle ist leer.

Was soll da rauskommen, deiner Meinung nach?!

Pusteblume
28.04.2011, 13:27
Puh, stimmt. Habs mir gerade nochmal angeschaut. Ganz schöner Murks. Gibt es nicht irgendwie eine andere Lösung? Nicht, dass ich aufgeben möchte, aber es scheint mir sehr kompilziert.

Atrus2711
28.04.2011, 13:29
Was ist kompliziert daran, die Tabelle zu füllen?

Pusteblume
28.04.2011, 13:46
Aber es funktioniert ja auch nicht, wenn ich die Tabelle fülle!??

CptChaos
28.04.2011, 13:55
"Aber ich mag die Suppe nicht"
Welche Tabelle hast Du gefüllt? Die, welche als Datenherkunft für das Kombinationsfeld dient?