Office: (Office 2016) Update tbl.... Set .... Where...

Helfe beim Thema Update tbl.... Set .... Where... in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, habe ein banales Problem, was für das Forum bestimmt/hoffentlich ein Leichtes ist! Der Kontext ist folgender: In einem Hauptformular... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von KSteinwachs, 30. September 2020.

  1. Update tbl.... Set .... Where...


    Hallo zusammen,

    habe ein banales Problem, was für das Forum bestimmt/hoffentlich ein Leichtes ist!

    Der Kontext ist folgender:
    In einem Hauptformular wähle ich einen Prüfer (z.B. für Englisch), im dazugehörigen Unterformular sind die Schüler aufgeführt, die in eben dieser Sprache geprüft werden sollen - ganz klassisch also 1:n

    Dazu habe ich einen Bericht generiert, der per Mail dem Prüfer geschickt werden soll. Dieser Bericht beinhaltet die Daten der einzelnen Englischschüler, so dass der Prüfer weiß, wen er zu prüfen hat. Auch das klappt.

    Nach dem Mailversand sollen in der Schülertabelle alle die Schüler in einem Ja/Nein-Feld einen Eintrag bekommen, die einem Prüfer bereits gemeldet worden sind.
    Meine Idee, die aber nur bedingt klappt, war die:

    CurrentDb.Execute "UPDATE tblSchueler SET [sch_zugeordnet_pruef] = True WHERE [sch_id] =" & Me![sch_id]

    Wenn die 1:n-Beziehung nur einen Schüler beinhaltet, klappt das wunderbar, sind es aber z.B. 5, so wird immer nur bei einem der Schüler über den entsprechenden UPDATE-Befehl das Feld [sch_zugeordnet_pruef] mit TRUE gesetzt.

    Wie bekomme ich das hin, damit alle Schüler aus dem Unterformular diesen Haken bekommen?

    Vielen Dank schon jetzt für eure Ideen
    Karsten

    :)
     
    KSteinwachs, 30. September 2020
    #1
  2. Hallo,
    Ich sehe da zwingend eine m:n-Beziehung: 1 Prüfer kann n Schüler prüfen und 1 Schüler kann von n Prüfern geprüft werden. Auch stellt sich die Frage, was relevant ist: Der Prüfer oder das Fach?

    Wie geht der Mailversand vonstatten?

    Dass der (erfolgreiche) Mailversand nicht in der Schülertabelle zu registrieren ist, geht aus meinen vorherigen Ausführungen hervor. In der m:n-Tabelle könnte der Mailversand mit dem aktuellen Datum/Zeit-Stempel (besser als "ein Haken") versehen werden - wobei man natürlich nur das Auslösen des Versandes registrieren kann und nicht den Erfolg der Zustellung.
     
  3. Hallo Maxel,

    also, der Mailversand erfolgt über

    DoCmd.SendObject acSendReport...

    Das klappt auch, natürlich hast du recht, dass es nur um das Auslösen des Versands geht.

    Im Code möchte ich 2 Dinge erreichen: ein Ja/Nein Feld in der "Schülertabelle" soll ein "True" bekommen, wenn der Schüler dem Prüfer gemeldet worden ist und zudem habe ich ein Datumsfeld in der Schülertabelle, in der gespeichert werden soll, wann der Versand ausgelöst wurde:

    CurrentDb.Execute "UPDATE tblSchueler SET [sch_datum_prueferbescheid] = '" & Now() & "' WHERE [sch_id] =" & Me![sch_id]
    CurrentDb.Execute "UPDATE tblSchueler SET [sch_zugeordnet_pruef] = True WHERE [sch_id] =" & Me![sch_id]

    Wie gesagt, wenn es nur einen Schüler gibt, klappt das prima, aber wenn das Unterformular mehrere Schüler für einen Prüfer vorsieht, wird nur einer berücksichtigt.
    Ich bin völliger VBA-Laie, aber mir scheint das Problem das "me![sch_id] zu sein, das sich immer nur auf den ersten/letzten Schüler bezieht, oder?
     
    KSteinwachs, 2. Oktober 2020
    #3
  4. Update tbl.... Set .... Where...

    Du gehst nicht auf meine vorgeschlagene Änderung des Datenmodells ein - das wäre für mich das A und O. Alles andere "kriegen wir später".
     
  5. Mmh, ich bin gerade etwas sorgenvoll, weil ich seit Wochen an der DB "rumgepuzzelt" haben (das trifft es wohl ganz gut als Wort) und über Trial & Error einen Zustand habe, der ganz stabil aussieht - wohlwissend, dass das DB-Modell vielleicht nicht perfekt konzipiert ist. Im Moment sieht es für mich so aus, als ob das oben beschriebene Problem das einzige ist (naja, ich kann mich natürlich täuschen)

    Welche Info könnte dir helfen bzw. was könnte ich posten? Vielleicht den SQL-Code der Abfrage, die mir die x-Schüler liefert, die diesen Marker bekommen sollen?

    Wie gesagt, der Bericht, der dem Prüfer zugesandt wird, beinhaltet genau die Schüler mit der entsprechenden Sprache, das kann aus meiner Sicht nicht völlig falsch sein.

    Vielleicht eines noch - als Antwort auf deine Frage: ein Prüfer vertritt immer nur eine Sprache.
     
    KSteinwachs, 2. Oktober 2020
    #5
  6. Also, in der Hoffnung, dass ich nicht gesteinigt werden, im Anhang mal die entscheidende Abfrage.

    Kurze Erläuterung:
    im Zentrum steht der Schüler mit x Datenfeldern. Jeder Schüler ist auf einem Gymnasium (Verknüpfung via gym_id_f), hat eine erste Fremdsprache [fs1_id_f] und die besagte zweite Fremdsprache [hier als Prüfungssprache bezeichnet - ebenfalls über Fremdschlüssel verknüpft].

    Über ein Formular ordne ich dem Schüler einen Prüfer zu [prue_id_f].

    Die Abfrage prüft den Prüfernamen, den ich in einem Formular auswähle und gibt die dazugehörigen Schüler aus.

    Und eben diese X Schüler sollen jetzt diesen Marker bekommen...

    Als SQL gibt das Folgendes:

    SELECT tblGymnasium.*, tblPruefer.*, tblSchueler.*, tblFremdsprache_1.fS1_fs_1, tblPruefungssprache.spr_P_pruef_sprache
    FROM tblPruefungssprache INNER JOIN (tblPruefer INNER JOIN (tblGymnasium INNER JOIN (tblFremdsprache_1 INNER JOIN tblSchueler ON tblFremdsprache_1.fS1_id = tblSchueler.fS1_id_f) ON tblGymnasium.gym_id1 = tblSchueler.gym_id_f) ON tblPruefer.prue_id = tblSchueler.prue_id_f) ON tblPruefungssprache.spr_P_id = tblSchueler.spr_P_id_f
    WHERE (((tblPruefer.prue_name)=[Forms]![frm_Start]![frm_Pruefer_mit_Prueflingen]![prue_name]));
     
    KSteinwachs, 2. Oktober 2020
    #6
  7. Du könntest eine Kopie Deiner DB erstellen und mit dieser nach meinen und den Hinweisen anderer Forumsteilnehmer experimentieren.

    Das ist doch eine Ansage - also kann man sich auf den Prüfer focussieren und die Sprache außen vor lassen.

    Ich würde folgende Tabellen vorschlagen:

    tblSchueler

    IDSchueler (Autowert)
    Zuname
    Vorname
    ...

    tblPruefer
    IDPruefer (Autowert)
    Zuname
    Vorname
    EMail
    ...

    tblSchuelerPruefer
    IDSchuelerPruefer (Autowert)
    FKSchueler (Long Integer) = Fremdschlüssel zum Schüler
    FKPruefer (Long Integer) = Fremdschlüssel zum Prüfer
    MailVersand (Datum/Zeit)
    ...


    PS: Während Du schon #6 postetest, tippte ich noch an #7...

    ...
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  8. Update tbl.... Set .... Where...

    Da bin ich nicht so weit weg von deinem Vorschlag der Struktur in #7, oder?
     
    KSteinwachs, 2. Oktober 2020
    #8
  9. Schon, aber die Zwischentabelle tblSchuelerPruefer ist noch notwendig.

    Die Zuordnung von Schülern zu Prüfern kann z. B. über Kombinatioinsfelder geschehen, aber das sind dann schon Layout-Aufgaben.

    Deine anderen Tabellen (Sprache etc.) sind fürs Datenmodell erstmal nicht so wichtig.
     
  10. Die Zwischentabelle tblSchuelerPruefer habe ich jetzt angelegt, aber mir ist ehrlich gesagt nicht ganz klar, was da genau rein soll.
    Kannst du mir noch einen Tipp geben, oder führt das zu weit?
     
    KSteinwachs, 2. Oktober 2020
    #10
  11. Natürlich führt das nicht zu weit, Karsten.

    Wir müssen zunächst den Inhalt des späteren Formularkopfs definieren, in dem die E-Mail an den Prüfer kreiert werden soll. Welche Daten sollten neben den Schülern in die E-Mail?

    Prüfer
    Gymnasium
    Fach
    Prüfungsdatum
     
  12. Hallo,
    Nur eine kurze Zwischenbemerkung
    Hier reicht doch das Datumsfeld völlig aus; - leer = nicht gemeldet, Datum = gemeldet.

    Und, - für die Sprachen brauchst du nur eine Tabelle, - die Qualifikation als Fs1 oder Ps
    erfolgt ja erst durch die FKs beim Schüler. Im Beziehungsfenster musst du diese Tabelle
    dazu nur zweimal aufnehmen.

    gruss ekkehard
     
    Beaker s.a., 3. Oktober 2020
    #12
  13. Update tbl.... Set .... Where...

    Hallo an alle und entschuldigt meine Abwesenheit fü rein paar Tage.

    Vielen Dank für eure Unterstützung, ich glaube, wenn alles Hand und Fuß haben soll, muss ich tatsächlich grundsätzlich an die Struktur (n:m) ran - was für mich eher eine größere Herausforderung ist.
    Im Moment habe ich mir als Hilfskonstruktion mit einer Aktualisierungsabfrage beholfen - nicht ideal - funktioniert aber erst einmal.

    Danke nochmals ans Forum, ich werde bestimmt noch einmal Hilfe brauchen.
    Karsten
     
    KSteinwachs, 7. Oktober 2020
    #13
Thema:

Update tbl.... Set .... Where...

Die Seite wird geladen...
  1. Update tbl.... Set .... Where... - Similar Threads - Update tbl Set

  2. Mit CurrentDb.Execute Update Tabelle aktualisieren aus einer anderen Tabelle

    in Microsoft Access Hilfe
    Mit CurrentDb.Execute Update Tabelle aktualisieren aus einer anderen Tabelle: Hallo Leute, ich hoffe ihr könnt mir weiter helfen... ich habe folgendes Modul erstellt: Public Sub Regiesum() Dim Summe As Double Dim db As DAO.Database Dim rs As DAO.Recordset Dim rsAZ As...
  3. Edit und Update

    in Microsoft Access Hilfe
    Edit und Update: Hallo liebe Gemeinde. Ich beiße mir die Zähne aus und benötige ein wenig Hilfe. Zunächst der Code: Public Sub WriteFilesInTable() Dim db As DAO.Database Dim rs, rs1 As DAO.Recordset Dim strTbl,...
  4. Outlook Signaturen fehlen nach update

    in Microsoft Outlook Hilfe
    Outlook Signaturen fehlen nach update: Hallo, ich nutze Win 10 und Outlook 2016. Anscheinend gab es ein größeres Update im April und als erstes fiel mir auf, dass die Statusleiste von unten nach links verschoben wurde. Das konnte ich...
  5. Outlook AutoVervollständigen-Liste

    in Microsoft Outlook Hilfe
    Outlook AutoVervollständigen-Liste: Hallo zusammen, seitdem Microsoft Office Home and Business 2019 ein Update auf Version 16.0.16227.20280 am 18.04. automatisch installiert hat, werden keine E-Mail-Adressen mehr vorgeschlagen,...
  6. Access Tabelle mit Excel Daten updaten

    in Microsoft Access Hilfe
    Access Tabelle mit Excel Daten updaten: Hallo zusammen, ich habe eine Excel Arbeitsmappe die ständig aktualisiert wird. Die Spaltennamen stimmen mit den Spaltennamen der Tabelle in Access überein. Jetzt möchte ich gerne einen VBA Code...
  7. Attribut Schreibschutz

    in Microsoft Excel Hilfe
    Attribut Schreibschutz: Hallo Wissen...! In einem Excel-Dokument habe ich diverse Makros, welche jeweils ein spezifisches Word Dokument öffnen und in diesem Daten aus dem Excel an bestimmte Stellen im Word-Dokument,...
  8. Daten in intelligenter Tabelle updaten

    in Microsoft Excel Hilfe
    Daten in intelligenter Tabelle updaten: Hallo, ich habe ein kurze intelligente Tabelle mit Formeln und Werten. In Spalte A steht eine eindeutige ID. In Spalte B bis Z dann die Formeln bzw. Werte. Die Werte aus der kurzen Tabelle soll...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden