Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

TextFeld anhand Dropdown auswahl befüllen!

Begonnen von J.D, Dezember 20, 2015, 18:42:46

⏪ vorheriges - nächstes ⏩

J.D

Hallo Forum,
Ich bin erst mit Access angefangen und finde mich noch nicht so ganz zurecht :( 

Also ich habe eine kleine Datenbank gemacht, das funktioniert auch mit dem Formular... 

In dem Formular habe ich ein Dropdown welches mir die Auswahl der Namen anzeigt, das heisst TraegerDrop  (Tabele Traeger)

Mein Form bezieht sich auf Tabele Kunden und der Wert aus TraegerDrop wird auch darin gespeichert!

Nun möchte ich in einigen TextBoxen zb. den Namen anzeigen und Ort
Dazu habe ich den Ausdrucksgenerator versucht...
= SELECT [Traeger].[ID], [Traeger].[Traeger_Name] FROM [Traeger] WHERE [Traeger].[ID]= [TraegerDrop];
um das feld TraegerName zu befüllen, dieses will mir aber nicht gelingen, er zeigt mir immer #name?

Als Standard für das Dropdown habe ich 1 gewählt also wird doch auch die ID welches ja in dem fall ist die [Traeger].[ID] von dem feld übergeben???

Grüsse J.D.
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2

MzKlMu

Hallo,
da brauchst Du überhaupt nicht programmieren. Nimm als Datenherkunft für das Formular das beide Tabellen (Kunden und Traeger) enthält. Die Tabellen sind über die ID zu verknüpfen. Dann kannst Du alle Felder aus beiden Tabellen im Formular anzeigen. Direkt und ohne irgendwelche Klimmzüge.
Das Formular (bzw. die Felder) aktualisieren sich automatisch bei Auswahl eines Traegers.

Mann kann keine Abfrage als Steuerelementinhalt verwenden, das heißt, das was Du versucht hast ist grundsätzlich nicht möglich.
Gruß Klaus

J.D

Hallo MzKlMu,

also ich sehe das Positiv mit dem Sport :)
Ich kann mich gut in Exel aber Access ist leider etwas neuland für mich!

Denoch sind die beiden Tabelen leider in keine relation zueinander sodass die Verknüpfung über die ID glaube ich keinen sinn macht!???

Ich habe das nun nach http://www.access-o-mania.de/forum/index.php?topic=20167.0 gelösst, wobei ich nun im Dropdown alle werte angezeigt bekomme was ich noch auf auf die Nr und den Namen reduzieren möchte!

Herzliche Grüsse
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2

MzKlMu

Hallo,
warum sind die beiden Tabellen nicht in Beziehung ?
Das macht doch ohne Beziehung keinen Sinn. Du willst die ID eines Traegers in der Kundentabelle speichern.
Das ist eindeutig eine 1:n Beziehung zwischen Traeger (1) und Kunde (n).
Lege also mal die Beziehung an.
Der oben verlinkte Beitrag hat mit Deinem Problem nichts zu tun, da geht es um abhängige Kombis.
Gruß Klaus

J.D

Ok MzKlMu,

vieleicht reden wir aneinander vorbei!??? 
schau dir mal das Form Kunden an.
Dort das Dropdown "Kostenträger"
Darunter die Felder sollen aktuallisiert werden (welches nun auch geht)...
Wenn ich das mit der Beziehung lösen kann, werde ich es damit auch mal Probieren :D

ZitatStorno, ich versuch es dann mal so.. die Datei scheint mit 8MB zu gross zu sein!?

Danke erst ma!

Grüsse J.D.
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2

MaggieMay

Hallo,
Zitatschau dir mal das Form Kunden an.
wo kann man sich das anschauen?

ZitatDenoch sind die beiden Tabelen leider in keine relation zueinander
Das sollten sie ab er sein, wenn du die ID der einen Tabelle ("Traeger") als Fremdschlüssel in der anderen ("Kunden") speichern willst.

Zitatdie Datei scheint mit 8MB zu gross zu sein
1. Komprimieren
2. Zippen
Im übrigen sollten Beispiel-DBs nur das Notwendigste enthalten, das zum Nachstellen eines Problems erforderlich ist. In diesem Fall also zwei Tabellen mit ein paar Testdaten und ein Formular.
Freundliche Grüße
MaggieMay

J.D

Hallo Maggie,

Das habe ich soweit hinbekommen, auch die Werte werden gespeichert wie ich mir das Vorstelle!

Leider scheiters mir an der übernahme der Werten in Kombination eines anderen Dropdown
Das Feld heist Rechnung_Prefix, das Prefix ist hinterlegt in der Usertabele, gebe ich als Steuerelementinhalt [UserId].[Column(3)] an so erhalte ich den gewünschten Wert aus der Datenbank, jedoch muss dieser dann mit den Werten aus Formular in die Rechnung geschrieben werden... wie kann ich [UserId].[Column(3)] den ursprünglichen Steuerelementinhalt zuweisen, so das dieser dann auch gespeichert wird!?
=[Rechnung_Prefix]=[UserId].[Column(3)] funktioniert leider nicht!?

Weihnachtliche Grüsse J.D
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2

MzKlMu

Hallo,
ich weiß, Du liebst Klimmzüge. Aber trotzdem ist der auch überflüssig. Es genügt nur die ID zu speichern, alles andere wäre redundant. Und redundante Daten sind in einer Datenbank zu vermeiden.
Über eine Abfrage mit den relevanten Tabellen und der Verknüpfung über die Schlüsselfelder kannst Du alle Felder aus den beteiligten Tabellen anzeigen.

Und selbstverständlich sind auch entsprechende Beziehungen anzulegen.

Kannst Du mal ein Bild der Beziehungen hier zeigen ?
Gruß Klaus

J.D

Hallo MzKlMu,

ich habe mal eine Test Datenbank angehängt die ich auf die schnelle gemacht habe welche verdeutlichen soll was ich vor habe!
Ich hoffe das hilft weiter!?

Weihnachtliche Grüsse J.D

[Edit] nix drin aber trotzdem zu gross :(
download hier https://www.wetransfer.com/downloads/522d5f29870aa989f6f247d1d3a3ac9e20151224175401/e57fd8 [/Edit]
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2

MzKlMu

Hallo,
ich gehe nicht auf Downloadseiten wo man was akzeptieren muss.

Hast Du die DB schon mal komprimiert (Access Dienstprogramm) ? Erst dann zippen. Das Komprimieren muss während der Entwicklung einer DB regelmäßig gemacht werden.

Ich kann aber nur DBs Access2003 (MDB) ansehen, ich habe kein neueres Access.

Gruß Klaus

J.D

Ok Klaus...
dann versuchen wir es nochmal!

Tatsächlich hat das mit dem Komprimieren funktioniert!

Bei der Seite braucht man nix akzeptieren, der Download geht sofort los und wird automatisch gelöscht, aber egal jetzt geht es ja auch hier :D

Die Datei ist glaub ich Kompatibel abgespeichert und bis letzte woche da hatte ich noch 2010 und hab mir das 2016 jetzt günstig aus dem Ebay geschosse, geändert hat sich aber nix...

Weihnachtliche Grüsse J.D
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2

MzKlMu

Hallo,
Zitat von: MzKlMuIch kann aber nur DBs Access2003 (MDB) ansehen, ich habe kein neueres Access.
Du musst die DB über "Speichern und Veröffentlichen" als MDB speichern. Ich kann keine ACCDBs ansehen, hatte ich ja auch geschrieben.

Zeige doch mal ein Bild der Beziehungen, das reicht mir meistens.
Gruß Klaus

J.D

Hallo Klaus!

Hmm, okay... hätte gedacht das es geht, zumindest ist es rückwärt kompatibel abgespeichert... naja wenn ich es als MDB mache sind die formulare weg...

hier mal zwei bilder...

Im Formular habe ich das Dropdown UserId da wähle ich den User aus der Tabele User aus.

Dann habe ich dort Dropdown "Kunden Nummer" das enthält die Daten des Kunden ob die Rechnung Privat ist oder Vereinstechnisch.
zumindest kann ich ja darauf zugreifen mit ...[Column(0)]

(Problem 1)
Das Formular soll diese Checkbox anhand der auswahl des Kunden auswählen, ich habe da schon teils etwas hinbekommen aber es waren falsche Daten und wenn ich die Box nachträglich ändern will kann ich das auch nicht!

(Problem 2)
Das feld wo #Name drin steht ist der Prefix, dieser kommt auch aus der Tabele User, hier habe ich den Wert schon angezeigt bekommen, aber der wird dann nicht in der Tabele Rechnungen gespeichert.

Mein versuch dem Steuerelement das zuzuordnen funktioniert nicht!
= [Rechnung_Prefix] =[UserId].[Column(3)] weil da #Name steht.
wenn ich [UserId].[Column(3)] rein schreibe dann steht halt der richtige wert da aber er wird nicht gespeichert!

Weihnachtliche Grüsse J.D 
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2

DF6GL

#13
Hallo und Frohe Weihnachten

Irgendwie beschreibst Du das Ganze etwas verwirrend...

Deine benannten Felder gibt es teilweise nicht in der DB... Sinnvoll wäre, die korrekten Namensbezeichnungen zu benutzen.



Ich vermute (im Formular "Rechnungen"):
-- Das Feld "Rechnungs_Prefix" soll mit dem Wert aus Feld "UserPrefix" (Tabelle "User") nach Auswahl eines Users gesetzt werden.
-- Nach Auswahl eines Kunden soll das Feld "Rechnungs_Privat" mit dem Wert aus "KundenPrivat" (Tabelle "Kunden") belegt werden.

Weiterhin nehme ich an, dass das zusätzliche Autowert-Feld für den Primärschlüssel nur in diesem  "auf die schnelle gemacht(en) " Beispiel zu finden ist.
In Tabelle "Rechnungen" ist zu prüfen, ob nicht das Feld "Rechnungs_Nr" als Primärschlüsselfeld besser geeignet wäre.

Zunächst gehe ich mit Klaus konform, dass ein zusätzliches Speichern dieser Werte in Tabelle "Rechnungen" überflüssig/falsch ist. (Redundanzen).
Eine Ausnahme wäre die Situation, wenn sich diese Werte in Tabelle "Kunden" und "User" zeitlich gesehen ändern können/dürfen und die vorhandenen Rechnungen davon nicht beeinflusst werden dürfen. (Wobei dies aber auch mit geeignet aufgebauten und normalisierten Tabellen realisiert werden könnte: --> Gültigkeits-Zeitraum)


Siehe Anhang.

MzKlMu

Hallo,
Du hast es nicht verstanden. Die Felder Rechnungs_Prefix, Rechnungs_Privat und Rechnungs_LFS sind in der Tabelle Rechnungen komplett überflüssig (siehe Bild). Über die Beziehungen kannst Du über eine Abfrage jederzeit alle Felder aus den 3 Tabellen anzeigen. Das ist ja der Sinn der Beziehungen in einer Datenbank Redundanzen zu vermeiden.

Anmerkungen und Rückfragen:

Beziehungen sind immer mit referentielle Integrität einzurichten.

Was ist KundenPrivat für ein Feld, JaNein ?

Kann ein Kunde sowohl private als auch  vereinstechnische Rechnungen haben ?

Was bedeutet Prefif und LFS ?
Kann ein User beides gleichzeitig haben ?




Gruß Klaus