online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon scochet vom 27.02.2021, 12:52 Options

Lösung

Problem in Access - Kombinationsfeld führt Änderungen an DB durch

Hallo,

ich habe eine DB die vereinfacht die folgende Werte enthält:

c_id
name
straße

Im Formular gibt es ein Kombinationsfeld, dass alle Werte per Querry zugeordnet bekommt, jedoch wird nur ein Wert angezeigt, da die anderen eine Spaltenbreite von "0cm" haben.

Mittels VB möchte ich Textfelder unter dem Kombifeld mit Text füllen - je nachdem welcher Wert im Kombifeld auswählt ist.

Also habe ich ein Ereignis "nach Aktualisierung" welches folgendes macht:

Private Sub K_Hersteller_AfterUpdate()
Me.L_Strasse = Me.Kombibox.Column(3)
End Sub

Der Text steht anschließend wie gewünscht im Feld.


Nach dem verlassen des Formulars überschreiben die Werte, die momentan ausgewählt sind immer die Werte die zum Start ausgewählt sind.
Also mit anderen Worten: im Kombifeld ist beim Start ID 1 ausgewählt und diese Werte werden durch Werte von bspw. ID 4 (beim verlassen ausgewhlt) überschrieben.

Kann man das irgendwie verhindern?


Vielen Dank für die Hilfe!


Antwort schreiben

Antwort 1 von Marie vom 01.03.2021, 12:21 Options

Zitat:
Private Sub K_Hersteller_AfterUpdate()
Me.L_Strasse = Me.Kombibox.Column(3)
End Sub


Ich verstehe Dein Problem nicht ganz. Dein Code füllt in dem zu dem Zeitpunkt des Auswählens angezeigten Datensatz das Feld L_Strasse mit dem Inhalt Deiner Kombi. Das hat doch mit der ID nichts zu tun.

Was wolltest Du denn stattdessen tun?

Gruß Marie

Antwort 2 von Marie vom 01.03.2021, 12:23 Options

Oder habe ich Deinen letzten Absatz nicht verstanden??

Antwort 3 von RaHi vom 01.03.2021, 14:03 Options

Hallo sochet,

interessant ist auch die Frage, wie und wann du deine Combobox mit Werten befülltst und ob die Combobox an ein Feld der Tabelle aus dem Formular gebunden ist. Und noch ein Tipp. Verwende me!L_Strasse bzw. me!Kombibox.column(3) , da L_Strasse und Kombibox KEINE Eigenschaften sind. Das erspart dir viel ärger.

Gruß
Ralf

Antwort 4 von scochet vom 01.03.2021, 14:45 Options

Also meine Datensätze bestehen alle aus:

ID
name
strasse

Jetzt habe ich beispielhaft 3 Datensätze (ID 1 bis 3).

Beim Aufruf des Formulars wird im Kombifeld der name des ersten Datensatzes und im Textfeld die dazugehörige Straße angezeigt.

Wenn ich im Kombifeld nun den dritten Datensatz auswähle zeigt er im Textfeld auch die dazugehörige Straße an.
Wenn ich jetzt das Formular verlasse (der dritte Datensatz ist im Kombifeld noch ausgewählt) werden name und strasse von ID1 mit den Werten von ID3 überschrieben.



Mein Kombifeld hat als Datensatzherkunft ein querry, welches alle Werte der Tabelle abfragt. Ferner hat das Kombifeld die zweite Spalte (name) als gebundene Spalte.
Danke für den Tipp.. habe ich gleich mal umgesetzt.

Antwort 5 von Marie vom 01.03.2021, 14:55 Options

Warum schreibst Du denn nicht endlich mal was stattdessen geschehen sollte??

es passiert doch genau das, was du schreibst:

Zitat:
Ich verstehe Dein Problem nicht ganz. Dein Code füllt in dem zu dem Zeitpunkt des Auswählens angezeigten Datensatz das Feld L_Strasse mit dem Inhalt Deiner Kombi. Das hat doch mit der ID nichts zu tun.

Zitat:
Beim Aufruf des Formulars wird im Kombifeld der name des ersten Datensatzes und im Textfeld die dazugehörige Straße angezeigt.

Wenn ich im Kombifeld nun den dritten Datensatz auswähle zeigt er im Textfeld auch die dazugehörige Straße an.
Wenn ich jetzt das Formular verlasse (der dritte Datensatz ist im Kombifeld noch ausgewählt) werden name und strasse von ID1 mit den Werten von ID3 überschrieben.


was willste denn Überhaupt machen? Du hast ID1 geöffnet, klickst Straße von ID3 an und fügst diese in ID1 ein, die Straße aus ID3?? Wo soll denn die Straße von ID 3 rein, in ID3 steht se doch schon!


gruß marie

Antwort 6 von scochet vom 01.03.2021, 16:33 Options

Sorry das ich mich etwas undeutlich ausgedrückt habe...


Ich möchte an den Datensätzen nichts ändern... Die sollen einfach nur angezeigt werden und beim verlassen den gleichen Zustand haben wie vorher.

Antwort 7 von Marie vom 01.03.2021, 18:46 OptionsLösung

Lösung
dann wirf das schnell mal raus:
Me.L_Strasse = Me.Kombibox.Column(3)


denn damit hast Du ja geändert.
schreib stattdessen ID als gebundene Spalte und:


    Me.RecordsetClone.FindFirst "[ID] = " & Me![Kombibox]
    Me.Bookmark = Me.RecordsetClone.Bookmark


Gruß marie

Antwort 8 von scochet vom 02.03.2021, 15:36 Options

Danke.. das hat mein Problem gelöst..

Mir war nicht bewusst, das die Befehle speziell zur Änderung sind. Bin gerade noch bei meinen Anfängen in Access...

Ähnliche Themen

Access Problem mit Aufbau der Tabellen-Struktur, Beziehungen
NochEinGast  07.11.2007 - 149 Hits - 5 Antworten

Datensatzherkunft Kombinationsfeld in Access
pinki11  16.02.2008 - 229 Hits - 2 Antworten

ACCESS 97 Problem mit Memofeld
koz2355  29.07.2008 - 29 Hits - 2 Antworten

Problem im Access suchen mit Platzhalter
Chilla  23.02.2009 - 653 Hits - 4 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026