PDA

Vollständige Version anzeigen : Optionsfelder Werte zuweisen


cubus
27.09.2005, 15:11
Hallo Profis,

ich wende mich mit einem Problem an euch, mit dem ich im Moment einfach nicht weiterkomme.
Ich habe in einem Formular unteranderem 3 Optionsfelder, die in einer Optionsgruppe zusammengefasst sind.
Man kann entweder "hoch", "tief" oder "sonstiges" auswählen.
Ich möchte nun, dass ich bei z.B. aktivieren des Optionsfeldes "hoch", und betätigen eines Speichern Buttons, der Wert "ho" für "hoch" in eine bestimmte Spalte einer bestimmten Tabelle geschoben wird. Das gleiche bei aktivieren von Optionfeld "tief" mit "ti" usw.
Hab versucht mit dem Assistenten klar zu kommen. Aber da kann man meines Wissens nur nummerische Werte hinterlegen (1 für "hoch", 2 für "tief" usw.)

Im Voraus Danke für eure Hilfe

JörgG
27.09.2005, 16:52
Hallo,

Optionsfelder können nur Longwerte annehmen. Lege die Optionswerte zB 1 und 2 fest. Im Ereignis "nach Aktualisierung" der Optionsgruppe wertest Du den Optionswert aus und weist dem Textfeld einen entsprechenden Text zu:
Private Sub Optionsgruppe_AfterUpdate()
Select Case Me!Optionsgruppe
Case 1
Me!DeinTextfeld = "Hoch"
Case 2
Me!DeinTextfeld = "Tief"
End Select
End Sub

cubus
28.09.2005, 10:28
Zunächst einmal Danke Jörg für die Antwort!

Ich habe die Sache noch einmal von vorne durchgemacht. Also ne Optionsgruppe mit 3 Optionen "Hoch", "Tief" und "Sonstige". Diese haben jeweils die Werte 1, 2, und 3.
Das geht einwandfrei.
Wenn ich jetzt auf Eigenschaften gehe, und im Auswahlfeld z. B. Option104 für "Hoch" gehe, kann ich gar nicht "nach Aktualisierung" auswählen.

Was mache ich falsch?

Was meinst Du mit "wertest Du den Optionswert aus und weist dem Textfeld einen entsprechenden Text zu"?

JörgG
28.09.2005, 10:55
Hallo,

Doppelklicke den Rahmen der Optionsgruppe, das Eigenschaftsfenster öffnet sich, im Register Ereignisse - "nach Änderung" klickst Du die 3 [...] an, Du wechselst ins VBA-Fenster, der Prozedurname wird automatisch erstellt hier kopierst Du den Inhalt von oben (zw. Privat...End Sub) rein. Dein "Sonstiges" noch ergänzen und :dance:

cubus
28.09.2005, 13:31
Hallo JörgG,

du bist echt schnell. Danke dafür.

Aber ich muss leider mitteilen, dass es immer noch nicht funktioniert.
Ich schick Dir anbei mal den kompletten code meines Formulars.

Private Sub Befehl3_Click()

Dim sSQL As String

sSQL = "INSERT INTO testtabelle_1 ( Druckbereich ) " & _
"VALUES ( ' " & Me!Druckbereich & " ')"
CurrentDb.Execute sSQL


End Sub


Private Sub Druckbereich_AfterUpdate()

Select Case Me!Druckbereich
Case 1 'hoch
Me!Hoch = "ho"
Case 2 'tief
Me!Tief = "ti"

End Select

End Sub

Wenn ich in meinem Formular z.B. das Optionsfeld "Hoch" anklicken möchte, kommt sofort folgender Laufzeitfehler 438; Objekt unterstützt diese Eigenschaft oder Methode nicht.

Was bedeutet das?

Grüße

cubus
28.09.2005, 15:31
Hallo liebe Leute,

bei mir raucht es im "Gebälk". Hat keiner eine Idee wie ich das mit dem Wertzuweisen hinkriegen könnte?

Ich kann diesen Laufzeitfehler 438 nicht mehr sehen. Rhhhhhhhhh... ;)

Ihr würdet mir mit eurem Wissen in diesem Fall wirklich riesig weiterhelfen können.

Vielen herzlichen Dank im Voraus für den, der mir helfen kann.

JörgG
28.09.2005, 15:34
Hallo,

Druckbereich so heisst der Rahmen um die Optionsfelder und Deine Optionsfelder heissen "Hoch", "Tief", "Sonst", dann soll es so etwas werden?
Option Compare Database
Option Explicit
Dim strDruck As String 'im Kopfbereich des Forms

Private Sub Befehl3_Click()
Dim sSQL As String 'das könnte auch unten rein
sSQL = "Dein Abfragestring...'" & strDruck & "'"
CurrentDb.Execute sSQL, dbFailOnError
End Sub

Private Sub Druckbereich_AfterUpdate()
Dim sSQL As String
Select Case Me!Druckbereich
Case 1 'hoch
strDruck = "ho"
Case 2 'tief
strDruck = "ti"
Case 3
strDruck = "so"
End Select
End Sub
Was soll die Abfrage bringen, die fügt bloss an? Die Datenherkunft des Formulars und die Testtabelle sind zwei verschiedene Tabellen? Dann sollte auch ein Kriterium (ID) vorhanden sein für zusammengehörige Datensätze. Erstelle und teste Deine Abfrage im Abfrageeditor und kopiere den SQL-String in sSQL. (evtl zippe mal die DB und lade sie hoch)

cubus
28.09.2005, 16:13
Hallo JörgG,

ich verstehe den Sinn Deines Codes ungefähr. Aber die Sache mit

"Die Datenherkunft des Formulars und die Testtabelle sind zwei verschiedene Tabellen? Dann sollte auch ein Kriterium (ID) vorhanden sein für zusammengehörige Datensätze. Erstelle und teste Deine Abfrage im Abfrageeditor und kopiere den SQL-String in sSQL"

verstehe ich nicht.

Die Sache mit der Optionsgruppe soll "nur" den jeweils ausgewählten Wert ( "Hoch", usw.) in meine Tabelle "testtabelle_1" und da in die Spalte "Druckbereich" einfügen.

Wie würde das gehen, wenn ich die DB hoch laden möchte? Bin relativ neu hier in dem Forum. Finde leider keine Funktion dafür.

Grüße

JörgG
28.09.2005, 16:35
unter dem Beitragsfenster hast Du einen Button "Anhänge verwalten", da öffnet sich der Dateidialog zum Hochladen.

cubus
29.09.2005, 08:39
Guten Morgen Jörg,

die Nacht war unruhig. :)

Button "Anhänge verwalten" kann ich nicht finden. Liegt das an meinem Status hier im Forum?

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen
Es ist Ihnen erlaubt, auf Beiträge zu antworten
Es ist Ihnen nicht erlaubt, Anhänge anzufügen
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten

Sorry, dass ich Dich und die anderen vielleicht mit so einem Müll beschäftige. Jeder fängt halt mal an und ich bin in Sachen Foren noch ziemlich grün.

Ich habe das Gefühl, dass ich mit meinem Code so nicht mehr weiterkomme.

Vielleicht beschreibe ich noch einmal ganz schnell das, was ich versuche hinzubekommen.
Hab ein ungebundenes Formular, welches mit mehreren Textfeldern, Datumsfeldern, Kombinationsfelder und den "berüchtigten" Optionsgruppen "bestückt" ist.
Der derzeitige Status ist, dass ich per INSERT die Werte aus den Textfeldern, Datumsfeldern, Kombinationsfelder in meine Tabelle in meine gewollte Spalte per Speichern-Button bekomme.
Jetzt möchte ich dem User meiner DB die Möglichkeit geben, aus 3 Optionen auswählen zu können. Diesen möglichen Auswahlen ("hoch", "niedrig",usw.) werden im Moment die Zahlenwerte 1, 2, 3 zugewiesen. Diese werden auch, mit den anderen eingegebenen/ausgewählten Text/Kombi-Felder bei Betätigen des Speichern Buttons in meine Tabelle gespielt. Ich möchte aber nun, dass statt 1, 2, 3 die Werte "hoch", "niedrig",usw. in meine gewünschte Spalte gespielt werden.
Oder ist der Weg, dass ich neben meine Spalte mit den 1, 2, 3 eine Spalte hinzufüge, die mir sobald 1 in die eine kommt, dafür in die andere "hoch" einfügt besser?

Danke vorab für die aufgebrachte Geduld.

JörgG
29.09.2005, 11:03
Hallo Cubus,

betr. hochladen, liegt wohl an der fehlenden Emil-Bestätigung, evtl mal den Admin kontakten, sonst könnte es sein, dass Du das Beispiel nicht laden kannst.

zum Thema, hat es einen Grund warum das Form völlig losgelöst ist? Am Einfachsten legst Du die Datenherkunft Deines Formulars auf die betreffende Tabelle (oder auf eine sortierte Abfrage) fest und klicke auch die Steuerelementinhalte der Felder mit durch (siehe Anhang), dann entfällt die Sache mit dem og INSERT oder soll nur angefügt werden, dann kann man das im Form einstellen), ein kleines Beispiel mit Optionsgruppe hängt dran.

cubus
29.09.2005, 15:04
Hallo JörgG,

hab den Admin unter forum@ms-office-forum.net angeschrieben und ihm die Sache geschildert.
Sobald ich die Freigabe bekomme, werde ich mir Deine Lösung anschauen und mich dann wieder melden.

Bis denne