Neuigkeiten:

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

Mobiles Hauptmenü

Me.Irgendwas.Column(1)

Begonnen von atom007, Mai 30, 2015, 17:34:45

⏪ vorheriges - nächstes ⏩

atom007

Hallo zusammen.

Ich versuche mal wieder etwas scheinbar unlösliches:
In einem Formular sind mehrere Kontrollkästchen (KK), ein Listenfeld und ein Textfeld.
Jetzt möchte ich abhängig vom ausgewählten KK unterschiedliche Column(x) - Werte ausgegeben haben. Also z.B. bei aktiviertem KK1 soll in das Textfeld der Wert aus Column(3) geschrieben werden, bei aktiviertem KK2 soll in das Textfeld der Wert aus Column(5) geschrieben werden usw...
Ich habe versucht für "Me.cb_Mitarbeiter.Column(3)" Variablen (z.B. Me.cb_Mitarbeiter. & Var_A) zu verwenden, aber das wird nicht akzeptiert.
Geht das irgendwie?

*Thx schon mal für's helfen*

daolix

Hallo
column ist nicht variabel, sondern eine eigenschaft der Combobox. Als Variable kannst du den indexwert ansehen

Var_A =3
Me.cb_Mitarbeiter.Column(Var_A)





MzKlMu

Hallo,
bei einem solchen Vorhaben würde ich das Datenmodell bezweifeln.

Kannst Du das Vorhaben mal genauer erklären?
Was sind das für KK und wie hängen die Spalten des Listenfeldes damit zusammen ?
Gruß Klaus

atom007

Hallo daolix und MzKlMu!

In einer Tabelle stehen Leute, die Tests gemacht haben:
z. B. "Mathematik" und "durchgeführt am", ebenso "Deutsch" und "durchgeführt am" usw. (insgesamt 8 Themen).
Ich will jetzt nur über Kontrollkästchen markieren, was angezeigt werden soll und durch Auswahl einer Person in der Combo-/Listenbox wird mir dann im Textfeld angezeigt wann sein/ihr Test war, das wäre alles.

Danke an daolix, hab verstanden wo mein Fehler in der Variablen lag. Ich probiere es gleich mal aus...

MzKlMu

Hallo,
um das Vorhaben in einer Datenbank korrekt umzusetzen bedarf es 3 Tabellen.

- Personen
- Tests
- PersonTest (hier kommt das Datum rein, je ein Datensatz).

Das ist eine klassische n:m Beziehung zu der 3 Tabellen erforderlich sind.
Gruß Klaus

atom007

Hat geklappt, thx daolix!

@MzKlMu: Ich weiß, dass man da haufenweise Tabellen daraus machen kann (eine mit Geburtsorten, eine mit Prüfungsdaten, eine mit Ergebnissen usw...), aber wofür?
Weshalb sollte ich aus einer Tabelle eine verkettete Sammlung von Tabellen machen, wenn es auch mit nur einer einzigen geht? Was würde dadurch besser funktionieren?
Wenn ich irgendwann einmal verstehe warum es besser sein soll am Ende eine unübersichtliche Sammlung von Tabellen und Abfragen zu haben, die alle Abhängigkeiten voneinander haben werde ich das tun. Solange ich darin aber keinen wirklich guten Grund finde sehe ich das als unnötig an.
Bin aber gerne bereit mir von dir erklären zu lassen, weshalb es positiv für das Endergebnis wäre!
;)

DF6GL

Hallo,

Du kannst natürlich weiter mit viereckigen Rädern an Deinem Auto herumfahren. 
Dann musst Du Dich aber nicht wundern, wenn es holpert und rumpelt..  8)

Die Ignoranz der u. st. Links 1 und 1a wirkt als Bumerang.

atom007

Jetzt wird es interessant...

DF6GL meint also, meine DB fährt auf viereckigen Rädern und ich bin ein Ignorant.
Anstelle mit einer sinnvollen Erklärung über den Einsatz von aufsplitten einer Tabelle zu kommen wird lieber der Noob (in dem Fall ich) erst mal herunter gemacht. Coole Idee!
Wenn man an allen Grundsätzen des Aufteilens einer Tabelle gehen würde um non-redundante Datensätze zu haben (ich hab die Links gelesen) müsste man somit selbst die Vornamen und Nachnamen in Untertabellen führen, da selbst der Name "Peter" nicht immer eindeutig ist, geschweige der Nachname "Maier". Wo soll also das zerteilen Anfangen und wo soll es aufhören?
Eventuell sollten sich hier aber auch die Leute, die unbestritten Ahnung haben nicht immer sofort auf einen Fragesteller stürzen und ihn erst einmal klein machen. Zumindest so lange, bis sie wissen wie dessen Datenbank wirklich aufgebaut ist...
8)

DF6GL

Hallo,

wenn Du meinen Beitrag liest, wirst Du feststellen, das ich Niemanden als Ignorant tituliert habe...  ::)


Die Erklärung von Normalisierung brauche ich eigentlich nicht nochmal zu erklären, die steht in den benannten Links..


Wieweit geht man bei der Normalisierung?

Bis minimal zur 3. Normalform, wobei das (natürlich) abhängig von der akt. Datensituation und Einsatzbereich der DB ist.  Diese Normalisierung ist auch kein Dogma, sondern eine sinnvolle Maßnahme bei einer relationalen Datenbank, um Fehler, Engpässe und Sackgassen zu vermeiden. Insofern nützt die Normalisierung Dir(!!) und der DB und nicht demjenigen, der darauf hinweist.

Zitat
nicht immer sofort auf einen Fragesteller stürzen und ihn erst einmal klein machen.

Niemand hier hat sich auf Dich (!) gestürzt und schon gar nicht "klein" gemacht..  ::)


ZitatSolange ich darin aber keinen wirklich guten Grund finde sehe ich das als unnötig an.

Access und die Funktionalität der Db läßt sich nicht von Deiner Einsicht beeindrucken..
Von vorn herein essentielle Grundlagen/Methoden in Frage zu stellen,bzw. abzulehnen,
ist nicht sehr zielführend.

Wenn Du Dir nichts sagen/raten lassen willst, ist es Deine Sache.

Zudem hat daolix die Lösung zu der anfängliche Frage ja schon gegeben...

Abschliessend :  Du darfst/kannst/sollst natürlich machen (dürfen) , was Du willst. Es ist schließlich Deine DB..



Wurliwurm

Zitat von: atom007 am Juni 01, 2015, 13:49:39Wenn man an allen Grundsätzen des Aufteilens einer Tabelle gehen würde um non-redundante Datensätze zu haben (ich hab die Links gelesen) müsste man somit selbst die Vornamen und Nachnamen in Untertabellen führen, da selbst der Name "Peter" nicht immer eindeutig ist, geschweige der Nachname "Maier".
Du hast die Links gelesen, aber nicht verstanden. Ich bin aber ein bißchen bei Dir, wenn Dir auffällt, daß hier gerne dogmatisch bestimmte Tabellenstrukturen vorgeschrieben werden und gelegentlich auch durchschimmert, daß manche Dogmatiker selbst nicht alles voll durchdrungen haben.

Natürlich ist die Programmierung einer Maske grundsätzlich unabhängig vom Datenmodell. Eine mehrspaltiges Listenfeld wird angesprochen mit Index Zeile+Spalte, damit man ein skalarer Wert herauskommt.

Du brauchst im Formular ein Ereignis (zum Beispiel einen Button mit Clock-Ereignis oder ein Change-Ereignis einer Optionsgruppe), welches eine Routine aufruft, welches in Abhängigkeit der gewählten Klickbox die Liste ausliest und den Wert in das ungebundene Textfeld schreibt.

Dim strWert as string
Dim iSpalte as integer

For i = 0 To lst.ListCount - 1
   If lst.Selected(i) = True Then
        strWert = lst.Column(iSpalte, i)
exit for
   end if
next i

Wurliwurm

Zitat von: atom007 am Juni 01, 2015, 13:49:39
Eventuell sollten sich hier aber auch die Leute, die unbestritten Ahnung haben nicht immer sofort auf einen Fragesteller stürzen und ihn erst einmal klein machen.

Da erinnere ich mich an einen Aphorismus, der im übertragenen Sinn vielleicht passen könnte:

Philosophische Neulinge. – Hat man die Weisheit eines Philosophen eben eingenommen, so geht man durch die Strassen mit dem Gefühle, als sei man umgeschaffen und ein grosser Mann geworden; denn man findet lauter Solche, welche diese Weisheit nicht kennen, hat also über Alles eine neue unbekannte Entscheidung vorzutragen: weil man ein Gesetzbuch anerkennt, meint man jetzt auch sich als Richter gebärden zu müssen.
Friedrich Nietzsche

atom007

Danke DF6GL!

In deinem Abschnitt "Wie weit geht man bei der Normalisierung" steht das, was mir bekannt war, bzw. das was ich beim Aufbau einer DB berücksichtige. Das von mir gebrachte Beispiel (im 1. Beitrag) war auch nur ein Muster, das zu dem aktuellen Problem passte. Dass man eine sinnvolle DB in überschaubare Abschnitte aufteilt weiß ich, MzKlMu wollte aber sofort ohne irgendwas über den Aufbau zu wissen die Struktur bemängeln. Dann kam auch noch dein Beitrag, in dem auch wieder die Struktur bemängelt wurde, aber ihr beide kennt die verwendete Struktur überhaupt nicht. Ich habe nie gesagt, dass die Tabelle nicht unterteilt wäre. Letztendlich habe ich allerdings eine Tabelle, die die erforderlichen Daten liefert. und dank daolix's Hilfe habe ich auch das dazugehörige Formular so hinbekommen wie ich es haben wollte.
Ich bin nur auf das Thema eingegangen, weil ich hier bei Access-o-Mania weiß, dass es sehr gute Leute gibt, die aber auch sehr gerne mal zuerst an allem zweifeln. Denkt ihr, die ihr euch wirklich verdammt gut mit Access und VBA auskennt aber auch manchmal daran, dass einer der eine Frage stellt eher nach Hilfe als nach Belehrungen sucht...

Und an Wurliwurm: exakt. Das Zitat von Nietzsche trifft den Nagel auf den Kopf!
(Ich habe die Links schon verstanden, Vielen Dank für dein Beispiel!)