Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

openform mit acFormEdit: immer auf ersten Tabellensatz Wiederholung)

Begonnen von Walterio, August 03, 2022, 10:32:00

⏪ vorheriges - nächstes ⏩

Walterio

Hallo

(Habe fälschlicherweise diesen Post schon unter Formulare plaziert. Da keine Antwort versuche ich es hier.)

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?

Danke für jede Hilfe
Walter

DF6GL

Hallo,

wenn das Tabellenfeld "Prozessversion"  den Datentyp TEXT aufweist, fehlen die umschließenden  Hochkommata und zusätzlich muss es AND statt "&" heißen

strSQL = "ProzessID = 'PN31-001' And Prozessversion = '" & _
             DMax("Prozessversion", "[MNG21-Prozesse]", "ProzessID = 'PN31-001'") & "'"

Beaker s.a.

ZitatDa keine Antwort
Warum so ungeduldig? Ich habe da inzwischen geantwortet.
Da auch die von Franz gepostete Korrektur nicht korrekt ist
edit: wohl gerade noch korrigiert
ZitatstrSQL = "ProzessID = 'PN31-001' AND Prozessversion = '" & _
             DMax("Prozessversion", "[MNG21-Prozesse]", "ProzessID = 'PN31-001'") & "'"
für eine WhereCondition. Da braucht es dann natürlich kein
SELECT ... FROM, wie im anderen Thread geschrieben. Da hatte
ich die Kommas nicht gezählt bzw. gar nicht darauf geachtet.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

ebs17

Zitatwas mache ich falsch?
strSQL als Bezeichnung für einen Filter zu verwenden ist immerhin schon mal irritierend, einen Filter würde ich auch als solchen bezeichnen.

ZitatstrSQL = "ProzessID = 'PN31-001' & Prozessversion = ...
Dass man logisch per AND verkettet, nicht per &, hast Du den Vorbeiträgen sicher schon entnommen.

Zu dem weiteren: Zuerst sollte man sich informieren, welchen Datentyp das Feld Prozessversion hat und was also das DMax zurückliefert.
Mit freundlichem Glück Auf!

Eberhard

Walterio

#4
Vor lauter Bäumen...

Ich habe das total übersehen! Danke euch allen!
Und ja, Prozessversion ist eine Zahl


Walter