Hallo! (wiedermal ratlos...)
Eine Tabelle enthält die Felder "ProzessID" (kurzer Text) und "Prozessversion" (Zahl, mit Format "\V00").
Es soll ein Formular für den Satz mit ID PN31-001) und höchster Versionsnummer aufgerufen werden.
Mit
strSQL = "ProzessID = 'PN31-001' & Prozessversion = " & _
DMax("Prozessversion", "[MNG21-Prozesse]", "ProzessID = 'PN31-001'")
DoCmd.OpenForm "ProzessDetails", , , strSQL, acFormEdit
(strSql ist eine Public string-Variable)
Dmax liefert die richtige Versionsnummer.
Das Formular wird zwar geöffnet, aber mit dem ersten Satz der Tabelle!
was mache ich falsch?
Hallo Walter,
So wie es gezeigt wird, ist strSQL keine gültige SQL-Anweisung, -
es fehlt sowohl die Feldliste (SELECT) als auch die zu verwendende
Tabelle (FROM). Und das Kriterium entspricht auch nicht der geforderten
Syntax.
Hast du dir den String nicht mal mitDebug.Print strSQL im Direktfenster ausgeben lassen?
Das ist doch das Erste was man macht, bevor man den "abschickt".
Oder du versuchst es mal mit dem angefügten AddIn. Das ist etwas
komfortabler da es dir auch gleich Fehlermeldungen anzeigt.
gruss ekkehard
Ach ja, noch was Grundsätzliches
- IDs vom Datentyp "String" sind ungünstig
- deine ProzessID entspricht nicht der 1. Normalform (atomare Inhalte)
- Sonderzeichen in Objektnamen (hier [MNG21-Prozesse]) sind zu vermeiden
und Frage
Warum öffnest du das Detailformular nicht von einem UFo (P-Details) auf
einem HFo Prozesse?
Entsprechend sortiert steht da die letzte Version immer oben, und du hast
direkten Zugriff auf die VersionsID bzw. den FK zu Prozessen.
Hallo,
strSQL wird hier als Kriteriums-String eingesetzt...
Habe die Frage schon im anderen Thread beantwortet, allerdings unter der Annahme, dass "Prozessversion" den Datentyp TEXT aufweist.
Aber auch hier in der Beschreibung ist nicht klar, welchen Datentyp (kein Format!) "Prozessversion" in der Tabelle hat.
Zeige mal ein Beispiel von "Prozessversion" mit Copy&Paste, bzw. geh in den Tabellenentwurf und mach einen Screenshot vom Eigenschaften-Bereich des Tabellenfeldes.
zudem muss die Syntax so lauten:
strSQL = "ProzessID = 'PN31-001' And Prozessversion = " & _
DMax("Prozessversion", "[MNG21-Prozesse]", "ProzessID = 'PN31-001'")