PDA

Vollständige Version anzeigen : Gleichen DS in 2 Formularen bearbeiten


Sandrine
28.08.2001, 11:07
Immer wenn man denkt, jetzt geht´s... Dann tritt plötzlich tritt ein Problem auf, mit dem man nie gerechnet hätte...

Ich habe ein Eingabeformular "Eingabe", in dem sich nach Aktualisierung einer Checkbox im Fall True ein Unterformular öffnen soll, in das Daten eingegeben werden sollen, die eben nur in diesem Fall gebraucht werden (Daten des Vertreters eines Antragstellers).
Problem ist, daß das Unterformular beim Öffnen auf den ersten DS springt und nicht auf den, der gerade bearbeitet wird.
Nachdem ich das geschafft hab, habe ich aber einen Speicherkonflikt, da in beiden Formularen der gleiche DS bearbeitet wird.
Gut, dann das Eingabeformular während der Eingabe der Vertreterdaten schließen und über eine Schaltfläche in diesem Formular wieder öffnen.
Soweit funktioniert das, das Eingabeformular öffnet sich dann aber nicht mit dem zuvor bearbeiteten DS, mit GoToRecord erhalte ich die Meldung, ich könne nicht zum angegebenen DS springen, möglichrweise wär3 das Ende der DS-Gruppe erreicht.
Deshalb bin ich auch schon mit GoToRecord AcFirst zum ersten gesprungen und dann zum gewünschten, Fehlermeldung bleibt die gleiche.

Code im Eingabeformular:
Text104 ist ein Feld, in dem der Autowert Numer aus der Tabelle angezeigt wird, DSNummer eine öffentl. Variable, die den Wert aus diesem Feld übernimmt.


Private Sub Kontrollkästchen73_AfterUpdate()

Select Case Kontrollkästchen73
Case True
DSNummer = Me.Text104
MsgBox DSNummer
DoCmd.Close ObjectType:=acForm, ObjectName:="Eingabe"
Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "Vertreter Unterformular"

stLinkCriteria = "[Nummer]=" & DSNummer
DoCmd.OpenForm stDocName, , , stLinkCriteria

End Select

End Sub

Code aus dem Vertreterformular:
Text33 entspricht Text104 im anderen Formular

Private Sub Befehl35_Click()
DSNummer = Me.Text33
MsgBox DSNummer
DoCmd.Close

DoCmd.OpenForm "Eingabe"
DoCmd.GoToRecord , , acFirst
DoCmd.GoToRecord , , acGoTo, DSNummer
End Sub

Achja, die MsgBoxes sind nur zur Kontrolle der Variablen.

Habt Ihr eine Idee wie ich zum richtigen DS springen kann oder auch einen anderen Weg für das Problem?

Danke, Sandrine

hermi
28.08.2001, 11:19
Hallo Sandrine,


hmmm, vielleicht wäre dies ein Lösungsansatz, dass eine Aktualisierung ohne DS-Wechsel vorgenommen wird.

Schau mal hier unter Access -> Datensatzoperation -> Aktualisierung ohne DS-Wechsel
http://****************/ewf-faq/

Hoffe das ist's
cu hermi

P.S.
ups: "Spotlight" wird ja nicht angezeigt. (Warum ist unter Sonstiges im Forum erklärt.)
Der Link muss heissen www.spotlight(punkt)de/ewf-faq.de (http://spotlight(Punkt)de/ewf-faq.de)

[Dieser Beitrag wurde von hermi am 28.08.2001 editiert.]

Sandrine
28.08.2001, 11:49
Danke Hermi,

mit dem Link hatte ich tatsächlich Probleme...
Aber Dein Stichwort hat mich trotzdem auf den richtigen Weg gebracht.
Statt das Form ganz zu schließen, speichere ich den aktullelen DS mit

DoCmd.RunCommand acCmdSaveRecord

Und nun klappt alles. Ich war mir zwar sicher, das auch schon ganz am Anfang ausprobiert gehabt zu haben (ist das so richtig...? Klingt nach Grammatikunterrricht 7 Klasse...) . Aber wahrscheinlich in Verbindung mit requery, dann erfolgt ja auch ein Wechsel in DS Nr. 1.

Aber es geht und das ist die Hauptsache, danke!