Neuigkeiten:

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

Mobiles Hauptmenü

Nachschlageassistent bzw. Tabellenverknüpfung über mehrere Tabellen

Begonnen von ChemSim, Februar 10, 2024, 01:14:36

⏪ vorheriges - nächstes ⏩

Beaker s.a.

Hallo,
ZitatIch möchte die Eingabe eines neues Produktes aber davon trennen.
Öffne das Form einfach mit einem Filter, der immer "Falsch" ergibt
Filter = "1 = 0"
Beim Laden filtern = Ja
Zitatdass bei Produktgruppe nicht 1, 2, 3 usw. sondern die entsprechend verknüpften Produktgruppen stehen, die man auswählen kann?
Spaltenbreiten des Kombis anpassen; - 0cm;3cm (oder wie breit auch
immer du den Namen angezeigt bekommen willst.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

ChemSim

ZitatSpaltenbreiten des Kombis anpassen; - 0cm;3cm (oder wie breit auch
immer du den Namen angezeigt bekommen willst.

Es handelt sich aber um kein Kombinationsfeld, sondern um ein Textfeld. Warum weiß ich nicht, hat Access so gemacht ...

Sie dürfen in diesem Board keine Dateianhänge sehen.

MzKlMu

Hallo,
ZitatIch möchte die Eingabe eines neues Produktes aber davon trennen.

Auch dann brauchst Du definitiv nur ein Formular. Ein Formular lässt sich (per VBA) zur Dateneingabe (nur neue Produkte) oder zur Bearbeitung bestehenden Produkte einstellen.

Im ersten Fall:
Dateneingabe auf Ja

Im zweiten Fall:
Dateneingabe auf Nein
Anfügen zulassen auch auf Nein

Ein Filter wie von Ekkehard vorgeschlagen braucht es da nicht.

Auch ein Speichernbutton halte ich zum jetzigen Zeitpunkt für überflüssig.
Ein solcher Button macht nur Sinn, wenn man das Speichern verhindern bzw. abbrechen will.

Zeige mal den Code den Du zum Speichern verwendest.
Zitatkein Kombinationsfeld, sondern um ein Textfeld. Warum weiß ich nicht, hat Access so gemacht ...

Kombinationsfelder in Formularen musst Du selbst anlegen, das macht Access nicht automatisch.
Gruß Klaus

ChemSim

Zitat von: MzKlMu am Februar 10, 2024, 19:16:07Zeige mal den Code den Du zum Speichern verwendest.


Anbei der Code, der dem Speichern Button zugewiesen ist. Aber nochmal zurück. Das eigentliche Problem ist ja, dass sobald ich ein einfaches Formular erstelle, als Datensatzquelle die Tabelle tblProdukte auswähle und über "Vorhandene Felder hinzufügen" alle Felder hinzufüge, das Feld Produktgruppe als Textfeld dargestellt wird, obwohl es ein Kombinationsfeld sein sollte. Und genau deswegen habe ich den Nachfrageassistenten verwenden (und sollte man auch), denn wird bereits in den Tabellen die Zuordnung richtig gemacht und dadurch dass ich jetzt in der Tabelle tblProdukte bei der ProduktgruppeID eine Zahl stehen habe, funktioniert gar nichts mehr ...
 
Private Sub NeuesProduktSpeichern_Click()

    If Not IsNull(Me.txtProdukt) And Not IsNull(Me.cboProduktgruppe) Then
        DoCmd.RunSQL "INSERT INTO tblProdukte (Produktname, ProduktgruppeID_F) VALUES ('" & Me.txtProdukt & "','" & Me.cboProduktgruppe & "')"
        MsgBox "Das Produkt wurde erfolgreich hinzugefügt!", vbInformation
        'Textfeld und Kombinationsfeld leeren
        Me.txtProdukt = ""
        Me.cboProduktgruppe = ""
        'Optional: Formular aktualisieren, um die neuen Daten anzuzeigen
        Me.Requery
    Else
        MsgBox "Bitte füllen Sie alle erforderlichen Felder aus.", vbExclamation
    End If

End Sub

MzKlMu

Hallo,
der gezeigte Code zum Speichern ist ersatzlos überflüssig. Du verwendest ja gebundene Formulare da braucht man kein "INSERT INTO ... Das ist falsch und so wird das Produkt 2x gespeichert. So kann man auch keine Pflichtfelder prüfen. Die Pflichtfelderprüfung muss als VBA Code zwingend in das Formularereignis "Vor Aktualisierung" weil nur dort das Speichern mit dem Cancel Parameter abgebrochen werden kann.

ZitatUnd genau deswegen habe ich den Nachfrageassistenten verwenden (und sollte man auch), denn wird bereits in den Tabellen die Zuordnung richtig gemacht und dadurch dass ich jetzt in der Tabelle tblProdukte bei der ProduktgruppeID eine Zahl stehen habe, funktioniert gar nichts mehr ...
Der Schluss ist falsch, den sollte man auf keinen Fall verwenden. Du kannst die Nachschlagefunktion auf die gleiche Art in Form von Kombinationsfeldern auch in Formularen anlegen, da gibt es keinen funktionellen Unterschied ob Tabelle oder Formular, Du kannst es nur noch nicht.
Du hast Du mit Deinen YouTube-Tutorials einiges durcheinander gebracht. Ich wäre auch skeptisch gegenüber diesen Videos. Da gibt es viele die nicht gut sind.
Beschäftige Dich besser mal mit dem Tutorial das ich in #1 verlinkt habe. Ich bin aber nicht der Verfasser.

Wenn Du nicht klar kommst, lade mal die DB hoch. Komprimiert/Repariert (Access Dienstprogramm) und gezippt.
Gruß Klaus

ChemSim

Zitat von: MzKlMu am Februar 10, 2024, 19:38:29Wenn Du nicht klar kommst, lade mal die DB hoch. Komprimiert/Repariert (Access Dienstprogramm) und gezippt.

Ich hab alle Beziehungen, die ich mit dem Nachfrageassistenten erstellt habe, wieder gelöscht und die Tabellen über das Beziehungsfeld miteinander verbunden, so wie du es gesagt hast. Könntest du mir helfen, ein Formular zu erstellen, mit dem ich die Einträge in der Tabelle tblProdukte bearbeiten, ergänzen oder löschen kann? Ich komme echt nicht klar und wäre über eine Art Vorlage sehr dankbar!

Im Anhang die reparierte und komprimierte Datenbank

Vielen Dank!

MzKlMu

Hallo,
ich werde es mir anschauen, aber erst morgen, für heute ist Feierabend  :D

Ich kann im Moment nicht nachsehen, sind inder DB für die Gruppen und die Klassen Beispieldatensätze?
Wenn nicht bitte noch nachholen.
Gruß Klaus

ChemSim

ZitatIch kann im Moment nicht nachsehen, sind inder DB für die Gruppen und die Klassen Beispieldatensätze?
Wenn nicht bitte noch nachholen.

Ja es sind Beispieldatensätze drin, aber ich gehe gerade das Tutorial durch, welches du mir geschickt hast im ersten Post und es hat mir sehr weitergeholfen. Ich habe an der Stelle mit den Kombinationsfeldern immer etwas falsch gemacht. Gerade bastle ich ein bisschen rum und es funktioniert soweit alles ganz gut. Könnte also sein, dass ich es bis morgen selbst noch hinbekomme ;)

Gruß
Simon

MzKlMu

Hallo,
was hat es mit der Tabelle "tblTechnologien" auf sich ?

Du kannst ja jetzt nicht einfach eine weitere TAbelle ins Spiel bringen ohne das zu erklären.
Im Regelfall hat es in einer DB keine Tabelle(n) ohne Beziehung(en).

Nebenbei:
Hast Du was mit der BASF zu tun ?
Gruß Klaus

MzKlMu

Hallo,
im Anhang mal mein Vorschlag für ein einfaches Formular zur Erfassung neuer Produkte und der Bearbeitung bestehender Produkte.
Es gibt auch noch ein Kombifeld zur Suche von Produkten.
Der Button "Neues Produkt anlegen" stellt das Formular auf Dateneingabe. Dann Daten eingeben. Erneuter Druck auf den Button speichert den Datensatz (nach Prüfung) ab und zeigt wieder ein leeres Formular an.
Das Formular ist an eine Abfrage gebunden (qryFormular) damit automatisch auch die Klasse angezeigt wird.
Die Produktid und die Klasse ist in diesem Formular zur Bearbeitung gesperrt.

Anmerkung:
Bei einer Produktgruppe muss immer auch eine Klasse eingetragen werden, ich habe da mal jetzt willkürlich 1 oder 2 eingetragen. Ist keine Klasse bekannt, sollte es eine Klasse "Unbekannt geben", die dann bei den Gruppen eingetragen werden muss.

DB anbei
Gruß Klaus

ChemSim

Zitat von: MzKlMu am Februar 11, 2024, 00:19:34was hat es mit der Tabelle "tblTechnologien" auf sich ? Du kannst ja jetzt nicht einfach eine weitere TAbelle ins Spiel bringen ohne das zu erklären. Im Regelfall hat es in einer DB keine Tabelle(n) ohne Beziehung(en).

Diese Tabelle möchte ich zu einem späteren Zeitpunkt noch nutzen und die habe ich schonmal erstellt.

Zitat von: MzKlMu am Februar 11, 2024, 00:19:34Nebenbei:
Hast Du was mit der BASF zu tun ?

Ne, mit der BASF habe ich nichts zu tun, wieso? ;D

ChemSim


Danke für Deine Hilfe und die Erstellung eines Musterformulars. Ich habe damit und mit dem Tutorial nun viel gelernt und konnte bisher alle meine Wünsche in die Tat umsetzen. Bei anderen aufkommenden Problemen würde ich ein neues Thema erstellen, dann mit spezifischeren Fragen! :D

Vielen Dank und viele Grüße
ChemSim

MzKlMu

Hallo,
ZitatNe, mit der BASF habe ich nichts zu tun, wieso?
Auf Grund der Chemikalien könnte man auf die Idee kommen. Mit Caprolactam oder Acrylnitril z.B. hatte ich auch mal zu tun.

PS:
Bitte keine vollständigen Beiträge zitieren.
Gruß Klaus

ChemSim

ZitatPS: Bitte keine vollständigen Beiträge zitieren.

Alles klar, danke für den Hinweis! Ne ich bin Chemiker, arbeite aber nicht bei der BASF ;D

Gruß
ChemSim