Unterformular lässt neue DS nicht zu

Guten Morgen :smile:

Ich habe nochmal eine Frage und hoffe, Jemand kann mir wieder so toll helfen wie @DF6GL gestern …

Ich habe folgendes Problem:
Grundsätzlicher Gedanke der Datenbank: für gewisse Artikel soll eine Übersicht mit den Prüfungen und Tests, die der Artikel durhlaufen hat, erstellt werden.

Ich habe eine Datenbank angelegt. Im Hauptformular sind die Artikel (AutoID, Artikel, Ordnernr etc) und im Unterformular habe ich die Prüfungen dazu angelegt( Bezeichnug der Prüfung, Inhalt, Norm etc). Ich habe dazu ein eigenens Formular angelegt und das dann als Unterformular ins HF eingebunden. Als Verknüpfung habe ich das AutoID Feld der Artikel mit dem Nachschlagefeld (->AutoIDKarten) angelegt.

Das Problem ist jetzt, dass ich im UF keine neuen Tests mehr zu einer Karte anlegen kann, sondern nur die bisher eingetragenen Tests angezeigt bekomme. Das Feld mit den Tests ist ein Kombifeld mit Datenherkunft…

Ich habe schon probiert, im Eigenschaftsfeld der Tests (UF) „Bearbeiten, Anfügen und Löschen zulassen“ und „Daten eingeben“ auf „Ja“ gestellt, aber dann kroege ich gar nichts mehr angezeigt…

Weiss jemand, was ich falsch machen könnte?

Vielen Dank, falls jemand kurz Zeit hat, mir zu helfen… :smile:

Lg…Michaela

Hallo Michaela,

Im Hauptformular sind die Artikel (AutoID, Artikel, Ordnernr etc) und im Unterformular
habe ich die Prüfungen dazu angelegt( Bezeichnug der Prüfung,
Inhalt, Norm etc).

Wie heißt das Fremdschlüsselfeld? (Das erhält den Wert des Primärschlüsselfeldes aus „tbl_Artikel“)

Ich habe dazu ein eigenens Formular
angelegt und das dann als Unterformular ins HF eingebunden.

ok:

Als Verknüpfung habe ich das AutoID Feld der Artikel mit dem
Nachschlagefeld (->AutoIDKarten) angelegt.

nicht ok: Wenn es sich bei „Nachschlagefeld“ um ein solches in der Tabelle handelt, wirf das Ding aus der Tabelle heraus.

Die Eigenschaften „Verknüpfen von/nach“ müssen auf die o. g. Schlüsselfelder gesetzt werden.

Verknüpfen von: ArtikelAutoID (Feld in Tabelle „Prüfungen“)
Verknüpfen nach: AutoID (Feld in Tabelle „Artikel“)

Das Problem ist jetzt, dass ich im UF keine neuen Tests mehr
zu einer Karte anlegen kann, sondern nur die bisher
eingetragenen Tests angezeigt bekomme. Das Feld mit den Tests
ist ein Kombifeld mit Datenherkunft…

Dieses Kombi ist in UF unsinnig. Lt. der Beschreibung hast Du gar keine Tabelle, woraus das Kombi seine Daten beziehen könnte.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hi :smile:

Danke für die schnelle Antwort!

Hier noch einige Antworten:

Der Fremdschlüssel in der Tabelle „Prüfungen“ ist das Nachschlagefeld (kann man in der Entwursansicht einer Tabelle anlegen!?).

„Verknüpfen von: ArtikelAutoID (Feld in Tabelle „Prüfungen“)
Verknüpfen nach: AutoID (Feld in Tabelle „Artikel“)“

Wenn ich Dich richig verstanden habe, soll ich die Felder „Primärschlüssel“ aus der Artikel-Tabelle und „Fremdschlüssel“ (=Primärschlüssel aus tbl_artikel in tbl_prüfungen, ja?) miteinander verknüpfen?
Genau das habe ich ja gemacht…

Vielleicht ist es noch wichtig zu erwähnen, dass ich über diese 2 Felder auch eine 1:n Beziehung mit referentieller Integrität und Aktualisierugsweitergabe erstellt habe.

„Dieses Kombi ist in UF unsinnig. Lt. der Beschreibung hast Du gar keine Tabelle, woraus das Kombi seine Daten beziehen könnte.“

Die Datenherkunft basiert auf einer Abfrage der Tabelle „Prüfungen“.

Habe es jetzt nochmal so gemacht, hat sich aber nix geändert…

Hi :smile:

Danke für die schnelle Antwort!

Hier noch einige Antworten:

Der Fremdschlüssel in der Tabelle „Prüfungen“ ist das
Nachschlagefeld (kann man in der Entwursansicht einer Tabelle
anlegen!?).

Nochmal: NIX Nachschlagefeld… in der Tabelle

„Verknüpfen von: ArtikelAutoID (Feld in Tabelle „Prüfungen“)
Verknüpfen nach: AutoID (Feld in Tabelle „Artikel“)“

Wenn ich Dich richig verstanden habe, soll ich die Felder
„Primärschlüssel“ aus der Artikel-Tabelle und „Fremdschlüssel“
(=Primärschlüssel aus tbl_artikel in tbl_prüfungen, ja?)
miteinander verknüpfen?

ja.

Genau das habe ich ja gemacht…

mhmm, dann sollte es gehen…

Vielleicht ist es noch wichtig zu erwähnen, dass ich über
diese 2 Felder auch eine 1:n Beziehung mit referentieller
Integrität und Aktualisierugsweitergabe erstellt habe.

das ist sehr gut so…

„Dieses Kombi ist in UF unsinnig. Lt. der Beschreibung hast Du
gar keine Tabelle, woraus das Kombi seine Daten beziehen
könnte.“

Die Datenherkunft basiert auf einer Abfrage der Tabelle
„Prüfungen“.

und was hat das für einen Sinn?

Tabelle „Artikel“:
ArtikelID (PK, Autowert)
Art_Bezeichnung (Text)
Art_Ordnernr (Text oder Zahl, was halt sinnvoll und passend ist)
.
.

Tabelle „Prüfungen“:
PrüfungID (PK,Autowert)
Pr_ArtikelID (Zahl, long, das ist das Fremdschlüsselfeld zu Tabelle Artikel)
Pr_Bezeichnung (Text)
Pr_Inhalt (Text)
Pr_Norm (Text)
.
.

Formualre mit Datenherkunft direkt zu den Tabellen(namen)

Eigenschaften des UFO_Steuerelementes (für Formular „frm_Prüfungen“) im HF („frm_Artikel“):
Verknüpfen von: Pr_ArtikelID
Verknüpfen nach: ArtikelID

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Ich habe jetzt alles so, wie Du sagst, dass es sein soll… funktioniert leider nicht. Ich weiss aber echt nicht mehr, woran es noch liegen kann!

Wenn ich das UF alleine starte, klappt es, aber wenn ich das gesamte Formular (HF mit UF) starte, dann geht es nicht, bzw das UF bleibt einfach grau.
Bei den Verknüpfungen krieg ich manchmal die Fehlermeldung, dass die Verknüpfung (der Fremdschlüssel) auf ein Objekt verweist, das geschlossen ist oder nicht existiert. Aber ich habe das Feld geöffnet.

Und aufgefallen ist mir, dass im Unterformular bei den Eigenschaften im Reiter „Daten“ die Einträge „Löschen zulassen“, „Anfügen zulassen“ und „Daten eingeben“ immer von selbst auf „nein“ springen.

Hast Du noch eine Idee?

Lg…

Und: Ich habe einen Button „NeuenDatensatz anlegen“ im UF einfgefügt, wenn ich den drücke, kommt die Meldung: „Sie können nicht zu dem angegebenen Datensatz springen“.

)

Hallo,

mhmm, da stimmt was Grundlegendes nicht…

Stimmen denn die Namen?
Stimmen die Datentypen der Schlüsselfelder überein?
Gibt es irgendwelchen weiteren Code, der irgendwann in den Formularen ablaufen soll?
Ist in den Eigenschaften „Datenherkunft“ der Formualre jeweils der richtige Tabellenname eigetragen?

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo nochmal :smile:

Ich habe jetzt die Datenbank nocheinmal von vorne begonnen… werde jetzt von Anfang an alles machen wie bechrieben. Ich hoffe, es klappt!

Werde morgen nochmal posten, ob ich Erfolg hatte!

Trotzdem vielen Dank Dir, das ist echt voll nett, dass Du soviel hilfst!!!

Lg :smile:

So. ich habe nochmal alles gemacht. Und nach fast jedem schritt eine Sicherungskopie :wink:

ich denke, ich wei’ jetzt auch, woran es liegt:

Wenn ich die in der Registerkarte Eigenchaften/Daten/Bearbeitungen zulassen auf nein setze, geht es nicht mehr, hinterher einen neuen D einzufügen… auch nach dem Entsperren durch den Button von gestern…

Das war genau der Code, den ich gestern eingefügt habe:

Private Sub Befehl69_Click()

If Me.AllowEdits Then
Me.AllowEdits = False
Me!Befehl69.Caption = „Entsperren“
Else
Me.AllowEdits = True
Me!Befehl69.Caption = „Sperren“
End If
On Error GoTo myError
Dim lngStore As Long

lngStore = Me!AutoID

'Bildschirmflackern reduzieren
Me.Painting = False

Me.Requery
Me.RecordsetClone.FindFirst "AutoID = " & lngStore
Me.Bookmark = Me.RecordsetClone.Bookmark

myExit:
Me.Painting = True
Exit Sub

myError:
Select Case Err.Number
Case 3159
'not a valid bookmark
Resume myExit
Case Else
MsgBox "Exception Nr. " & Err.Number & " " & Err.Description
Resume myExit
End Select

End Sub

DA steckt wohl noch ein Fehler drin, weil grade eine Meldung mit einer Null kam, konnte es aber nnicht richtig lesen…

Naja, immerhin wei’ ich jetzt bescheid. Giobts denn noch ne andere geeignete Möglichkeit, die Datensätze zu sperren/entsperren per knopfdruck??

glg :smile:

Und einen schönen Feierabend jetzt :smile:

Hallo,

vermutlich mußt Du zweimal den Button klicken, je nachdem, welche Ausgangssituation es gibt. Natürlich kann man nichts mehr eintragen, wenn Allowedits =False ist, das ist der Sinn der Sache.

Der Code-Teil für das Requery ist überflüssig und erschließt sich mir nicht.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Guten Morgen :smile:

Ja, klar ist das Sinn der Sache, dass die Datensätze gesperrt sind. Aber auch mehrmaliges drücken des Buttons hat nichts geholfen.

Es ist scheinbar so, dass wenn ich „Bearbeitung zulassen“ auf „Nein“ stelle, auch die Option „Datensätze Anfügen“ gesperrt wird. Und der Button, der die Datensätze entsperrt, stellt diese Option nicht wieder auf ja!

Gibt es dafür eine Codeerweiterung? Dass wennich den Button „Sperren/Entsperren“ drücke, auch automatisch das Anfügen mit aktiviert/Deaktiviert wird??

Der Requery Code soll den Datensatz aktualisieren, damit gleich nach dem Drücken des Buttons die Sperre aktiv ist und dass die Ansicht beim gleichen Datensatz bleibt… habe den Code aber orgendwo kopiert und die Namen angepasst…

Lg…:smile:

okay… Probieren hilft:
If Me.AllowEdits Then
Me.AllowEdits = False
Me!Befehl9.Caption = „Entsperren“
Else
Me.AllowEdits = True
Me!Befehl9.Caption = „Sperren“
End If
If Me.AllowAdditions Then
Me.AllowAdditions = False
Else
Me.AllowAdditions = True
End If

Klappt soweit :smile:

ODer siehst Du einen Fehler??

) :smile:

Hallo,

setz doch Me.AllowAdditions gleich in den ersten IF-Block und laß den zweiten einfach weg…

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!