Ungebundene Felder füllen

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)).

Ich komme der Lösung jetzt endlich nahe!

Grüße,
Sebastian

Das habe ich versucht:
dlookup ("[info]",„batrel“,"[batch] = " & Me![fldbatchlot])
Wo ist der Fehler?

ich vermute mal BATCH wird auch als reserviertes Wort behandelt.
und/oder mal ein paar Klammern weniger verwenden:

dlookup („info“,„batrel“,"[batch] = " & Me.fldbatchlot)

und/oder eine Kontrolle einbauen:

if isnull(Me.fldbatchlot) then
 msgbox "Fehler"
else
 me.Feldbezeichnung = dlookup ("info","batrel","[batch] = " & Me.fldbatchlot)
end if

das gilt natürlich nur, wenn Batch und fldbatchlot eine Zahl ist!

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo,

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?

Grüße,
Sebastian

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

Dcount funktioniert jetzt. Alles klar.

sehr gut

Nun krieg ich aber den Sprung auf den richtigen Datensatz
nicht hin. Er soll auf den im Hauptformular angezeigten
Datensatz springen

du hast:
stLinkCriteria = „[TypeID]=“ & „’“ & Me![Type] & „’“
DoCmd.OpenForm stDocName, , , stLinkCriteria

du brauchst
stLinkCriteria = „[TypeID]= '“& Me![Type] & "’ and [ID] = " & Me.ID
DoCmd.OpenForm stDocName, , , stLinkCriteria

es fehlte die Bedingung für die ID

(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

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo,

es fehlte die Bedingung für die ID

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).

Danke,
Sebastian

Hallo Sebastian,

für dieses Problem solltest du eine neue Anfrage hier machen, da sonst der Thread unübersichtlich wird.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)