Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Kreuztabelle bearbeiten

Begonnen von zer0core, Juli 15, 2016, 13:29:35

⏪ vorheriges - nächstes ⏩

zer0core

Hallo Leute,

ich weiß dass es nicht möglich ist direkt eine Kreuztabelle zu bearbeiten.

Folgende Problemstellung: ich lasse in einem Endlosformular die Daten aus der Kreuztabelle anzeigen.
Diese sollte man in irgendeiner Form bearbeiten können und wenn es mit einem separaten Formular ist.
Im Anhang seht die aktuelle DB.
Ich habe eine Kreuztabelle aus der Tabelle Termine mit den Azubis als Zeilenüberschrift, den Termin als Spaltenüberschrift und Orga_ID als Wert.
Da der Azubi zusammen mit dem Termin der zusammengesetzte Primärschlüssel ist, müsste es doch irgendwie möglich sein den Datensatz via onclick direkt aufzurufen?

Bin gern für andere Lösungsvorschläge offen.

LG

zer0core

Sorry hier noch der SQL Code der Kreuztabelle

TRANSFORM First(tbl_Termine.Orga_ID) AS ErsterWertvonOrga_ID
SELECT tbl_Termine.Azubi_ID, tbl_Termine.Lehrjahr, [tbl_Personal]![Nachname] & ", " & [tbl_Personal]![Vorname] AS Name, tbl_Kurse.Bezeichnung
FROM (tbl_Kurse INNER JOIN tbl_Personal ON tbl_Kurse.ID = tbl_Personal.ID_Kurs) INNER JOIN tbl_Termine ON tbl_Personal.ID = tbl_Termine.Azubi_ID
GROUP BY tbl_Termine.Azubi_ID, tbl_Termine.Lehrjahr, [tbl_Personal]![Nachname] & ", " & [tbl_Personal]![Vorname], tbl_Kurse.Bezeichnung
ORDER BY Format([Termin],"ddmmyyyy")
PIVOT Format([Termin],"ddmmyyyy") In ("05092016","12092016");

MaggieMay

Hallo,

du könntest bspw. bei Doppelklick auf ein Feld ein PopUp-Formular mit dem jeweiligen Datensatz öffnen.
Die Datenfelder der Kreuztabellen-Abfrage kennst du ja. Wo genau liegt das Problem?
Freundliche Grüße
MaggieMay

zer0core

Set rs = CurrentDb.OpenRecordset("qry_Termine_Kreuztabelle", dbOpenSnapshot)
    strDatum = Left$(rs.Fields(4).Name, 2) & "." & Mid$(rs.Fields(4).Name, 3, 2) & "." & Right$(rs.Fields(4).Name, 4)
    DoCmd.OpenForm "frm_Termin_Details", , , "Azubi_ID = " & Me.Azubi_ID & " and Termin = " & CDate(strDatum)

Das ist jetzt ein Test, welcher leider noch nicht funktioniert er sagt mir es wäre ein Syntax Fehler drin.
Wenn ich das Formular manuell aufrufe mit einer ID und dem Datum funktioniert es.
Auch das Datum stimmt alles.

Bitte um kurze Hilfe.

MaggieMay

Der Einsatz von CDate allein genügt noch nicht, für das Kriterium muss das Datum noch speziell formatiert werden.

Versuche es mal hiermit:
DoCmd.OpenForm "frm_Termin_Details", , , "Azubi_ID = " & Me.Azubi_ID & " and Termin = " & Format(DateValue(strDatum), "\#yyyy\/mm\/dd\#")

Allerdings halte ich die Ermittlung des Datums für fragwürdig, das solltest du dir ebenfalls aus dem Formular holen, und zwar müsste das dem Feldnamen (bzw. Steuerelementinhalt) des angeklickten Textfeldes entsprechen.
Freundliche Grüße
MaggieMay

zer0core

Danke Maggy.

Es ist ja so, dass das Datum als Spaltenüberschrift gespeichert ist und ich in der Kreuztabelle Fixierte Spalten habe.
Das Datum wird in der Überschrift leider als 05092016 angezeigt und nicht als Datum.

MaggieMay

Dass du das Datum umformatieren musst ist klar und darauf bezog sich mein Kommentar ja auch gar nicht.
Nur solltest du nicht in die Abfrage gehen und dort willkürlich irgendeine Spalte auslesen, sondern du musst schon das Datum zum angeklickten Steuerelement finden, und das geht am besten per Zugriff auf seinen Namen bzw. seinen Steuerelementinhalt.
Freundliche Grüße
MaggieMay