TYPE ist ein reserviertes Wort in Access
und sollte für eigene Bezeichnungen nicht verwendet werden!
Okay, kann ich umbenennen, kein Problem.
Leider ist auch mit obigem gekürzten SQL-Code die Form immer
noch „not updatable“.
Wieso ist das noch so?
= weil immer noch Joins zu BATREL und CAMIC existieren
= wie schon geschrieben, ist eine dieser Tabellen
schreibgeschützt!?
du solltest also erstmal diese Frage klären!
Tatsächlich ist die Tabelle batrel schreibgeschützt! Wenn ich die aus der SQL-Abfrage lösche, kann ich sogar die Fehlermeldungen-Rechnung wieder reinnehmen UND filtern, wie es mir gefällt! Prima!
das Sperren kannst du ja - wie beschrieben - für die Felder
einstellen.
Das muss ich noch probieren. Mal schauen.
info(gesperrt) aus batrel;
nur für die „Info“ brauchst du keinen Join, sondern holst dir
die Info über die Funktion Dlookup.
und wie gesagt anzahlfehlermeldungen aus fehlermeldungen
(berechnen)
Das habe ich versucht:
dlookup ("[info]",„batrel“,"[batch] = " & Me![fldbatchlot])
Wo ist der Fehler?
dlookup ("[info]",„batrel“) funktioniert, d.h. zeigt den ersten Eintrag der Tabelle. In der Tabelle Batrel heisst der „Schlüssel“ batch, in der Tabelle holdLot heisst er batchlot (und in der Form frmholdlot heisst er fldbatchlot)).
bin einen grossen Schritt voran gekommen! Tatsächlich lag es nur an dem einen Feld, das aus der Tabelle Batrel gefüllt wurde. Diese ist schreibgeschützt und hat die Probleme verursacht. DCount ging nicht, aber ich konnte die Rechnung für die Anzahl der Fehlermeldungen wieder in den SQL-Code einfügen - ohne Probleme. Dlookup habe ich leider auch nicht zum Laufen gekriegt. Deshalb habe ich für dieses eine Feld ein Subformular eingefügt. Nach diesem Eintrag kann man nun das restliche Formular nicht filtern, aber dafür nach all den anderen und damit können wir leben. Damit sind alle ursprünglichen Probleme gelöst. Auch das Schreibschützen einzelner Felder habe ich gelöst bekommen! Vielen Dank für Deine Hilfe!
Wie Du an der Formulierung vielleicht schon gemerkt hast, sind nun natürlich neue Probleme aufgetaucht. Ich habe ein weiteres Unterformular mit Produktionsmodell-Eigenschaften (also nicht Produktions-Chargen-spezifisch wie im Hauptformular). An dieses Unterformular soll der jeweilige Produtkionstyp übergeben werden, damit das Unterformular mit dem richtigen Typen geöffnet wird. Es sollen aber auch die übrigen Typen über den Recordselector auswählbar sein. Wenn kein Typ da ist, soll eine Meldung erfolgen (und ein neuer Eintrag erzeugt werden.
Bis jetzt habe ich folgendes:
Private Sub btnTypeinfo_Click()
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = „frmtypeinfotest“
stLinkCriteria = „[TypeID]=“ & „’“ & Me![Type] & „’“
If DCount("*", „frmtypeinfotest“, stLinkCriteria) = 0 Then
MsgBox „Keiner da!“
’ … erzeuge einen neuen …
Else
DoCmd.OpenForm stDocName, , , stLinkCriteria
End If
End Sub
Aber DCount funktioniert mal wieder nicht! Kannst Du helfen?
Müssen die zu vergleichenden Felder das gleiche Format haben? Was, wenn sie das nicht haben?
Zusatz:
Dcount funktioniert jetzt. Alles klar.
Nun krieg ich aber den Sprung auf den richtigen Datensatz nicht hin. Er soll auf den im Hauptformular angezeigten Datensatz springen (aber nicht nur diesen dann im Formular anzeigen, sondern die anderen sollen über den Recordselector oder dein Dropdown-Menü auswählbar sein).
Grüße
nun funtkioniert es irgendwie, auch ohne die ID (Typ ist das verknüpfendene Element, ID ist nicht in beiden Formularen gleich!).
Hatte vorher wohl irgendetwas falsch gemacht.
Also wenn ich das Subformular öffne, zeigt er den entsprechenden Typen (falls vorhanden) an. Wenn nicht, springt er auf einen leeren Eintrag. Gut.
(aber nicht nur diesen dann im Formular
anzeigen, sondern die anderen sollen über den Recordselector
oder dein Dropdown-Menü auswählbar sein).
dann lege ein Kombifeld im Kopf an. Beispiel: FAQ:2768
Mit einem Kombifeld kann ich gut leben. Ich habe ein Kombifeld wie in FAQ:2768 vorgeschlagen erzeugt. Ich sehe darin die vorhandenen Typen, aber ich kann sie nicht auswählen: eine im Dropdown-Menü anklicken, so dass die Felder entsprechend gefüllt werden…
Ausserdem will ich neue Einträge machen können. Das kriege ich nicht hin. Habe schon das Hauptformular meines Vorgängers nach dem entsprechenden Code durchsucht, ist aber eher verwirrend, als hilfreich… Ich will einerseits (falls Typ nicht vorhanden) den leeren Eintrag füllen (inklusive TypeID) und andererseits durch Druck auf einen Knopf in ebendiesen leeren Eintrag springen (um ihn dann zu füllen).