Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
ID von Unterformular in Combibox des Hauptformular auswählen
zurück: Unterformular // verschiedene Varianten eines Artikels weiter: Hintergrund oberhalb eines Registelem. nebeben den Reitern Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
MichiCH
Gast


Verfasst am:
22. Jul 2011, 14:01
Rufname:

ID von Unterformular in Combibox des Hauptformular auswählen - ID von Unterformular in Combibox des Hauptformular auswählen

Nach oben
       Version: Office 2007

Hallo zusammen
Ich bin neu hier und auch mit Access eher ein Neuling. Folgendes Problem ist bei der Erstellung einer Stiftungsdatenbank aufgetreten:
Im Hauptformular wird ein Projekt und die Anfragen an Stiftungen neu erfasst. Dabei kann aus eine Kombinationsfeld der Projektleiter ausgewählt werden mit Vor- und Nachname (verknüpft im gleichen Feld). Falls der PL nicht existiert oder man sowieso über den Button einen neuen erfassen will, öffnet sich als Popup das Unterformular in dem Name, Tel,Mail etc. eingegeben werden kann. In diesem Unterformular gibts den Button Speichern und schliessen. Funktioniert alles soweit (auch die aktualisierung der Combibox), doch wie wähle ich den soeben erstellten Projektleiter automatisch aus? Folgenden Code hab ich beim Button hinterlegt:
Code:
Private Sub SpeichernProjektLeiter_Click()
    DoCmd.RunCommand acCmdSaveRecord
    Forms!frmProjekte!fiProjektLeiter.Requery
   'vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
    Forms!frmProjekte!fiProjektLeiter = Forms!fsubProjektleiter!IDProjektleiter
   '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    DoCmd.Close acForm, "fsubProjektLeiter"
End Sub
Das Problem scheint in der kursiven Zeile zu liegen. Die Auswahl funktioniert, jedoch nicht falls ich einen bestehenden PL verändern möchte über das gleiche Formular.
Ich hoffe, ich habe mich verständlich ausgedrückt und danke schon im Voraus für eure Hilfe.

Gruss Michi
MissPh!
Office-VBA-Programmiererin


Verfasst am:
22. Jul 2011, 23:30
Rufname:
Wohnort: NRW


AW: ID von Unterformular in Combibox des Hauptformular auswä - AW: ID von Unterformular in Combibox des Hauptformular auswä

Nach oben
       Version: Office 2007

Hallo,

bei einem Kombinationsfeld gibt es die Eigenschaft "Bei nicht in Liste", die solltest du nutzen.
Und die Eigenschft "Nur Listeinträge" auf "Ja" einstellen.

_________________
Gruß MissPh!
MichiCH
Gast


Verfasst am:
25. Jul 2011, 08:34
Rufname:

AW: ID von Unterformular in Combibox des Hauptformular auswä - AW: ID von Unterformular in Combibox des Hauptformular auswä

Nach oben
       Version: Office 2007

MichiCH - 25. Jul 2011, 08:18 hat folgendes geschrieben:
Hallo MissPH!
und danke für deine Antwort. Die Eigenschaft "Nur Listeneinträge" war bereits auf Ja gesetzt. Wie meinst du das mit der Eigenschaft "Bei nicht in Liste"? Es soll meiner Meinung nach schon auch da das öffnen des Unterformulars definiert werden. Zusätzlich soll der User aber die Möglichkeit haben direkt einen neuen PL zu erfassen oder den bestehenden zu verändern.
Ausgewählt wird über Vor- und Nachname und in einzelnen, nicht bearbeitbaren Feldern, werden die Daten zum jeweiligen PL angezeigt. Für den User sollte es schlussendlich so sein, dass er entweder im Kombinationsfeld einen Projektleiter auswählen kann, über einen Button einen neuen erfassen oder über einen 2. Button den ausgewählten mutieren kann. Über beide Buttons wird das gleiche Unterformular geöffnet. Auch wenn ich jetzt dieses Formular über "bei nicht in Liste" öffne besteht ja weiterhin das Problem, dass die Daten über den Button "Speichern und Schliessen" (im UFO) in der Combibox des Hauptformulars gleich ausgewählt werden sollen.
Der Fehler besagt übrigens: "Laufzeitfehler '7878': Die Daten wurden geändert" Über Debuggen wird dann die bereits erwähnte Zeile markiert (das wäre ja schon korrekt, dass ich so die Eingabe des Unterformulars im Combifeld auswähle oder???). Wenn komplett neue Daten eingegeben werden, funktioniert alles wie gewünscht. Der Fehler erscheint nur wenn bestehende Daten verändert werden. Ich versteh das nicht, denn ich verändere ja weder den fi in der Combibox noch die ID des Projektleiters, sondern lediglich die dazugehörigen Werte. Ich hoffe das ganze Problem ist jetzt etwas klarer.
Merci und Gruss
Michi

zur Info:
Konnte das Problem lösen und die Fehlermeldung erscheint nicht mehr. Hab den Code (Button "Speichern und Schliessen" im UFO) mit einer If Else erweitert:
Code:
    DoCmd.RunCommand acCmdSaveRecord
    Forms!frmProjekte!fiProjektLeiter.Requery
    If Not Forms!frmProjekte!fiProjektLeiter = Forms!fsubProjektleiter!IDProjektleiter Then
        Forms!frmProjekte!fiProjektLeiter = Forms!fsubProjektleiter!IDProjektleiter
        DoCmd.Close acForm, "fsubProjektLeiter"
      Else
        DoCmd.Close acForm, "fsubProjektLeiter"
    End If
Wahrscheinlich gehts auch eleganter. Wäre froh um eure Meinung. Merci
MissPh!
Office-VBA-Programmiererin


Verfasst am:
25. Jul 2011, 09:31
Rufname:
Wohnort: NRW

AW: ID von Unterformular in Combibox des Hauptformular auswä - AW: ID von Unterformular in Combibox des Hauptformular auswä

Nach oben
       Version: Office 2007

Hallo,

zunächst einmal: Von einem "Unterformular" spricht man nur bei einem in ein (Haupt)Formular eingebetteten Formular. Was du zur Eingabe neuer Projektleiter einsetzt ist kein Unterformular!
Zitat:
Auch wenn ich jetzt dieses Formular über "bei nicht in Liste" öffne besteht ja weiterhin das Problem, dass die Daten über den Button "Speichern und Schliessen" (im UFO) in der Combibox des Hauptformulars gleich ausgewählt werden sollen.
Das Problem entsteht nicht, wenn man die NotInList-Prozedur bestimmungsgemäß einsetzt. Machst du keinen Gebrauch vom Rückgabewert (Response) der Funktion? Die Access-Hilfe bietet hier Aufklärung.

Was das Ändern bestehender Einträge betrifft, so musst du das natürlich selbst lösen.

_________________
Gruß MissPh!
MichiCH
Gast


Verfasst am:
25. Jul 2011, 10:54
Rufname:


AW: ID von Unterformular in Combibox des Hauptformular auswä - AW: ID von Unterformular in Combibox des Hauptformular auswä

Nach oben
       Version: Office 2007

Merci für deine Hilfe. Hab da schon wieder einiges dazugelernt!
Da ich bei NotInList ein Popup-Formular (fälschlicherweise von mir als Unterformular bezeichnet) öffne, seh ich noch nicht ganz durch, wie ich dann die darin eingegebenen Werte weiterverwende. Mit anderen Worten: Wie ich innerhalt der Funktion NotInList das Formular öffne, die darin eingegebenen Werte über einen Button speichere, im Hauptformular auswähle und über den gleichen Button das Popupformular schliesse. Es ist eben so, dass im Popup neben dem Namen auch Telefon und E-Mail des Projektleiters angegeben werden. In der Combibox jedoch wird nur der Vor-&Nachname angezeigt. Deshalb der Aufwand mit einem 2. Formular.
Wie dem auch sei, für meine Zwecke habe ich das Ziel ja erreicht, wenn auch nicht ganz professionell Wink. Nochmals herzlichen Dank, dass du dir die Zeit genommen hast.
Gruss Michi
MissPh!
Office-VBA-Programmiererin


Verfasst am:
25. Jul 2011, 11:07
Rufname:
Wohnort: NRW

AW: ID von Unterformular in Combibox des Hauptformular auswä - AW: ID von Unterformular in Combibox des Hauptformular auswä

Nach oben
       Version: Office 2007

Zitat:
Machst du keinen Gebrauch vom Rückgabewert (Response) der Funktion?
Auf den Kernsatz meiner Antwort hast du leider nicht reagiert...
_________________
Gruß MissPh!
MichiCH
Gast


Verfasst am:
25. Jul 2011, 12:21
Rufname:

AW: ID von Unterformular in Combibox des Hauptformular auswä - AW: ID von Unterformular in Combibox des Hauptformular auswä

Nach oben
       Version: Office 2007

Entschuldige. Verwende den Rückgabewert nicht wirktlich. Verstehe auch nicht ganz wo ich den genau verwenden sollte. In meinem Fall wird öfters ein neuer Projektleiter über die Buttons (Neu oder mutieren) erfasst und das NotInList verwende ich als zusätzliche Möglichkeit um das Popup-Formular (über ein Makro) zu öffnen. Insofern muss ich den Code des Speichern-Buttons im Formular "PLErfassen" so erstellen, dass er immer gleich den Projektleiter auswählt der gerade erstellt/bearbeitet wurde.
MissPh!
Office-VBA-Programmiererin


Verfasst am:
25. Jul 2011, 12:40
Rufname:
Wohnort: NRW

AW: ID von Unterformular in Combibox des Hauptformular auswä - AW: ID von Unterformular in Combibox des Hauptformular auswä

Nach oben
       Version: Office 2007

Dann hast du wohl auch nicht die Access-Hilfe zu diesem Punkt gelesen?
Mehr als gut(gemeint)e Ratschläge geben kann ich nicht, wenn du noch nicht einmal den Code deiner Prozedur zeigst...

_________________
Gruß MissPh!
MichiCH
Gast


Verfasst am:
25. Jul 2011, 14:18
Rufname:

AW: ID von Unterformular in Combibox des Hauptformular auswä - AW: ID von Unterformular in Combibox des Hauptformular auswä

Nach oben
       Version: Office 2007

Dochdoch die Hilfe hab ich durchforstet. Doch ging es ja nicht um eine explizite Funktion, sondern darum welchen Code ich dem Klick-Ereignis des Speichern-Buttons zuweisen muss um den Projektleiter im Hauptformular aus der Combibox auszuwählen. Warum das so und nicht anders gelöst wurde, scheint mir für die Fragestellung zweitrangig. Und den Code um den es geht hab ich von Beginn an gepostet (jetzt mit der IF-Else-Schleife erweitert):
Code:
Private Sub SpeichernProjektLeiter_Click()
    DoCmd.RunCommand acCmdSaveRecord
    Forms!frmProjekte!fiProjektLeiter.Requery
    If Not Forms!frmProjekte!fiProjektLeiter = Forms!fsubProjektleiter!IDProjektleiter Then
        Forms!frmProjekte!fiProjektLeiter = Forms!fsubProjektleiter!IDProjektleiter
        DoCmd.Close acForm, "fsubProjektLeiter"
      Else
        DoCmd.Close acForm, "fsubProjektLeiter"
    End If 
End Sub
Auch hab ich erwähnt, dass ich für das NotInList-Ereignis keine Prozedur, sondern ein Makro hinterlegt hab, das lediglich dazu dient, das Popupformular zu öffnen.
Dein Ratschlag, die Not In List Funktion zu verwenden war sicherlich gut gemeint, jedoch nicht das wonach ich gesucht hab, da im Normalfall die Buttons verwendet werden um neue Projektleiter zu erfassen oder bestehende zu mutieren.
Die ursprüngliche Frage war wie ich in einem Popupformular (sorry für die Verwirrung, da als UFo benannt!) mit dem obigen Code über einen Button den soeben erstellten Eintrag speichere und in ein Kombinationsfeld, das im Hauptformular ist, übertragen kann. Das Kombifeld fiProjektLeiter befindet sich in frmProjekte.
Ich wollte möglichst nur den Code zeigen um den es geht. Vielleicht macht man das Ganze in professionellen Kreisen anders und in einer einzelnen Prozedur, die das Formular öffnet, die Einträge speichert, überträgt etc. Wie das geht, übersteigt meine Kenntnisse der Programmiersprache. Ich habe je eine Code bei den Buttons hinterlegt um das Formular bei einem neuen Eintrag zu öffnen oder beim aktuellen Projektleiter. Aber falls du etwas anderes mit der Prozedur meinst, wäre ich dir dankbar, wenn du das auch für einen Access-Neuling präzisieren könntest, was du damit meinst.
MissPh!
Office-VBA-Programmiererin


Verfasst am:
25. Jul 2011, 14:50
Rufname:
Wohnort: NRW

AW: ID von Unterformular in Combibox des Hauptformular auswä - AW: ID von Unterformular in Combibox des Hauptformular auswä

Nach oben
       Version: Office 2007

Zitat:
die Not In List Funktion zu verwenden war sicherlich gut gemeint, jedoch nicht das wonach ich gesucht hab
Doch, du fragtest danach, wie der neue Wert im Kombifeld direkt ausgewählt werden kann und genau dafür sorgt der Einsatz der NotInList-Prozedur - sobald man es richtig macht. Wink

Du unterstützt ja sicher nicht nur die gezielte Neueingabe eines Projektleiters, sondern auch dann, wenn das bei der Eingabe "passiert".
Da könnte dann folgende Prozedur helfen:
Code:
Private Sub fiProjektLeiter_NotInList(NewData As String, Response As Integer)
    If MsgBox ("Der gewählte Eintrag ist nicht vorhanden, soll er hinzugefügt werden?", vbYesNo) = vbYes Then
        DoCmd.OpenForm "fsubProjektLeiter" , , , , , acDialog, NewData
                                                              ' ---> OpenArgs in fsubProjektLeiter übernehmen!!! 
        Response = acDataErrAdded
      Else
        Response = acDataErrContinue
    End If
End Sub
Mit Hilfe des OpenArgs-Parameters kannst du im aufgerufenen Formular auch gleich den Fall unterscheiden, ob es bereits eine Eingabe gibt oder nicht und ob das Kombifeld aktualisiert werden muss oder nicht, denn bei richtiger Anwendung von NotInList übernimmt Access alles erforderliche.
_________________
Gruß MissPh!
MichiCH
Gast


Verfasst am:
25. Jul 2011, 15:17
Rufname:


AW: ID von Unterformular in Combibox des Hauptformular auswä - AW: ID von Unterformular in Combibox des Hauptformular auswä

Nach oben
       Version: Office 2007

Ok. Danke dir für die Hilfe mit der NotInList-Funktion. Dass hier die Wertübernahme direkt funktioniert, ist mir inzwischen klar, auch wie das geht. Aber ich wollte ja einen neuen Datensatz (Projektleiter) erfassen indem ich das Formular über einen Button öffne und nicht indem ich den Namen im Kombifeld eingebe. Mir ist klar, dass ich so nicht die eigendliche Funktion eines Kombifeldes nütze (Auswahl und Eingabe). Ich wusste nur nicht wie ich den Button im Popupform. definieren muss, damit er Speichert, Schliesst und den eingegebenen PL im Kombinationsfeld auswählt. Dies hab ich ja jetzt erreicht, obwohl es vieleicht auch eleganter lösbar wäre.
Nichts für Ungut! Wink
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Unterformular für Artikelbestellung 5 JochenGAST 303 01. März 2011, 20:10
KlausMz Unterformular für Artikelbestellung
Keine neuen Beiträge Access Tabellen & Abfragen: Formular schließen, wenn Unterformular keine Daten mehr 4 Jan Maier 828 18. Feb 2011, 18:11
Jan Maier Formular schließen, wenn Unterformular keine Daten mehr
Keine neuen Beiträge Access Tabellen & Abfragen: Variabler Wert in einem Abhängigem Unterformular 7 Ogni 588 07. Feb 2011, 18:45
Bitsqueezer Variabler Wert in einem Abhängigem Unterformular
Keine neuen Beiträge Access Tabellen & Abfragen: Leere Abfrage wenn kein Wert im Unterformular??? 5 Gast 587 23. Dez 2010, 15:02
Willi Wipp Leere Abfrage wenn kein Wert im Unterformular???
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage: Benutzer kann benötigten wert auswählen 0 logical. 308 10. Dez 2010, 15:36
logical. Abfrage: Benutzer kann benötigten wert auswählen
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage in Unterformular 3 Hundshamer 301 25. Mai 2010, 11:22
blackoutNO Abfrage in Unterformular
Keine neuen Beiträge Access Tabellen & Abfragen: Kriterium zur Filterung im Formular auswählen 2 Daniel V. 288 15. Sep 2009, 08:30
Daniel V. Kriterium zur Filterung im Formular auswählen
Keine neuen Beiträge Access Tabellen & Abfragen: Datensätze außerhalb von Zeitspannen auswählen 2 moccamixer 276 19. Apr 2008, 23:03
Gast Datensätze außerhalb von Zeitspannen auswählen
Keine neuen Beiträge Access Tabellen & Abfragen: M:N Beziehung, DS inkl. Autowert im Unterformular einfügen 5 wolfsmilch 2624 10. Feb 2008, 20:08
KlausMz M:N Beziehung, DS inkl. Autowert im Unterformular einfügen
Keine neuen Beiträge Access Tabellen & Abfragen: Unterformular mit zusätzlicher Bedingung aufrufen 1 infco 623 08. Feb 2008, 10:43
Da Oansa Unterformular mit zusätzlicher Bedingung aufrufen
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage-Kriterium aus Register Unterformular 2 Bullett 2113 05. Sep 2007, 21:44
Bullett Abfrage-Kriterium aus Register Unterformular
Keine neuen Beiträge Access Tabellen & Abfragen: Befehlsschaltläche bezieht sich auf Unterformular! 12 seppel27 808 15. Aug 2007, 13:07
seppel27 Befehlsschaltläche bezieht sich auf Unterformular!
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Word Serienbriefe