PDA

Vollständige Version anzeigen : Details Anzeigen


missShiva
21.09.2001, 08:36
Ich habe in meinem Formular ein Unterformular. In diesem Unterformular werden nur die Wichtigsten Daten dargestellt.Ich habe nun eine Befehlsschaltfläche erstellt, welche die Details zum angewehlten Daten liefern sollte. Ich habe ein neues Formular für die Details gemacht. Mein Problem ist nun, dass es nicht die Details der angwähten Daten zeigt. sondern irgend einer. Ich hoffe ihr könnt mir helfen.

Herzlichen Dank für eure bemühungen.
MfG Shiva

hermi
21.09.2001, 09:00
servusla shiva,

Frage:
Wie kann ich ein zweites Formular mitlaufen lassen, so dass es beim Springen auf den nächsten DS synchronisiert wird?

Der Datensatzherkunft des Detailformulars, dass mitlaufen soll, liegt eine Abfrage zugrunde, die als Filter für das Detailformular dient. Man benötigt ein Feld, das in beiden Formularen vorkommt und das den Datensatz eindeutig charakterisiert. In das Kriterienfeld der Abfrage schreibe dort hinein:
[Formulare]![Hauptformular]![Name der Datensatz-ID]
Das heißt, im Detailformular wird nur der Datensätze angezeigt, der gerade auf dem Hauptformular angezeigt wird. Wird nun zu einem anderen Datensatz gegangen, tritt das Ereignis Current ein. Die Datensatzherkunft der Abfrage wird jetzt erneut abgefragt und die Anzeige aktualisiert.

In die Formulareigenschaft des Hauptformulars "Beim Anzeigen" schreibe:

Private Sub Form_Current()

Forms!Zusammensetzung.Requery
'Wenn zum nächsten DS gesprungen wird, soll das Formular
'Zusammensetzung aktualisiert werden

End Sub

stammt aus den FAQ von spotlight

hth hermi

missShiva
21.09.2001, 09:04
@Hermi herzlichen Dank!! Ich werde es gleich mal versuchen...

MfG Shiva

bwacki
21.09.2001, 09:12
Hallo MissShiva,

ich habe dasselbe Problem allérdings nicht mit Unterformular gelöst, sondern mit einem Listen(Endlos-)formular und einer Schaltfläche, die bei Click das Detailformular zu dem jeweiligen DS öffnet

Private Sub btnDetails_Click()
On Error GoTo Err_btnDetails_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "SAP_Aufträge" '(Name des Detailforms)

stLinkCriteria = "[Auftragsspiegel_VBELN]=" & Me![AuftragNr]
'VBELN ist inder genutzten Abfrage das eindeutige Schlüsselfeld, AuftragNr der Name des Textfeldes im Listenformular

DoCmd.Close
DoCmd.OpenForm stDocName, , , stLinkCriteria


Exit_btnDetails_Click:
Exit Sub

Err_btnDetails_Click:
MsgBox Err.Description
Resume Exit_btnDetails_Click

End Sub

und das klappt, man sieht immer nur den einen DS, der im Listenformular gewählt wurde

Viel Erfolg!

bwacki

missShiva
24.09.2001, 09:08
Ich habe nun diesen Code verwendet...
Private Suchbeg_Click()


Dim stDocName As String
Dim stLinkcriteria As String

stDoc = "Detail" '(Name des Detailsforms)

stLinkcriteria = "[Suchbeg1_Suchbegriff1]=" & Me![Suchbegriff1]


DoCmd.Close
DoCmd.OpenForm Formular1, , , Suchbeg1_Suchbegriff1

End Sub
Aber es läuft nicht. Was habe ich falsch gemacht??
Ich kann am Montagmorgen noch nicht so denken. Ich hoffe euch geht es besser ;-)

MfG Sandra
PS: herzlichen dank für eure bemühungen

Anne Berg
24.09.2001, 09:13
Hast Du schon mal drüber nachgedacht wozu Du den String 'stLinkCriteria' aufgebaut hast??

missShiva
24.09.2001, 09:22
Ja, dass man immer nur den einen DS sicht, welcher im Listenformular gewählt wurde.

Stema
24.09.2001, 09:33
Hallo missShiva,

ist Dein Suchbegriff nicht Deine ID? Dann ist es wahrscheinlich eine String-Variable. Dann:
stLinkcriteria = "[Suchbeg1_Suchbegriff1]='" & Me![Suchbegriff1] & "'"

Bei Datum:
stLinkcriteria = "[Suchbeg1_Suchbegriff1]=#" & Me![Suchbegriff1] & "#"
Das Datum muß dann das Format #mm/dd/yy# haben.

Anne Berg
24.09.2001, 09:54
Ja, und dann sollte man diesen String auch beim Öffnen verwenden.

Stema
24.09.2001, 09:57
Richtig, das habe ich übersehen.

DoCmd.OpenForm Formular1, , , Suchbeg1_Suchbegriff1
durch DoCmd.OpenForm stDoc, , , stLinkCriteria ersetzen.

missShiva
24.09.2001, 10:21
Ich habe sie stDoc und stLinkCriteria ersetz jetzt sieht es so aus:
Private Sub Befehl13_Click()


Dim stDocName As String
Dim stLinkcriteria As String

stDoc = "Formular1" '(Name des Detailsforms)

stLinkcriteria = "[Detail_Suchbegriff1]='" & Me![Suchbegriff1] & "'"


DoCmd.Close
DoCmd.Open stDoc, , , stLinkcriteria
End Sub

Aber jetzt kommt immer die Fehlermeldung:
Objekt unterstützt diese Eigenschaft oder Methode nicht... Fehler Verursacht der Befehl DoCmd.Open Form stDoc,,,StLinkCriteria

Bitte helft mir, ich bin am verzweifeln.....
PS: liegt es vieleicht daran, dass ich MS97 benuze??

Anne Berg
24.09.2001, 11:53
Ja, wenn da mal 'OpenForm' und 'stDocName' stehen würden...

Gut gemeinter Tipp: Mach mal Pause!

:) :)

missShiva
24.09.2001, 11:58
Herzlichen dank @all, die mir geholfen haben!!

Mattes
24.09.2001, 12:04
@Anne Berg:

Hast Du schonmal darüber nachgedacht....
Nein, hilf doch bitte!


Ja, man sollte den String beim öffnen verwenden.
Wie?!


JA, wenn da mal Open....
Wo denn?!


Anne, sei nicht sauer, aber poste doch mal eine Lösung, statt geheimnissvoller Rückfragen oder Hinweise. Du siehst doch, das Deine Tipps nicht umgesetzt werden können.

Anne Berg
24.09.2001, 12:14
@Mattes
Bei missShiva scheint der Groschen ja inzwischen gefallen zu sein, für Dich gerne noch mal ausführlicher:

Schau Dir doch den letzten Code-Auszug nochmal genau an. Da steht einmal 'stDocName' und dann wird 'stDoc' verwendet. Dann steht da offensichtlich 'Open Form', mit Blank dazwischen, muß aber in einem Wort geschrieben werden.

Bei korrekter Initialisierung der String-Variablen heißt es dann:
DoCmd.OpenForm stDocName,,,stLinkCriteria

Damit wird dann das Formular mit Filterbedingung geöffnet.

Apropos - von 'sauer werden' kann keine Rede sein, da steh ich drüber! (Habe mir schon mal wegen allzu detaillerter Hilfestellung einen Rüffel eingeholt - was soll's?!)

Gruß Anne :)

missShiva
24.09.2001, 13:24
Ich bins schon wieder. Irgendetwas funktioniert immer noch nicht. Wenn ich nun auf die Befehlschaltfläche Details klicke, kommt eine Meldung: Parameterwert eingeben....Was habe ich übersehen oder vergessen? Wieso kommt diese MsgBox??

@Anne: Ich würde mir ja gerne eine Pause gönnen, denn ich kann nicht mer klar denken. Aber leider kann ich mir erst eine Pause gönnen, wenn das ganze läuft..

Stema
24.09.2001, 14:37
Also missShiva,

die Parameter-Abfrage wird immer gestartet, wenn ein Feld in einem Formular, einer Berichts auf Daten in einem Formular zugreifst, das aber nicht geöffnet ist.
Jetzt mußt Du mal alle Deine Felder in dem Abfrage, einem Bericht beim Öffnen nicht bekannt ist, z.B. wenn Du bem Öffnen eines entsprechenden Objekt auf richtige Schreibweise und Vorhandensein überprüfen.