Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: silentwolf am September 04, 2018, 18:58:48

Titel: Listenfeld soll anderes Formular öffnen Fehler
Beitrag von: silentwolf am September 04, 2018, 18:58:48
Hallo an alle!

Ich hab folgenden Code der mir ein neues DetailFormular öffnet wenn ich auf das Listenfeld doppelt clicke..

Private Sub Anzeigen()
    If Not IsNull(Me!lstKontakte) Then
        DoCmd.OpenForm "frmKontakteDetailAnsicht", _
            WhereCondition:="kon_id = " & Me!lstKontakte, _
            WindowMode:=acDialog
    End If
End Sub

Nun leider werden an manchen Datensätzen nach dem doppelclick das frmKontakteDetailAnsicht mit einem leeren Datensatz geöffnet.
Meine Frage was ist am obrigen Code zu verbessern damit dieser reibungslos funktioniert?

Vielen Dank für Eure Hilfe!

Gruß Albert
Titel: Re: Listenfeld soll anderes Formular öffnen Fehler
Beitrag von: MzKlMu am September 04, 2018, 19:10:22
Hallo,
von Doppelklick ist da nichts zu sehen.
Das IsNull kannst du Dir auch sparen. Wenn das Feld den Fokus hat (was sein muss) ist es nicht Null.
Wenn ein leerer Datensatz angezeigt wird, gibt es keine Daten.
Titel: Re: Listenfeld soll anderes Formular öffnen Fehler
Beitrag von: ebs17 am September 04, 2018, 19:11:15
Zitatmit einem leeren Datensatz geöffnet
Nun, Du filterst ja. Da sollte man es immer für möglich halten, dass die Datenherkunft den gewünschten Datensatz nicht enthält.

Zitatreibungslos funktioniert?
Ein leeres Recordset ist auch ein Ergebnis. Welche Probleme erwartest Du davon?

Wenn Du die Datenherkünfte derart anlegst, dass die im Listenfeld auszuwählenden ID's garantiert im Formularrecordset vorkommen, würdest Du immer einen "Treffer" landen.
Titel: Re: Listenfeld soll anderes Formular öffnen Fehler
Beitrag von: silentwolf am September 04, 2018, 19:16:30
Hallo Danke für Eure Anworten!

Private Sub lstKontakte_DblClick(Cancel As Integer)
    Anzeigen
End Sub


Diesen Code habe ich zuerst nicht mit eingefügt tut mir leid!

Es werden bein nicht allen Datensätzen die Detailansicht angezeigt.
Bei den meisten schon aber eben nicht bei allen..

Das Listenfeld wird mit einer Abfrage gefüllt und alle Datensätze haben eine ID ist ja der Autowert...
Das mit dem IsNull kann ich weg machen Danke für die Info!
Aber warum kann es denn sein das bei manchen DS das frmKontakteDetailsAnsicht keine DS zurück gibt? .(
Ist der Code oben nicht richtig? Oder muss der geändert werden?



Titel: Re: Listenfeld soll anderes Formular öffnen Fehler
Beitrag von: MzKlMu am September 04, 2018, 19:36:17
Hallo,
welchen Sinn soll es machen, den Code noch mal in eine extra Sub auszulagern? Das dürfte ziemlich überflüssig sein und macht es nur komplizierter. Und sparen tust Du auch nix, im Gegenteil.
Private Sub lstKontakte_DblClick(Cancel As Integer)
        DoCmd.OpenForm "frmKontakteDetailAnsicht", _
            WhereCondition:="kon_id = " & Me!lstKontakte, _
            WindowMode:=acDialog
End Sub

ZitatAber warum kann es denn sein das bei manchen DS das frmKontakteDetailsAnsicht keine DS zurück gibt?
Weil es keine Datensätze dazu gibt.
Das kannst Du doch völlig unabhängig vom Listenfeld mal prüfen, indem Du in der Abfrage die ID (aus dem Listenfeld) manuell eingibst.
Da wird garantiert nichts angezeigt. Der Fehler dürfte in der Datenherkunft des Listenfeldes liegen. Da werden Daten angezeigt zu denen es kein Detail gibt.
Titel: Re: Listenfeld soll anderes Formular öffnen Fehler
Beitrag von: silentwolf am September 04, 2018, 19:48:27
Hallo Klaus,
na ja ich hab es ausgelagert gehabt.. werde es ändern daran soll es nicht scheitern. )

Na es sind im Listenfeld nur Teile des DS angezeigt und das Formular frmKontaktDetails zeigt die dazugehörigen Felder also alle Felder des DS an.
Also gibt es für jeden DS im Listfeld einen kompletten DS auch im frmKontakteDetailAnsicht .. zumindest sollte es einen geben.
Tut mir leid ist leider so.

Titel: Re: Listenfeld soll anderes Formular öffnen Fehler
Beitrag von: MzKlMu am September 04, 2018, 19:54:36
Hallo,
Zitatzumindest sollte es einen geben.
dieser Satz lässt Zweifel aufkommen. Hast Du es wie vorgeschlagen geprüft ?

PS:
Das mit der überflüssigen Prozedur war ja nur ein dezenter Hinweis zur Vereinfachung. In einem halben Jahr weißt Du nichtmehr was der Doppelklick genau machst und muss dann extra in der weiteren Prozedur nachsehen.
Titel: Re: Listenfeld soll anderes Formular öffnen Fehler
Beitrag von: silentwolf am September 04, 2018, 19:56:39
Im frmKontakteDetailAnsicht ist eine Registerkarte.. und im ersten Register sind die Kontakte aus der tblKontakte mit allen Feldern eingetragen.

die Registerkarte hab ich pgeMainKontakt genannt.

Vielleicht liegt hier das Problem?

Danke
Titel: Re: Listenfeld soll anderes Formular öffnen Fehler
Beitrag von: silentwolf am September 04, 2018, 20:01:04
Hi Klaus,
ich hab es mit keiner Weise schlimm aufgefasst das Du mich darauf hingewiesen hast! Finde ich ja gut!!
Es sind DS vorhanden ja.. es handelt sich ja um den selben DS nur in abgespeckter Version im Listenfeld.

Im Listenfeld habe ich eine Abfrage die auf der tblKontake beruht.
Und im Registersteuerelement habe ich dann die Stammdaten komplet hinterlegt.
Das listenfeld ist nur als Startbildschirm gedacht wo ich Daten auswählen kann und diese dann im Registersteuerelment ansehe oder ändern kann.
Hoffe das es nun besser erklärt ist.
Titel: Re: Listenfeld soll anderes Formular öffnen Fehler
Beitrag von: MzKlMu am September 04, 2018, 20:01:38
Hallo,
Register spielen keine Rolle.
Hast Du es wie bereits mehrfach vorgeschlagen mal manuell überprüft ?

ID aus dem Listenfeld ermitteln das keinen DS anzeigt. Mit diese ID als Kriterium in die Abfrage (für das Formular frmKontaktDetails) manuell als Kriterium eintragen.
Gibt es dann DS ?
Titel: Re: Listenfeld soll anderes Formular öffnen Fehler
Beitrag von: silentwolf am September 04, 2018, 20:06:16
Hallo,
ja hab ich Klaus.
Es gibt die DS..
Titel: Re: Listenfeld soll anderes Formular öffnen Fehler
Beitrag von: silentwolf am September 04, 2018, 20:16:13
Hallo Klaus,
hab den Fehler gefunden!
Im Registersteuerelement war der Fehler dort war noch eine SELECT anweisung hinterlegt mit einen falschen verknüpften Tabelle..
Warum keine Ahnung aber nun läuft es wie es soll!

Danke auf alle Fälle hab wieder was dazugelernt Dank Deiner Hilfe!