PDA

Vollständige Version anzeigen : Aktualisieren eines Status über Formular, das neu geöffnet wird


dual_purpose
07.07.2006, 09:24
Hallo zusammen,

in meinem Auftragsformular soll der Bearbeitungsstatus geändert werden. Dazu geht ein pop-up auf, in dem der neue Status ausgewählt, gespeichert und dann das Auftragsformular aktualisiert werden soll.

Leider schaffe ich es nicht mal, daß das pop-up im Modus 'hinzufügen' öffnet und sich gleich auf die richtige Auftragsnummer bezieht.

Folgendes habe ich probiert (kommt aber die Meldung: Typen unverträglich)

Private Sub neuerStatus_Click()
On Error GoTo Err_neuerStatus_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "frm_AUFTRAGSSTATUS_NEU"

stLinkCriteria = "[AUFTR_NR] =" & Me![AUFTR_NR]
DoCmd.OpenForm stDocName, GoToRecord, , acNewRec, stLinkCriteria

Exit_neuerStatus_Click:
Exit Sub

Err_neuerStatus_Click:
MsgBox Err.Description
Resume Exit_neuerStatus_Click

End Sub

Die anschließende Aktualisierung des Auftragsformulars kann ich mir mit einem Makro basteln, aber vielleicht gibt es ja auch einen Code...

Danke & Gruß, Michi

J_Eilers
07.07.2006, 10:03
Hi,

Falls es sich nicht um eine Zahl handelt, muss der Wert in Hochkommata:

stLinkCriteria = "[AUFTR_NR] ='" & Me![AUFTR_NR] & "'"

dual_purpose
07.07.2006, 13:32
Klappt leider trotzdem nicht...
Liegt wohl an dieser Zeile:
DoCmd.OpenForm stDocName, GoToRecord, , acNewRec, stLinkCriteria

Meldung: Typen unverträglich

Gruß, Michi

J_Eilers
10.07.2006, 06:16
DoCmd.OpenForm stDocName, , , stLinkCriteria

dual_purpose
10.07.2006, 08:47
Hi, hat auch nicht geklappt, kommt die Meldung: Die Aktion openForm wurde abgebrochen. Hier nochmal der Code:

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "frm_AUFTRAGSSTATUS_NEU"

stLinkCriteria = "[AUFTR_NR] ='" & Me![AUFTR_NR] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
usw.

J_Eilers
10.07.2006, 09:13
Ist Auftr_Nr eine Zahl oder ein Text?

dual_purpose
10.07.2006, 09:27
Die Auftr_Nr ist eine Zahl.

J_Eilers
10.07.2006, 09:31
Auch auf Tabellenebene?

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "frm_AUFTRAGSSTATUS_NEU"

stLinkCriteria = "[AUFTR_NR] =" & Me![AUFTR_NR]
DoCmd.OpenForm stDocName, , , stLinkCriteria

dual_purpose
10.07.2006, 09:43
Si. Die tbl_Auftragsverwaltung erzeugt diese Zahl (Auftr_Nr) per Autowert. Die andere Tabelle tbl_Auftragsstatus enthält die Spalte Auftr_Nr als Zahlenfeld. Wenn ich einen neuen Status setze, wird die Auftr_Nr dort gespeichert.

J_Eilers
10.07.2006, 10:59
Bekommst du immer noch eine Fehlermeldung?

dual_purpose
10.07.2006, 12:45
Nein, jetzt natürlich nicht mehr, doch die gewünschte Funktion ist das nicht - ist ja genau mein Problem!

Das Formular soll öffnen im Status 'hinzufügen' und beim speichern oder schließen den neuen Status der Auftr_Nr zuordnen. Momentan macht das Formular auf und zeigt den letzten Status zur Auftr_Nr an.

J_Eilers
10.07.2006, 13:46
Autsch, das hatte ich so nicht verstanden:

docmd.OpenForm "DeinForm",,,,acFormAdd

'Weiß nicht, ob so etwas schon aussreicht:
Forms!AnderesForm!Feld = Me!Feld

dual_purpose
10.07.2006, 14:21
Das war schon ganz nah dran! Jetzt muß nur noch die Auftr_Nr des Auftrags in der Status-Tabelle ("tbl_AUFTRAGSSTATUS") gespeichert werden - was so nicht passiert ist - dann ist's fertig!

stDocName = "frm_AUFTRAGSSTATUS_NEU"

stLinkCriteria = "[AUFTR_NR] =" & Me![AUFTR_NR]
DoCmd.OpenForm "frm_AUFTRAGSSTATUS_NEU", , , , acFormAdd

J_Eilers
10.07.2006, 14:40
Hm, wenn ich nun wüsste in welchem Formular sich das Feld befindet...versuchs mal mit einem DoCmd.RunCommand acCmdSaveRecord? Oder beschreibs doch genauer.

dual_purpose
10.07.2006, 15:10
Auftragserfassung: frm_AUFTRAGSVERWALTUNG (AUFTR_NR, Autowert); hier ist der Button, der das Formular für die Statuserfassung öffnet.

Statuserfassung: frm_AUFTRAGSSTATUS_NEU (AUFTR_NR, Zahlenfeld - worin die AUFTR_NR dann gespeichert werden soll). Ich habe ca. 10 Statis hinterlegt, die jeweils ein einziger Auftrag haben kann, mit Datum, damit die Aufträge zurückverfolgbar sind. Das hat als Unterformular bereits funktioniert, da die Zuordnung zum Auftrag direkt gegeben ist. Wenn man allerdings aus dem Unterformular ein pop-up macht, dann ist die Zuordnung nicht mehr gegeben.

J_Eilers
10.07.2006, 15:21
Versuchs mal so:

DoCmd.RunCommand acCmdSaveRecord
DoCmd.OpenForm "frm_AUFTRAGSSTATUS_NEU", , , , acFormAdd
Forms!frm_Auftragsstatus_Neu!Auftr_Nr = Me!Auftr_Nr

Dazu muss die Auftragsnummer aber auch in der Datenherkunft des Formulars vorhanden sein.

dual_purpose
10.07.2006, 15:40
HURRRAAA! Es hat geklappt! Vielen Dank für deine Geduld!

Gruß, Michi