Neuigkeiten:

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

Mobiles Hauptmenü

Neueste Beiträge

#71
Access Programmierung / Re: Formular aktualisiert nich...
Letzter Beitrag von Thüringer - August 28, 2026, 16:35:07

Mein Text sieht jetzt so aus. Er gibt an, dass er "ufofrm_liste" nicht finden kann. Das SubForm-Control heißt aber so. Das darin befindliche Formular ist "frm_liste" und soll aktualsiert werden. Was kann falsch sein?

Private Sub Befehl122_Click()
 On Error GoTo Err_Befehl122_Click
     DoCmd.Close acForm, "frm_liste_neu", acSaveYes
     Me.ufofrm_liste.Form.Requery
Exit_Befehl122_Click:
     Exit Sub
Err_Befehl122_Click:
     Resume Exit_Befehl122_Click
End Sub
#72
Access Programmierung / Re: Formular aktualisiert nich...
Letzter Beitrag von Knobbi38 - August 28, 2026, 10:35:03
Hallo,

es gibt zwei Dinge, die du bei Access beachten mußt:
  • Unterformulare erscheinen nicht in der Forms-Auflistung, könnenn also darüber nicht direkt angesprochen werden.
  • Access benennt ein SubForm-Control im Designer immer nach dem zugewiesenen Formular. Das muss man nachträglich ändern und dem SubForm-Control einen anderen Namen vergeben, z.B. mit einem Präfix "sub" oder "sfc", je nach Namenskonvention.

Aus dem o.a. folgt dann: wenn du ein Requery auf ein geladenes UF aus dem HF veranlassen möchtest, warum auch immer, kannst du das einfach über das Steuerelement (SubForm-Control) ansprechen:
me.<subformcontrolname>.form.requery
Eigentlich sollte das aber nicht notwendig sein.

Knobbi38

PS:
ZitatResume Next
     Resume Exit_Befehl122_Click
Der Code ist leider fehlerhaft. "Resume Next" gehört da nicht hin und kann u.U. eine Endlosschleife verursachen!
#73
Tabelle/Abfrage / Re: Datensätze finden, wo ein ...
Letzter Beitrag von Knobbi38 - August 28, 2026, 10:18:36
Zitat von: BotschafterSarek am August 28, 2026, 04:57:25Ich muss aber mit dem arbeiten, was unsere Schulverwaltung zur Verfügung stellt
Nichts für ungut, aber das ist nur eine Ausrede und der falsche Ansatz.
Du musst dein Datenmodell so aufbauen, das du damit möglichst alle Anforderungen abdecken kannst. Was deine Schulverwaltung dir als Daten liefert, musst du dann geschickt in diese Struktur importieren. Nur mit einem brauchbarem Datenmodell kannst du dann flexibel die Daten für einen späteren Export aufbereiten und bereitstellen.

Zitat von: BotschafterSarek am August 28, 2026, 04:57:25Und als Naturwissenschaftler bin ich da sehr klassisch. Ein Kind hat, ungeachtet jeglicher "anderer Konstellationen", die rechtlich möglich sind, eine Mutter und einen Vater. Irgendwie muss es ja entstehen - und Klonkinder sind zum Glück noch nicht erlaubt.
Das ist vielleicht biologisch richtig, aber hier geht es um gelebte Strukturen, so wie sie in einer Schule vorkommen können. Du musst ja nicht gleich alles in so einem Datenmodell umsetzen, aber um eine m:n Beziehung wirst du nicht herumkommen.

ZitatNun gibt es leider auch Patchworkfamilien, wo Kinder die gleiche Mutter, aber unterschiedliche Väter haben. Hier versagt unsere Schulverwaltung und gibt allen Kindern dieser Patchworkfamilie die gleiche Familiennummer. Dadurch kann es vorkommen, dass eine ElternID zwei verschiedenen Personen zugewiesen ist, was nicht sein darf- Diese wenigen Ausnahmen wollte ich mit der Abfrage abfangen und manuell anpassen.
Wenn du ein falsches Datenmodell hast, wirst du später nur noch Ausnahmen haben. Auf kurz oder lang wirst du dann von selber darauf kommen, z.B. wenn es zu viele "Sonderlocken" gibt, und nochmal von vorne Anfangen müssen.

Knobbi38

#74
Access Programmierung / Formular aktualisiert nicht
Letzter Beitrag von Thüringer - August 28, 2026, 09:52:25
Die Frage: Der Befehl speichert und schließt das formluar frm_liste_neu. Aber er refresht nicht frm_liste.

frm_liste befindet sich als Unterformular in frm_frame und heißt dort frm_liste.

Was muss man anstelle von Forms.frm_liste.Requery schreiben?


Private Sub Befehl122_Click()
 On Error GoTo Err_Befehl122_Click
     DoCmd.Close acForm, "frm_liste_neu", acSaveYes
      Forms.frm_liste.Requery
     'Me!frm_frame.Form.Requery
     'Me!frm_frame.Form.Reload
Exit_Befehl122_Click:
     Exit Sub
Err_Befehl122_Click:
     'MsgBox Err.Description
     Resume Next
     Resume Exit_Befehl122_Click
End Sub
#75
Tabelle/Abfrage / Re: Datensätze finden, wo ein ...
Letzter Beitrag von BotschafterSarek - August 28, 2026, 04:57:25
Zitat von: Knobbi38 am August 27, 2026, 15:33:08Wie ich schon vermutet habe, ist das Datenmodell falsch. Eine ID darf keine sprechenden Daten enthalten, wie z.B. M oder V und auch keine Gruppierungen. Mutter oder Vater wäre sowieso falsch, weil es auch noch andere Konstellationen gegeben kann. Jede Person bekommt eine ID und jedes Schulkind ebenfalls. Diese werden dann per m:n Tabelle zugeordnet und das war es im Prinzip schon. Damit kannst du alles abbilden. 

Ich muss aber mit dem arbeiten, was unsere Schulverwaltung zur Verfügung stellt, damit ich im nächsten Jahr bei Verwendung der gleichen Basisliste auch das gleiche Ergebnis bekomme, damit also Max Mustermann im nächsten Jahr die gleiche ID bekommt wie in diesem Jahr. Und dazu habe ich nun mal nur die Familiennummer.

Und als Naturwissenschaftler bin ich da sehr klassisch. Ein Kind hat, ungeachtet jeglicher "anderer Konstellationen", die rechtlich möglich sind, eine Mutter und einen Vater. Irgendwie muss es ja entstehen - und Klonkinder sind zum Glück noch nicht erlaubt.
#76
Access Programmierung / Re: VBA bedingte Formatierung ...
Letzter Beitrag von Knobbi38 - August 27, 2026, 19:45:22
Hallo,

so etwas kann man auch in der Hilfe nachlesen, aber möglicherweise ist das dort nicht wirklich gut beschrieben.

Für Textboxen mit Textfelder gibt es 3 Abschnitte in der Format-Eigenschaft:
  • Abschnitt: gilt für Felder die Text enthalten
    Das @ Zeichen ist ein Platzhalter und zeigt den Text an.
  • Abschnitt: für Felder mit leerer Zeichenfolgen
    In diesem Fall nichts angegeben.
  • Abschnitt: gilt für Felder mit NULL
    Hier wird der Platzhaltertext "- Vorname -" in der Farbe Blau angezeigt.
Wie gesagt, welche Platzhalter und welche Farben unterstützt werden, kann in der Hilfe für die Textbox Format-Eigenschaft nachgeschlagen werden, dass brauche ich hier nicht nochmal wiedergeben.

Knobbi38

#77
Access Programmierung / Re: VBA bedingte Formatierung ...
Letzter Beitrag von Thüringer - August 27, 2026, 19:16:20
Danke für die Antwort. Ich habe diese Funktion schon einmal in anderen Anwendungen gesehen, die allerdings nicht Access waren.

Den Code habe ich nicht ganz verstanden. Kannst Du ihn bitte mal für ein Textfeld A ausformulieren, damit ich es lernen kann, wie er funktioniert?
#78
Tabelle/Abfrage / Re: Datensätze finden, wo ein ...
Letzter Beitrag von Knobbi38 - August 27, 2026, 15:33:08
Wie ich schon vermutet habe, ist das Datenmodell falsch. Eine ID darf keine sprechenden Daten enthalten, wie z.B. M oder V und auch keine Gruppierungen. Mutter oder Vater wäre sowieso falsch, weil es auch noch andere Konstellationen gegeben kann. Jede Person bekommt eine ID und jedes Schulkind ebenfalls. Diese werden dann per m:n Tabelle zugeordnet und das war es im Prinzip schon. Damit kannst du alles abbilden. 

Ein erster Ansatz:

================================================================================
DATENMODELL: SCHULVERWALTUNG
================================================================================

1. TABELLE: tbl_Schueler
--------------------------------------------------------------------------------
Feldname            | Datentyp      | Index / Key        | Beschreibung
--------------------------------------------------------------------------------
SchuelerID          | Autowert      | PK (Primary Key)   | Eindeutige interne Schüler-ID
Vorname             | Text (50)     | -                  | Vorname des Kindes
Nachname            | Text (50)     | -                  | Nachname des Kindes
Familiennummer_SV   | Text (30)     | Index (Dupl. ok)   | Nummer aus Schulverwaltung
--------------------------------------------------------------------------------

2. TABELLE: tbl_Erziehungsberechtigte
--------------------------------------------------------------------------------
Feldname            | Datentyp      | Index / Key        | Beschreibung
--------------------------------------------------------------------------------
BerechtigterID      | Autowert      | PK (Primary Key)   | Die finale ID für das Export-System
Vorname             | Text (50)     | -                  | Vorname (leer lassen bei Ämtern)
Nachname            | Text (100)    | -                  | Nachname ODER Name der Institution
IstInstitution      | Ja/Nein       | -                  | Ja = Jugendamt/Heim, Nein = Person
E_Mail              | Text (100)    | Eindeutig (Kein D) | Login für das Kommunikationssystem
--------------------------------------------------------------------------------

3. TABELLE: tbl_Schueler_Berechtigte
--------------------------------------------------------------------------------
Feldname            | Datentyp      | Index / Key        | Beschreibung
--------------------------------------------------------------------------------
SchuelerBerechtID   | Autowert      | PK (Primary Key)   | Interne ID der Verknüpfung
SchuelerID_FS       | Long Integer  | FK (Foreign Key)   | Verweist auf tbl_Schueler(SchuelerID)
BerechtigterID_FS   | Long Integer  | FK (Foreign Key)   | Verweist auf tbl_Erziehungsberechtigte
Beziehung           | Text (50)     | -                  | z. B. Mutter, Großvater, Jugendamt, Vormund
================================================================================


und die SQL-DDL Statements zum anlegen:
-- 1. Tabelle: Schueler
CREATE TABLE tbl_Schueler (
    SchuelerID COUNTER CONSTRAINT PK_Schueler PRIMARY KEY,
    Vorname TEXT(50),
    Nachname TEXT(50),
    Familiennummer_SV TEXT(30)
);

-- 2. Tabelle: Erziehungsberechtigte (Personen & Institutionen)
CREATE TABLE tbl_Erziehungsberechtigte (
    BerechtigterID COUNTER CONSTRAINT PK_Erziehungsberechtigte PRIMARY KEY,
    Vorname TEXT(50),
    Nachname TEXT(100),
    IstInstitution BIT DEFAULT 0,
    E_Mail TEXT(100)
);

-- 3. Zwischentabelle: Flexibler Beziehungsstatus
CREATE TABLE tbl_Schueler_Berechtigte (
    SchuelerBerechtID COUNTER CONSTRAINT PK_SchuelerBerechtigte PRIMARY KEY,
    SchuelerID_FS INT CONSTRAINT FK_Schueler REFERENCES tbl_Schueler(SchuelerID) ON UPDATE CASCADE ON DELETE CASCADE,
    BerechtigterID_FS INT CONSTRAINT FK_Berechtigter REFERENCES tbl_Erziehungsberechtigte(BerechtigterID) ON UPDATE CASCADE ON DELETE CASCADE,
    Beziehung TEXT(50)
);

Das Einfügen eine Geschlechtsmerkmals mit einer passenden Lockuptabelle überlasse ich jetzt deiner Phantasie.  ;D


... aber vielleicht hilft das schon weiter  ;)

Knobbi38
#79
Tabelle/Abfrage / Re: Datensätze finden, wo ein ...
Letzter Beitrag von BotschafterSarek - August 27, 2026, 13:38:59
Zitat von: Knobbi38 am August 27, 2026, 10:14:22Wie dem auch sei, den Sinn einer solchen Abfrage kann ich nicht erkennen, aber hier ein möglicher Lösungsansatz nach deinen Vorgaben

Vielen Dank, das tut genau das, was es soll.

Der Hintergrund ist folgender:

Wir müssen die Eltern unserer Schüler aus unserer Schulverwaltung in unser Schulkommunikationssystem importieren. Leider haben die Eltern keine eindeutige ID. Der Name kann auch nicht herangezogen werden, da der sich (z.B. durch Heirat/Scheidung) auch mal ändert.

Es gibt aber eine Familiennummer zu jedem Kind. Mein Ansatz ist, diese Familiennummer mit einem angehängten M für Mutter oder V für Vater als Eltern-ID zu verwenden.

Nun gibt es leider auch Patchworkfamilien, wo Kinder die gleiche Mutter, aber unterschiedliche Väter haben. Hier versagt unsere Schulverwaltung und gibt allen Kindern dieser Patchworkfamilie die gleiche Familiennummer. Dadurch kann es vorkommen, dass eine ElternID zwei verschiedenen Personen zugewiesen ist, was nicht sein darf- Diese wenigen Ausnahmen wollte ich mit der Abfrage abfangen und manuell anpassen.

#80
Access Programmierung / Re: VBA bedingte Formatierung ...
Letzter Beitrag von Knobbi38 - August 27, 2026, 12:15:49
Hallo,

leider ist das Problem nicht einfach mit einer FC (bedingte Formatierung) zu lösen, auch nicht, wenn du mit zwei Steuerelementen arbeitest. Es kann außerdem sehr verwirrend sein, wenn in leeren Feldern jetzt auf einmal der Vorgabetext erscheint. Das abzufangen ist sicherlich noch ein gutes Stück schwieriger.

Was du machen kannst ist, ein Format in der Textbox zu verwenden, z.B.:
@;;"- Vorname -  "[Blau]Nicht ganz das was du möchtest, aber immerhin. Üblicherweise kann man dafür auch ein Dialog-Formular verwenden - nur mal so als Idee.

Knobbi38