PDA

Vollständige Version anzeigen : Auswahl mit Kombifeld erstellen


RJanko
30.09.2005, 11:07
Halli, hallo...

Ich möchte in einem Formular eine Auswahl mit einem Kombifeld treffen (siehe Grafik).
Das Kombifeld bezieht seine Daten aus der ersten Spalte einer dreispaltigen Tabelle. Wenn ich jetzt im Kombifeld eine Auswahl treffe, soll im dahinter plazierten Textfeld der entsprechende Wert der zweiten Spalte der Tabelle stehen. Analog das ganze für die dritte Spalte.
Bitte helft mir da weiter. Ich habe keine Ahnung, wie ich das lösen muß.

Vielen Dank bereits an dieser Stelle.

LiGrü
René

J_Eilers
30.09.2005, 11:12
Hi,

schau dir mal den Link 'Suchen und Nachschlagen' in meiner Signatur an. Dort wird so etwas umgesetzt.

RJanko
30.09.2005, 11:33
Hallo Jan...
Vielen Dank erstmal. Das trifft den Kern der Sache. Genau das ist mein Problem.
Im Moment hapert es noch mit der Umsetzung.

Ich habe mich für das Modell von TommyK entschieden und die Textbox bzw die Kombibox angepßt. Es kommt aber immer die Fehlermeldung. Laufzeitfehler "2162".
Hast Du eine Ahnung woran das liegen kann?

LG
René

J_Eilers
30.09.2005, 11:36
Ohne den Code zu kennen und die Datentypen...nein. ;) Aber vielleicht finde ich eine Glaskugel. SCNR

RJanko
30.09.2005, 11:46
Also dann will ich Dir mal bei der Suche nach der Glaskugel behilflich sein: ;)

Private Sub Kombinationsfeld18_AfterUpdate() If IsNull(Me!Kombinationsfeld18) Then MsgBox "Sie haben keine Auswahl getroffen" Else With CodeContextObject Me.Text73.SetFocus DoCmd.FindRecord .Kombinationsfeld18, acEntire, False, acDown, False, , True End With End If End Sub

Ich habe eben nur den Code von TommyK kopiert und meine Kombibox bzw mein Textfeld eingefügt. Da smit den zwei Kommas vor True hat mich ein wenig skeptisch gemacht. Aber wenn ich eins davon entferne, geht es auch nicht. Oder fehlt noch etwas zwischen den Kommas?

LG
René

J_Eilers
30.09.2005, 11:51
Vermutlich liegt es an der Schreibweise:

Private Sub Kombinationsfeld18_AfterUpdate()
If IsNull(Me!Kombinationsfeld18) Then
MsgBox "Sie haben keine Auswahl getroffen"
Else
With CodeContextObject
Me.Text73.SetFocus
DoCmd.FindRecord .Kombinationsfeld18, acEntire, False, acDown, False, , True
End With
End If
End Sub

RJanko
30.09.2005, 11:54
Daran scheint es nicht zu liegen. Genauso wie Du es nochmal geschickt hast, steht es bei mir.
Es ist erst in eine Zeile gerutscht, asl ich es hier im Forum als Text reingestellt habe.

LG

Morli
30.09.2005, 12:02
Hast Du denn auch die Funktion für "CodeContextObject" hinterlegt?

Warum arbeitest Du nicht einfach mit

Me!Textfeld1 = Me!DeinKombi.Column(1) für die 2te Spalte und Me!Textfeld2 = Me!DeinKombi.Column(3) für die 3te Spalte?

Morli

PS: Wenn Du Code ins Forum stellt dann solltest Du den auch als Code formatieren, nicht als Text.

RJanko
30.09.2005, 12:13
Hi Morli...
Danke natürlich auch für Deine Tips.
Den Code hatte ich auch als solchen formatiert (siehe oben).

Wo muß ich denn die Funktion für "CodeContextObject" hinterlegen? Und wo gebe ich Me!Textfeld1 = Me!DeinKombi.Column(1) ein?

LG
René

Morli
30.09.2005, 12:35
Also in der Abfrage für Dein Kombifeld bindest Du alle drei Tabellenspalten ein, stellst die Spaltenanzahl des Kombifeldes auf 3 und stellst die Spaltenbreite für die 2te und 3te Spalte auf 0 ein.

Dann rufst Du beim Ereignis "After_Update" des Kombifeldes den an Deine Feldnamen angepassten Code auf.

Morli

RJanko
30.09.2005, 12:48
Wow, jetzt funzt es so, wie ich es will.

Vielen Dank Jan & Morli für Eure Tips. Ich wußte doch, dass man sich auf Euer Wissen verlassen kann. :)

Also Danke nochmal und ein schönes Wochenende
LiGrü, René