Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Variabler Wert in einem Abhängigem Unterformular
zurück: Access Tabellenabfrage erstellen! weiter: Unbestimmte Zeichenkette in Spalte abfragen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Ogni
ohne viel Ahnung


Verfasst am:
05. Feb 2011, 19:56
Rufname:
Wohnort: Göttingen

Variabler Wert in einem Abhängigem Unterformular - Variabler Wert in einem Abhängigem Unterformular

Nach oben
       Version: Office 2007

Hallo
Ich habe ein Formular (B) mit einem Unterformular (L) .
Wenn ich in dem Unterformular einen Artikel eingebe wird der Preis automatisch aus der Tabelle Artikel ermittelt und eingetragen. Das klappt auch wunderbar.
Jetzt möchte ich aber einen Artikel eintragen der nicht in der Tabelle Artikel aufgeführt ist, da bekomme ich dann die Meldung "Der von Ihnen eingegebene Text ist kein Element der Liste",
ist ja auch klar. Ich kann diesen Artikel aber nicht in die Tabelle aufnehmen, da der Preis Variabel ist.
Wie kann ich es hinbekommen das ich diesen Artikel eintragen und in der Summe auch mit berechnen kann?
Ich hoffe das ist nicht zu dumm erklärt und es gibt eine Lösung die ich mit geringen Access Kenntnissen verstehen und Umsetzen kann.
Danke
Ingo
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
06. Feb 2011, 11:29
Rufname:


AW: Variablerer Wert in einem Abhängigem Unterformular - AW: Variablerer Wert in einem Abhängigem Unterformular

Nach oben
       Version: Office 2007

Hallo,

das Problem ist, daß Du vermutlich eine 1:n-Verknüpfung der Tabelle aus dem UFO (zum Beispiel "Bestellpositionen") zu der Tabelle "Artikel" hast. Dabei ist dann völlig richtig, die Combobox so einzustellen, daß man nur Elemente aus der Tabelle entnehmen kann (wenngleich eine Combobox auf die Dauer eher ungeeignet ist mit steigender Anzahl Artikel) bzw. vielleicht noch die Möglichkeit, neue Einträge hinzuzufügen, die der Tabelle Artikel hinzugefügt werden.

Das Feld wird in einer korrekten 1:n-Verknüpfung ja nur die ArtikelID enthalten und nicht den Artikelnamen, daher kannst Du an dieser Stelle auch nur wieder eine ID auswählen, Dein Artikel muss also in die Tabelle.
Wenn dagegen keine 1:n-Verknüpfung vorliegt und nur der Artikelname aus der Artikeltabelle geholt und redundant in die Bestellzeile eingetragen wird, dann brauchst Du nur die Combobox so einzustellen, daß sie auch Werte, die nicht in der Liste stehen, zuläßt.

Beide Varianten haben ihre Vor- und Nachteile: Bei einer 1:n-Verknüpfung mußt Du halt einen neuen Artikel immer in die Artikelliste eintragen (das Problem mit dem Preis ist eigentlich gar keins, im Fall von z.B. einer Bestellposition würde man den Preis als redundantes Feld in der Bestellpositionentabelle einfügen und den Preis aus der Artikeltabelle dort hineinkopieren - ein sich ändernder Preis ist dann kein Problem, man übernimmt entweder den Vorschlag aus der Artikeltabelle oder ändert den Preis dann in der Bestellposition manuell). Die 1:n-Lösung, die üblicherweise die praktischste ist, hat man aber auch die Gefahr, daß Daten verlorengehen. Was ist, wenn ein Artikel, der in einer Bestellzeile vorhanden ist, gelöscht wird? Was ist, wenn sich die Bezeichnung des Artikels geändert hat? Beim Aufruf alter Bestellungen hättest Du im ersten Fall ein "Loch", im zweiten Fall plötzlich die neue Bezeichnung. Normalerweise muß aber in einem Unternehmen ein alter Vorgang aufgerufen werden können mit den Inhalten, wie sie zum Zeitpunkt der Bestellung (oder noch wichtiger: Rechnung) gewesen ist. Sieht man sich einen alten Ausdruck an und vergleicht ihn mit den Daten in der Datenbank, muß bei beiden normalerweise das gleiche stehen.
Von daher ist es in solchen Fällen u.U. sinnvoller, keine 1:n-Verbindung zu verwenden, sondern bestimmte Daten redundant zu speichern.

Gruß

Christian
Ogni
ohne viel Ahnung


Verfasst am:
06. Feb 2011, 12:05
Rufname:
Wohnort: Göttingen

AW: Variablerer Wert in einem Abhängigem Unterformular - AW: Variablerer Wert in einem Abhängigem Unterformular

Nach oben
       Version: Office 2007

Hallo Christian,
erstmal vielen Dank für deine Ausführung.
Verstanden schon Umsetzen nein, da ich beim umstellen auf Werte nicht aus der Liste die Meldung erhalte kann nicht auf nein Eingestellt werden.
Habe die DB mal Angehängt, da ich irgendwie zu D... bin
Gruß
Ingo



1 - Kopie - Kopie.zip
 Beschreibung:

Download
 Dateiname:  1 - Kopie - Kopie.zip
 Dateigröße:  28.45 KB
 Heruntergeladen:  17 mal

Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
06. Feb 2011, 21:04
Rufname:

AW: Variablerer Wert in einem Abhängigem Unterformular - AW: Variablerer Wert in einem Abhängigem Unterformular

Nach oben
       Version: Office 2007

Hallo Ingo,

hab Dir Deine Datenbank mal umgemodelt...Smile

Erst einmal habe ich die Benennungen korrigiert und das Nachschlagefeld eliminiert, die Funktion solltest Du grundsätzlich vergessen, als gäbe es sie gar nicht.

Um eine einheitliche und möglichst eindeutige Benennung zu erlangen, ist es immer ratsam, den Objekttyp mit in den Namen des Objektes aufzunehmen, also z.B. "tblKunden" für die Tabelle und "frmKunden" für das Formular.

Außerdem solltest Du niemals Bindestriche in Namen verwenden, das führt nur später zu mehr Komplikationen. Habe die Bindestriche überall gegen Unterstriche ausgetauscht.

Weiterhin bitte unbedingt Schlüsselwörter von Access für Namen vermeiden. Übliche Standardfehler sind Namen wie "Name" und "Datum" und "Date" usw.

Das Bestellformular hattest Du ebenfalls falsch aufgebaut. Wie Du ja gesehen hast, ist es zwar in Access möglich, sowas zu bauen und es funktioniert auch. Jedoch hattest Du beispielsweise die Artikeldaten direkt in die Bestellpositionen verlinkt und zur Eingabe freigegeben. Ergebnis wäre: Du schreibst Bestellung 1 und für "Bootsintro" steht dort "66€". Dann schreibst Du Bestellung 2 und wählst wieder "Bootsintro", natürlich steht hier der gleiche Preis. Du denkst aber, hier muß ich mal ändern auf 68€, also überschreibst Du den Preis. Ergebnis: In Bestellung 1 steht nun auch 68€, denn Du hast nicht die Bestellposition geändert, sondern die Stammdaten.

Das gleiche Spiel bei den Kunden im Hauptformular. Jede Änderung hier ändert auch gleich die Stammdaten - was hier allerdings nicht tragisch wäre, solange man das oben beschriebene 1:n-Prinzip verwendet, wie es bei Dir ja der Fall ist. Die Bestellungen wären damit allerdings natürlich auch nicht "revisionssicher". Doch abgesehen davon erlaubte Dein Hauptformular gar nicht, die Kundennummer zu wechseln, denn Du hast statt der Kundennummer in der Leistungstabelle die Kundennummer in der Kundentabelle angegeben, und damit würdest Du bei Eingabe versuchen, die AutoID der Kundentabelle zu ändern, was natürlich nicht geht.

Ich habe das Formular nun so geändert:
  • das Formular enthält nun die Leistungsnr (also Bestellnr) und ein zusätzlich hinzugefügtes Feld für das Bestelldatum (Leistungsdatum)
  • Ein Kunde kann nun per Dropdown ausgewählt werden, die Kundenfelder dienen dann nur noch der Anzeige der Kundendaten und können hier nicht mehr editiert werden. Stattdessen habe ich ein Kundenformular hinzugefügt, daß Du einzeln oder über die Dropdownliste aufrufen kannst (in Access >=2007 kann man ein Bearbeitungsformular angeben, der Knopf zum Bearbeiten erscheint halbdurchsichtig unterhalb der Dropdownliste).
  • Das Unterformular enthält nun nur noch die Daten der Leistungsdetails-Tabelle, denn mehr wird hier nicht gebraucht. Der Artikelname wird über das Dropdownfeld angezeigt (hier habe ich auch ein Bearbeitungsformular für Artikel hinzugefügt, gleiches Prinzip wie oben) und der Preis wird aus dem Dropdownfeld im AfterUpdate-Event des Dropdownfeldes in das Preisfeld der Leistungsdetailstabelle kopiert. Vorteil: Du hast nun trotzdem die Anzeige aller Artikel, bekommst auch jederzeit den letzten Preis aus der Artikeltabelle in die Zeile kopiert, aber Du mußt ihn nicht übernehmen. Du kannst ihn jetzt einfach überschreiben, ohne Auswirkung auf andere Bestellzeilen (egal ob in der gleichen oder einer anderen Bestellung). Damit kannst Du nun einen Artikel mit variablem Preis trotzdem in die Artikeltabelle aufnehmen, dort entweder einen Preis hineinschreiben, der dann sozusagen der Default-Wert ist, oder den Preis einfach leer lassen, so daß Du dann eben den Preis in das leere Feld der Bestellzeile eingibst.
  • Die Abfragen habe ich komplett als gespeicherte Abfragen umgeändert - ist zum einen schneller, zum anderen komfortabler. Wenn z.B. mal eine Umbenennung erforderlich ist, ändert Access die Feldnamen auch nur in gespeicherten Abfragen, nicht in manuell erstellten.
Was mir nicht so ganz klar ist, wozu gibt es ein Feld "Hotel" in den Kundendaten oder "Kategorie"?

Gruß

Christian



DBNeu.zip
 Beschreibung:
Neue Version

Download
 Dateiname:  DBNeu.zip
 Dateigröße:  32.41 KB
 Heruntergeladen:  16 mal

Ogni
ohne viel Ahnung


Verfasst am:
06. Feb 2011, 22:33
Rufname:
Wohnort: Göttingen

AW: Variablerer Wert in einem Abhängigem Unterformular - AW: Variablerer Wert in einem Abhängigem Unterformular

Nach oben
       Version: Office 2007

Hallo Christian,
Vielen vielen Dank für deine Mühe.
So kann ich damit Arbeiten wie ich mir das vorgestellt habe.
Deine Ratschläge werde ich versuchen zu beherzigen.
Das Feld Hotel brauche ich da ich die Anzahl der Kunden ( wer woher Land/Hotel)
erfassen muß.
Nochmals vielen Dank
Ingo
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
07. Feb 2011, 00:03
Rufname:

AW: Variablerer Wert in einem Abhängigem Unterformular - AW: Variablerer Wert in einem Abhängigem Unterformular

Nach oben
       Version: Office 2007

Hallo Ingo,

naja...das würde aber bedeuten, daß der gleiche Kunde immer im gleichen Hotel untergebracht wäre...was ist, wenn er beim nächsten Mal wiederkommt und dann in einem anderen Hotel wohnt?

Gruß

Christian
Gast



Verfasst am:
07. Feb 2011, 04:49
Rufname:

AW: Variabler Wert in einem Abhängigem Unterformular - AW: Variabler Wert in einem Abhängigem Unterformular

Nach oben
       Version: Office 2007

Hallo,
spielt keine Rolle da dann neuer Datensatz, wenn einer zwei oder drei mal im Jahr kommt muß er sich auch jedesmal neu Anmelden.
Zumindest ist bisher die Handhabung so und die ist nicht auf meinem Mist gewachsen, ich bin nur ausführendes Organ.
Bei Problemen oder Änderungen hoffe ich mich noch mal Melden zu können.
Nochmals Danke
Ingo
Probleme werden wohl im Sommer auftreten wenn alles wieder umgeschmissen wird
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
07. Feb 2011, 18:45
Rufname:


AW: Variabler Wert in einem Abhängigem Unterformular - AW: Variabler Wert in einem Abhängigem Unterformular

Nach oben
       Version: Office 2007

Hallo Ingo,

hier noch eine kleine Korrektur: Ich hatte vergessen, die Beziehungen nach Umbenennen der Tabellen wieder zu restaurieren.

Gruß

Christian



DBNeu2.zip
 Beschreibung:

Download
 Dateiname:  DBNeu2.zip
 Dateigröße:  32.42 KB
 Heruntergeladen:  19 mal

Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Access - MAX Wert in einer Zeitreihe? 20 Zonk 12498 26. Sep 2005, 14:04
Zonk Access - MAX Wert in einer Zeitreihe?
Keine neuen Beiträge Access Tabellen & Abfragen: Bei Eingabe Abfrage erscheint der Wert 5x ?!? 8 Amazonin 786 09. Aug 2005, 14:12
lothi Bei Eingabe Abfrage erscheint der Wert 5x ?!?
Keine neuen Beiträge Access Tabellen & Abfragen: Wert von der Tabelle abziehen 1 elmar9700 892 10. Jul 2005, 22:22
stpimi Wert von der Tabelle abziehen
Keine neuen Beiträge Access Tabellen & Abfragen: Wert aus Textfeld für Abfrage auslesen 2 Sonic 6622 23. Jun 2005, 08:08
Sonic Wert aus Textfeld für Abfrage auslesen
Keine neuen Beiträge Access Tabellen & Abfragen: Wert erhöhen um 1 in einer Abfrage 9 schwieche 5576 31. Mai 2005, 02:16
schwieche Wert erhöhen um 1 in einer Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: 2 Tabellen verbinden trotz Auto Wert ID 3 Miss Ahnungslos 7788 06. Mai 2005, 22:57
Dalmatinchen 2 Tabellen verbinden trotz Auto Wert ID
Keine neuen Beiträge Access Tabellen & Abfragen: Hochzählen ab bestimmten Wert 3 vitalik 893 06. Mai 2005, 12:47
stpimi Hochzählen ab bestimmten Wert
Keine neuen Beiträge Access Tabellen & Abfragen: Überprüfen ob Wert in Tabelle = NULL 3 Cossack 1498 18. Apr 2005, 17:52
Gast Überprüfen ob Wert in Tabelle = NULL
Keine neuen Beiträge Access Tabellen & Abfragen: Parameterabfrage in Unterformular 2 kassandra 1210 09. März 2005, 11:15
kassandra Parameterabfrage in Unterformular
Keine neuen Beiträge Access Tabellen & Abfragen: Unterformular über Kombinationsfeld aussuchen... 1 DJ1337 923 14. Feb 2005, 13:53
lothi Unterformular über Kombinationsfeld aussuchen...
Keine neuen Beiträge Access Tabellen & Abfragen: WHERE Wert Is manchmal Null 1 JTR 606 11. Feb 2005, 17:50
lothi WHERE Wert Is manchmal Null
Keine neuen Beiträge Access Tabellen & Abfragen: Unterformular öffnen 1 mike1967 1022 10. Feb 2005, 08:53
MirkoK Unterformular öffnen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Access Tabellen