PDA

Vollständige Version anzeigen : Befehlsschaltflächen Problem


Simon
12.08.2001, 10:53
Hallo,

Ich habe ein HF "Werkstattauftrag" und in dem habe ich eine Befehlsschaltfläche "Fremdbetrag". Im HF Habe ich ein Feld "WaNr". Die Befehlsschaltfläche öffnet mir das Formular "Fremdbetrag" und auch dieses Formular hat ein Feld "WaNr".

Jetzt habe ich über den Assistenten habe ich dies gemacht aber, wenn ich jetzt die Behelsschaltfläche drücke öffnet es mir das Formular "Fremdbetrag" aber nicht mit der gleichen "WaNr" wie das HF!!

der Code un das Formular zu öffnen:

Private Sub Befehl69_Click()
On Error GoTo Err_Befehl69_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "Werkstattauftrag_Fremdbetrag"

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

Exit_Befehl69_Click:
Exit Sub

Err_Befehl69_Click:
MsgBox Err.Description
Resume Exit_Befehl69_Click

End Sub

Kann mir jemand sagen wie der Code aussehen muss das mein Problem gelöst wird??

Gruss Simon

A.S.
12.08.2001, 11:21
Hallo Simon,

siehe mal in meine Antworten in diesem Beitrag, insbesondere die letzte Antwort.
NotInList nach Arno ... (http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=47306)

Es geht zwar dort um ein KombiFeld (glaub ich ;) ) aber die Grundsätzliche Handhabung des OpenArgs-Argumentes ist die gleiche ;)

Gruß

Arno

Simon
13.08.2001, 05:42
Hallo,

es klappt leider immer noch nicht!!

Meine Verknüpfungen sind: 1:n mit referenieller Integrität, Akualiesierungsweitergabe an Detailfeld, Löschweitergabe an Detaildaternsatz!!

Dank für euere Hilfe!!

Gruss Simon

Birgit Dannenberg
14.08.2001, 11:28
Ich nehme an, Du hast zwei getrennte Formulare und nicht Haupt- und Unterformular, wie Dein Hinweis HF vermuten lassen könnte...

Wenn WaNr ein Character-String ist, mußt Du das Ganze in einfache Hochkommata setzen.

Ich vermute aber, das aufgerufene Formular ignoriert den mitgegebenen Filter. Du mußt 'Filter zulassen' (AllowFilter) auf Ja setzen UND FilterOn auf True! Und das geht wohl nur per Code.

hth Birgit

Simon
14.08.2001, 11:46
Hallo,

jetzt habe ich das gemacht was Du gesagt hast, aber es will immernoch nicht!!
Mein Formular "Fremdbetrag" ist nicht ein UF im HF sodern ein selbständiges Formular das nur mit dem Feld "WaN^r" mit dem HF verbunden ist!!

Hast Du mehr Antworten?

Gruss Simon

Birgit Dannenberg
14.08.2001, 13:14
Das muß aber so gehen!!

Bist Du den Code mal im Debugging-Mode durchgegangen? Wie sieht der Übergabestring tatsächlich aus? Ist FilterOn auf true gesetzt? Kommt irgendein Fehler???

Birgit

Simon
14.08.2001, 13:22
Hallo,

also eine Fehlermeldung bekomm ich nicht es übernimmt einfach das Feld "WaNr" nicht sondern giebt immer den Wert "0"!

Der Übergabestring lautet wie folgt:

Private Sub Fremdbetrag_einschreiben_Click()
On Error GoTo Err_Fremdbetrag_einschreiben_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "Werkstattauftrag_Fremdbetrag"

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

Exit_Fremdbetrag_einschreiben_Click:
Exit Sub

Err_Fremdbetrag_einschreiben_Click:
MsgBox Err.Description
Resume Exit_Fremdbetrag_einschreiben_Click

End Sub

Halt was muss ich bei Filter hineinschreiben, mir ist jetzt gerade aufgefallen das ich nichts drin habe?!?

und was heist "im Debugging-Mode durchgegangen"?

Gruss Simon

Birgit Dannenberg
14.08.2001, 13:31
Öffne das Formular im Entwurfsmodus und lass Dir den Code anzeigen. Setze einen Breakpoint in die Funktion Befehl69_Click. Öffne das Formular und wähle eine Nr. zur Anzeige aus. Dann kannst Du den Code zeilenweise durchlaufen und sehen was passiert, bzw. Dir die Variablen ansehen (--> Testfenster!!) und noch mehr.
Das solltest Du unbedingt mal ausprobieren!

Gruß Birgit

Morli
14.08.2001, 13:36
Hallo Simon,

hast Du in Deiner DB noch was geändert, seit Du mir das letzte Mal geschickt hast? Also ich habe es in der Version probiert, die mir vorliegt und es funktioniert einwandfrei! Wenn Du das nicht hinbekommst, dann schick mir die DB noch mal zu und ich schau mal rein!

Gruß

Rainer ;)

Simon
14.08.2001, 13:40
Hallo Rainer,

habe verschidenes geändert in der DB, werde Dir eine kopie schicken!

Danke nochmals!

Gruss Simon

Morli
14.08.2001, 14:49
Hi Simon,

mit der folgende Syntax prüft Du nach dem Öffnen des Forms "Fremdbetrag", ob es schon einen Datensatz mit deiner WaNr gibt. Wenn nicht, dann wird diese übergeben:

Dim stDocName As String
Dim stLinkCriteria As String


stDocName = "Werkstattauftrag_Fremdbetrag"

stLinkCriteria = "[WaNr]=" & Me![WaNr]

DoCmd.OpenForm stDocName, , , stLinkCriteria

If Forms(stDocName)!WaNr = 0 Then
Forms(stDocName)!WaNr = Me.WaNr
End If

Gruß

Rainer ;)

PS: Das gleiche sollte auch mit Autospesen passen!