collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 50
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13702
  • stats Beiträge insgesamt: 62196
  • stats Themen insgesamt: 8474
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Inhalt eines Kombis als String an Textfeld weitergeben  (Gelesen 84 mal)

Offline gilles_de_rais

  • Newbie
  • Beiträge: 35
Inhalt eines Kombis als String an Textfeld weitergeben
« am: Oktober 12, 2017, 14:08:48 »
Hallo,
ich habe mich wieder einmal an einem Buch orientiert und wollte das dort gelernte probehalber auf meine Datenbank übertragen. 

Ein in einem Kombi gewählter Wert soll in ein ungebundenes Textfeld übertragen werden. Kombi heißt cboAuswahl, Textfeld txtAuswahl. Beide Elemente befinden sich im selben Formular.Folgenden Code habe ich verwendet:

Private Sub cboAuswahl_AfterUpdate()
Dim strSQL As String
txtWartungsart = cboAuswahl "
End Sub

Funktioniert auch. Mit der kleinen Einschränkungen, dass statt des Strings lediglich die ID des Wertes angezeigt wird.

Komisch daran ist, dass in der mir vorliegenden Beispieldatenbank genauso vorgegangen wurde und es dort funktioniert. Hat jemand eine Idee, was bei mir falsch läuft?

Viele Grüße,
Dennis
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6754
Re: Inhalt eines Kombis als String an Textfeld weitergeben
« Antwort #1 am: Oktober 12, 2017, 17:06:38 »
Hallo,
Zitat
Hat jemand eine Idee, was bei mir falsch läuft?
da läuft nix falsch, das ist normal so. Es wird der Wert der gebundenen Spalte übergeben.

Was willst Du im Kombi sehen, bzw. musst Du die Zahl sehen ?

In der Regel sind solche Vorhaben überflüssig (auch wenn es in einem Buch gelernt wird). Die Zahl muss man ja gar nicht sehen, daher kann man das Kombi in den Eigenschaften so einstellen, dass der Text zu sehen ist aber die Zahl gespeichert wird.

Zeige mal die Datenherkunft des Kombis.

Obwohl der oben gezeigte Code überflüssig ist noch die Verbesserung.
Die Zeile mit dem Dim ist nutzlos.
Private Sub cboAuswahl_AfterUpdate()
   txtWartungsart = Me.cboAuswahl.Column(1)
End Sub
Me verweist auf das Formular und Column auf die 2. Spalte (Zählung beginnt mit 0).

Aber wie gesagt, es ist wahrscheinlich überflüssig.

Gruß
Klaus
 

Offline gilles_de_rais

  • Newbie
  • Beiträge: 35
Re: Inhalt eines Kombis als String an Textfeld weitergeben
« Antwort #2 am: Oktober 12, 2017, 17:09:25 »
SELECT tblWartungAuswahl.aus_wahl_ID, tblWartungAuswahl.aus_art
FROM tblWartungAuswahl
ORDER BY tblWartungAuswahl.[aus_wahl_ID];
Das ist es ja gerade. Ich sehe die Zahl, will aber eigentlich nur den daran gebundenen Text sehen.
 

Offline Lachtaube

  • Access-Meister
  • ***
  • Beiträge: 728
Re: Inhalt eines Kombis als String an Textfeld weitergeben
« Antwort #3 am: Oktober 12, 2017, 17:22:58 »
Dann trage im Eigenschaftsblatt für das Kombifeld in der Eigenschaft Spaltenbreiten so etwas wie 0cm;2,5cm ein, was die erste Spalte ausblendet. Der Wert Spaltenanzahl sollte 2 sein.
Grüße von der (⌒▽⌒)
 

Offline gilles_de_rais

  • Newbie
  • Beiträge: 35
Re: Inhalt eines Kombis als String an Textfeld weitergeben
« Antwort #4 am: Oktober 12, 2017, 17:30:26 »
@Lachtaube Das Kombi wird ja korrekt angezeigt. Lediglich die Übergabe ans ungebundene Textfeld zeigt mir die ID anstatt von Text an.

Ich werde es mit column () mal probieren. Komisch ist ja nur, dass es exakt so wie oben beschrieben in der Beispieldatenbank von der Buch-CD funktioniert.
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1493
Re: Inhalt eines Kombis als String an Textfeld weitergeben
« Antwort #5 am: Oktober 12, 2017, 18:16:57 »
Zitat
Komisch ist ja nur, dass es exakt so wie oben beschrieben in der Beispieldatenbank von der Buch-CD funktioniert.
Vielleicht ist dort die Textspalte die gebundene.
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6754
Re: Inhalt eines Kombis als String an Textfeld weitergeben
« Antwort #6 am: Oktober 12, 2017, 18:49:41 »
Hallo,
ich frage mich, wozu das Textfeld, wenn das Kombi den Text anzeigt ?
Nur mal zum Lernen/Probieren ?
Gruß
Klaus
 

Offline gilles_de_rais

  • Newbie
  • Beiträge: 35
Re: Inhalt eines Kombis als String an Textfeld weitergeben
« Antwort #7 am: Oktober 13, 2017, 10:23:03 »
Tatsächlich wurmt einfach nur, dass es in der Test-Datenbank des Buchs bei mir auf dem Rechner funktioniert und bei meiner Datenbank nicht.

Ich weiß, dass ich mich auf diese Weise schier Ewigkeiten an Kleinigkeiten aufhalte. Aber gleichzeitig lerne ich persönlich so tatsächlich am besten, wenn ich kleine, auf den ersten Blick unwichtige Probleme, löse und vor allem verstehe. Wenn alles auf anhieb klappt, ohne dass ich durchschaue, was ich eigentlich mache, dann wird das nix ;)
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6754
Re: Inhalt eines Kombis als String an Textfeld weitergeben
« Antwort #8 am: Oktober 13, 2017, 10:28:50 »
Hallo,
verwende den Vorschlag mit Column.

Eine andere Version (die ich für besser halte) ist eine Abfrage zu verwenden mit beiden Tabellen und der Verknüpfung über die Schlüsselfelder. Dann hat man alle Felder aus beiden Tabellen zur Anzeige zur Verfügung. Ohne irgendwelche Klimmzüge.
Gruß
Klaus
 

Offline Lachtaube

  • Access-Meister
  • ***
  • Beiträge: 728
Re: Inhalt eines Kombis als String an Textfeld weitergeben
« Antwort #9 am: Oktober 13, 2017, 11:22:38 »
Ein Kombi- und auch Listenfeld hat 1 - x Spalten und wenn es Daten enthält 1 - y Zeilen. Optional kann eine Überschriftenzeile festgelegt werden. Dann gibt es immer eine (1) Spalte, die der Eigenschaft Wert (Value) vom Datentyp Variant entspricht. D. h. der Wert kann auch Null enthalten und bei dem einen Kombifeld Text, bei einem anderen ein Datum, usw. repräsentieren. Welche Spalte den Wert enthält, steht in der Eigenschaft Gebunden Spalte.

Zugriff auf die Spalten, die nicht dem Wert entsprechen - man kann auch auf die Wertespalte zugreifen, erhält man mit der zuvor erwähnten Eigenschaft Column, die als erstes Argument die Spaltenposition erwartet und der man optional die Zeilenposition angeben kann. Beide Positionsangaben sind 0-indiziert, d.h. die erste Spalte = 0, die zweite Spalte = 1, usw.. Bei der Zeile muss man das optionale Vorhandensein von Überschriften mit berücksichtigen. Erste Zeile ohne Überschrift = 0; mit Überschrift = 1. Die Eigenschaft Column ist immer vom Datentyp String (Text) und wird bei Zugriffen meistens großzügig gecastet, ohne Funktionen wie CDbl, CDate, CCur, etc. explizit verwenden zu müssen.

Im unaufgeklapptem Zustand wird im Kombifeld immer die erste Spalte angezeigt, die in der Eigenschft Spaltenbreiten eine Ausdehnung (also größer 0cm ist) hat. Andere Spalten erscheinen nur im aufgeklappten Zustand.

In der Praxis wird man, wie von Klaus bereits erwähnt, vermutlich in der ersten Spalte das Schlüsselfeld (i.d.R. versteckt) zu stehen haben, gefolgt von weiteren Spalten. Will man zum Beispiel in einem 3-spaltigen Kombifeld mit den Spaltenbreiten 0cm;2,5cm;2,5cm nach Auswahl auch die 3. Spalte sehen, kann in einem Textfeld im Steuerelementinhalt so auf die Spalteneigenschaft verwiesen werden: =Kombifeldname.Column(2), was dann von Access noch einmal (vermutlich als Hint für den Ausdruckdienst) eckig geklammert wird.

Ich hoffe, das bringt Klarheit in die Angelegenheit.
Grüße von der (⌒▽⌒)