Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Was ist der Wert eines Kombinationsfeldes?

Begonnen von Nordlicht33, Februar 05, 2013, 17:26:44

⏪ vorheriges - nächstes ⏩

Nordlicht33

Hi,
Welcher Wert ist ein einem Kombinationsfeld?

Ich habe in einem Formular ein Kombinationsfeld eingerichtet, das einen Namen in einer Tabelle nachschlägt.
Nach dem Nachschlagen steht in dem Formularfeld die Schlüsselnummer (Fremdschlüssel) des Namens in der referenzierten Tabelle. Das ist auch in Ordnung für mich.
Weise ich aber den Wert des Kombifeld einem ungebundenen Feld zu (also Text123 = Me.Kombifeld), dann steht in Text123 der nachgeschlagene Name als String-Wert.

Gibt es dafür eine Erklärung?

Bernd

DF6GL

Hallo,   


sicher, dass Du das Kombifeld "richtig" eingerichtet hast?

Wie heißt die Datensatzherkunft und die folgenden Eigenschaften  des Kombis?
Gebundene Spalte
Spaltenanzahl
Spaltenbreiten



Nordlicht33

na ja,

die Datensatzherkunft ist SELECT [qry_aktive_SP].[SPDatenID], [qry_aktive_SP].[Nachname], [qry_aktive_SP].[Intake] FROM qry_aktive_SP ORDER BY [Nachname];
Gebundene Spalte: 1
Spaltenanzakl: 3
Spaltenbreiten: 0,501cm;2,549cm;0,6cm

Das Kombinationsfeld "verhält"  sich auch ganz normal und zeigt eine Liste mit 3 Spalten an und speichert die erste ab, aber wenn ich das Feld einem ungebundenen Feld zuweise, kommt das nachgeschlagene Feld. Irgendwo wird das äquivalenziert! Gibt es da nicht so eine .column(x) Eigenschaft, mit der man das bestimmen kann? Oder was räts du noch fürs debugging?
In der Feldliste zur Form steht sowohl das Kombifeld (Fremdschlüssel) als auch der (nachgeschlagene) Textname aus der zugehörigen Tabelle. Das gibt auch die zugrundeliegende Abfrage her.
Insofern bin ich nicht sicher, aber ich weiss auch nicht wirklich, wonach ich suchen soll.

Gruß
Bernd

database

Hallo,

aus meiner Sicht würde ich sagen, dass die Einstellungen des Kobifeldes schon passen.

Was wird denn angezeigt, wenn du statt der Zuweisung an das Formularfeld mal schreibst :  MsgBox Me.DeinKombifeld

Bist auch ganz sicher, dass da nicht irgenwo noch ein 'ungewünschter' Codefetzen herumschwirrt, der die .column(1) des Kombis ins Textfeld verfrachtet?
Ansonst zu deiner Frage - Kombifeld.Column(0) sollte in deinem Fall den Wert SPDatenID liefern - also den ausgewählten Wert im Kombi (gebundene Spalte)

MzKlMu

#4
Hallo,
hast Du direkt in der Tabelle das Nachschlagefeld?
Wenn ja, wirf es raus es dürfte die Ursache sein und zeigt Dir auch warum man diese auf keinen fall verwenden sollte.

Zu den Nachschlagefeldern:
http://dbwiki.net/wiki/Access_Anf%C3%A4nger:_Die_Nachteile_von_Nachschlagefeldern
Gruß Klaus

Nordlicht33

ne ne, die Lektion mit den Nachschlagefeldern in der Tabelle habe ich gelernt.
Das Kombinatinsfeld habe ich in der Form definiert - aber ich muss tatsächlich noch mal meine VBA-Fetzen durchsehen.
Aber: bei mir akzeptiert VBA das .column(1) nicht, nur columnHidden - was etwas anderes ist. Da wird der code bemeckert.

database

Hallo,

klatsch mal zu Testzwecken einen Button auf das Formular und schreib ins Klick-Ereignis:

MsgBox Me.NameDeinesKombifeldes
Msgbox Me.NameDeinesKombifeldes.Column(0)
Me.DeinTextfeld = Me.NameDeinesKombifeldes

Alle 3 Befehle MÜSSEN den gleichen Wert liefern wenn das Kombifeld so aufgebaut ist wie du es angegeben hast.

Kontrolliere auch ob beim Textfeld UND beim Kombi KEINE Ereignisse mit VBA-Code belegt sind.
Wenn du das Textfeld nach Auswahl eines Wertes im Kombi beschreiben willst, kannst du die entsprechende Ereignisprozedur (Nach Aktualisierung) nach diesem Test erstellen.

Nordlicht33

war ein VBA-Schnipsel! Hab ihn rausgeschmissen, jetzt verhält sich das Feld wie es soll!
Danke für Tipps!

Aber gelich auch eine Frage: Nach welchem Muser schreibt Access Routinen in den VBA-Editor und gibt es Tools, diese Routinen zu strukturieren bzw. in Felder einzuteilen?
Gibts auch ne Versionsverwaltung? Für mich wird der VBA Code schnell unübersichtlich und man muss dann auf der Seite rumsuchen und händisch die Routinen säubern und ordnen.

Gruß
Bernd 

database

Hallo,
schön dass es nun so läuft, wie du dir das vorgestellt hast.

ZitatNach welchem Muser schreibt Access Routinen in den VBA-Editor
Access sortiert die Routinen (Ereignisprozeduren) bei ihrer Erstellung alphabetisch in den Codebereich.
So kommt z.B. Form_Current vor Form_Open aber nach Form_BeforeUpdate ...

Zitatgibt es Tools, diese Routinen zu strukturieren bzw. in Felder einzuteilen
Es gibt einige verschiedene Hilfsmittel um Code zu gestalten etc.
Google mal nach MZ-Tools (keine Empfehlung/Werbung nur ein Tipp)  ;)

ZitatGibts auch ne Versionsverwaltung?
Da kursieren die einen oder anderen Programme und Tools herum - Google bitte mal nach VBA Versionsverwaltung ...

Letztlich möchte ich dich auf die Möglichkeiten einer gut strukturierten und wohlüberlegten Codedokumentation hinweisen,
die schafft Überblick, Ordnung und hilft auch beides zu bewahren. Beispiele findest du zu Hauf eine bindende Richtlinie
gibt es eigentlich nicht, wohl aber Beispiele und Empfehlungen.
Auch die Anwendung von Notationen (z.B. ungarische Notation) kann vielfach vorteilhaft sein.