Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Neue Werte eintragen in abhängigen Kombifeldern
zurück: Unterformular Verknüpfung aktualisieren weiter: SelStart in AfterUpdate funktioniert nicht ... Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
buckoli
Im Profil kannst Du frei den Rang ändern


Verfasst am:
13. Feb 2009, 23:04
Rufname:

Neue Werte eintragen in abhängigen Kombifeldern - Neue Werte eintragen in abhängigen Kombifeldern

Nach oben
       Version: Office 2k (2000)

Hallo zusammen,

werde echt verrückt, da ich mich nicht git genug auskenne. Also ich habe drei abhängige Kombinationsfelder in einem Endlosformular, das ich als UFO in ein Hauptformular einbinde.
Nach dem klassischen Tutorial heissen die drei hinten den Kombifeldern liegenden Tabellen T1, T2 und T3 mit den jeweiligen T1_ID, T2_ID.... die die hierarchische Zuordnung für die Auswalh zulassen.

Nun möchte ich aber in den Kombifelder auch bei NichtinListe über eine Ereignisprozedur Neue Einträge erlauben, die dann bei T2 und T3 auch die entsprechenden Ids von T1 bzw T2 übernehmen, damit die Zuordnung weiter klappt. Und genau das haut nicht hin. Während im Kombifeld T1 folgende Prozedur funktioniert:
Code:
Private Sub cbxT1_NotInList(NewData As String, Response As Integer)
    Dim Rst As DAO.Recordset
    Dim db As DAO.Database

    If MsgBox("Wert fehlt. Hinzufügen?", vbOKCancel) = vbOK Then
        Set db = CurrentDb()
        Set Rst = db.OpenRecordset("T1")
        Rst.AddNew
        Rst!T1_Text = NewData
        Rst.Update
        Rst.Close
        Response = acDataErrAdded
        Set Rst = db.OpenRecordset("T2")
        Rst.AddNew
        Rst!T1_ID = Me.cbxT1.Column(0)
        Rst.Update
        Rst.Close
      Else
        Response = acDataErrContinue
    End If
End Sub
Klappt in der Kombibox cboxT2 es nicht so recht mit der T1_ID Übernahme
Code:
Private Sub cbxT2_AfterUpdate()
    Me!cbxT3.RowSource = "SELECT T3_ID, T3_Text " & _
                           "FROM T3 " & _
                          "WHERE T2_ID = " & Me!cbxT2
    Me!cbxT3 = Me!cbxT3.Column(0, 0)     'Waehlt 1. Eintrag in der neuen Liste
End Sub

Private Sub cbxT2_NotInList(NewData As String, Response As Integer)
On Error GoTo fehler
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim erg As Integer

    Response = acDataErrAdded
    erg = MsgBox("Der eingegebene Wert '" & NewData & _
                 "' ist nicht in der Liste vorhanden. Möchten Sie " & _
                 "den Wert in die Tabelle übernehmen?", 52, "Neuer Wert")
    If erg = 6 Then
        Set db = CurrentDb
        Set rs = db.OpenRecordset("T2", dbOpenTable)
        rs.AddNew
        rs!T1_ID = Me!cbxT1.Column(0, 0)
        rs!T2_Text = NewData
        rs.Update
        rs.Close
        Set rs = Nothing
        db.Close
      Else
        Response = acDataErrContinue
    End If
ende:
    Exit Sub
fehler:
    MsgBox Err.Description, 16, "Fehler"
    Resume ende
End Sub
Und bei der cboxT3 bekomme ich den klassichen Fehler von "Wert nicht in Liste", der neue T2 Eintrag wird aber in die T3 Tabelle übernommen, jedoch mit der falschen T2_ID:
Code:
Private Sub cbxT3_NotInList(NewData As String, Response As Integer)
On Error GoTo fehler
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim erg As Integer

    Response = acDataErrAdded
    erg = MsgBox("Der eingegebene Wert '" & NewData & _
                 "' ist nicht in der Liste vorhanden. Möchten Sie " & _
                 "den Wert in die Tabelle übernehmen?", 52, "Neuer Wert")
    If erg = 6 Then
        Set db = CurrentDb
        Set rs = db.OpenRecordset("T3", dbOpenTable)
        rs.AddNew
        rs!T2_ID = Me!cbxT2.Column(0, 0)
        rs!T3_Text = NewData
        rs.Update
        rs.Close
        Set rs = Nothing
        db.Close
      Else
        Response = acDataErrContinue
    End If
ende:
    Exit Sub
fehler:
    MsgBox Err.Description, 16, "Fehler"
    Resume ende
End Sub
Hoffe ich habe micht klar genug ausgedrückt...
Was stimmt da nicht?

Danke für eure Hilfe.

Oliver


Zuletzt bearbeitet von buckoli am 15. Feb 2009, 14:19, insgesamt einmal bearbeitet
Marmeladenglas
komme zurecht


Verfasst am:
14. Feb 2009, 19:01
Rufname:


AW: Neue Werte eintragen in abhängigen Kombifeldern - AW: Neue Werte eintragen in abhängigen Kombifeldern

Nach oben
       Version: Office XP (2002)

hi,
ich hab dir das mal in "groben" Zügen überarbeitet. Was mich etwas nachdenklich stimmt, dass du das in einem Endlosformular einsetzen möchtest. Da seh ich schon die nächsten Fragen kommen.



Kombi.zip
 Beschreibung:

Download
 Dateiname:  Kombi.zip
 Dateigröße:  22.54 KB
 Heruntergeladen:  15 mal

buckoli
Im Profil kannst Du frei den Rang ändern


Verfasst am:
15. Feb 2009, 14:19
Rufname:

AW: Neue Werte eintragen in abhängigen Kombifeldern - AW: Neue Werte eintragen in abhängigen Kombifeldern

Nach oben
       Version: Office 2k (2000)

Hallo Marmeladenglas,

danke für die DB und die Hilfe. Habe Access2000 (und leider aus Versehen 2002 angegeben), d.h. ich kann deine Beispiel-DB nicht lesen. Kannst du mir die vielleicht nochmal schicken.

Das Endlosformular verwende ich, weil es übersichtlicher ist, und ich das Formular als UFO eingebunden habe. Die Verknüpfung läuft über eine Nutzer-ID. Idee: Jedem Kunden (abgelegt in einer Tabelle mit Adresse etc ) können merhere Datensätze (abgelegt in einer separaten Tabelle und über Nutzer-Id verknüpft)zugeordnet werden, deren Zusammensetzung über die "hierarichschen" Konbifelder bestimmt wird.

Gruß
Oliver
PS: So bald ich meinen Upload freigeschaltet habe, kann ich auch die db mal dranhängen
Marmeladenglas
komme zurecht


Verfasst am:
15. Feb 2009, 15:18
Rufname:

AW: Neue Werte eintragen in abhängigen Kombifeldern - AW: Neue Werte eintragen in abhängigen Kombifeldern

Nach oben
       Version: Office 2k (2000)

Hi,
mmh, der Hinweis bzgl. des Endlosformulars gründet sich auf die Problematik abhängige Kombi-Felder im Endlosformular einzusetzen. Durch Veränderung der Rowsources pro Datensatz, werden darüber oder darunter dargestellte Datensätze, in ihren Kombifeldauswahlen leer, da die Werte dann einfach nicht mehr zur Verfügung stehen durch das individuelle Setzen der Rowsources pro Datensatz. Also die Einträge in den Tabellen bleiben natürlich erhalten, aber werden nicht mehr dargestellt. Das kann man zwar auch über einen Umweg regeln (siehe Willis Beitrag: abhängige Kombifelder im Endlosformular), aber wird wohl das nächste Problem für dich darstellen.



Komb2000i.zip
 Beschreibung:

Download
 Dateiname:  Komb2000i.zip
 Dateigröße:  18.15 KB
 Heruntergeladen:  10 mal

buckoli
Im Profil kannst Du frei den Rang ändern


Verfasst am:
15. Feb 2009, 21:58
Rufname:

AW: Neue Werte eintragen in abhängigen Kombifeldern - AW: Neue Werte eintragen in abhängigen Kombifeldern

Nach oben
       Version: Office 2k (2000)

HAllo Marmeladenglas,

danke für deine Bsp-DB. Wie du schon sagst, habe ich ein PRoblem die Kombifeld-Kombinationen als UFO einzuladen. Er verlangt dauernd eine Parameterabfrage für cboxT2 und cboxT3. Ich habe mal die DB angehängt, vielleicht kann ich nochmal auf deine Hilfe hoffen. DIe Sache mit dem Endlosformular stelle ich erstmal hointen an. Ein Einzelformular tut es auch erst einmal.

DAnke für die Hilfe
Oliver



test.zip
 Beschreibung:

Download
 Dateiname:  test.zip
 Dateigröße:  134.05 KB
 Heruntergeladen:  7 mal

Marmeladenglas
komme zurecht


Verfasst am:
16. Feb 2009, 09:28
Rufname:

AW: Neue Werte eintragen in abhängigen Kombifeldern - AW: Neue Werte eintragen in abhängigen Kombifeldern

Nach oben
       Version: Office 2k (2000)

Hi,
du mußt die Formular-Steuerelementfeldbezüge richtig setzen
Du mußt die Reihenfolge HF-UFO einhalten und nicht einfach das ufo in der Abfrage adressieren:
Code:
[Forms]![Nutzer_Dateneingabe]![Formular4]![cbxT1]
->Kriterium der Datensatzherkunft für cbxT2
Code:
[Forms]![Nutzer_Dateneingabe]![Formular4]![cbxT2]
->Kriterium der Datensatzherkunft für cbxT3
Außerdem müssen die Kombis im Current-Ereignis (Beim Anzeigen) neu gesetzt werden, sonst hast du noch die alten Datensatzherkünfte des vorhergehenden Datensatzes in den Kombis.
Da sind noch ein paar Sachen:
Ein Memofeld als Primärschlüssel ?? (Tabelle Daten !)
Nimm auch hier ein Autowert-Feld mit in die Tabelle. Mach das grundsätzlich in jeder Tabelle so auch für die Tabelle Kontakt! Aber bitte mit unterschiedlichen Feldnamen und nicht einfach nur ID, sondern z.b. Content_ID, Nutzer_ID etc.
In den Formularen, MOdulen ein Option Explicit!
Gewöhne Dir eine klare "sprechende" Namensgebung an, sowohl was die Objekte, als auch z.b. die Feldnamen betreffen (Z.b. tbl_nutzer, tbl_xy, frm_Nutzer, frm_xyz, nutzer_ID, nutzerName etc.)
Warum ist in Content-Nutzer alles als Text deklariert , obwohl die Testdatensätze aus Zahlen bestehen ??
Konvertiere das Makro -> Makros sind Mist
Code:
    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70

Diese MenuItem-Befehle sollte man auch nicht mehr einsetzen.
Mach das lieber über SQL.
Hier mal deine DB als Re in ein paar Sachen (nicht komplett) überarbeitet



test2000.zip
 Beschreibung:

Download
 Dateiname:  test2000.zip
 Dateigröße:  55.24 KB
 Heruntergeladen:  9 mal

buckoli
Im Profil kannst Du frei den Rang ändern


Verfasst am:
16. Feb 2009, 14:59
Rufname:

AW: Neue Werte eintragen in abhängigen Kombifeldern - AW: Neue Werte eintragen in abhängigen Kombifeldern

Nach oben
       Version: Office 2k (2000)

Wow,

ich habe noch viel zu lernen. Vielen vielen Dank Marmeladenglas.
Ich habe alles zum Laufen gebracht und die Sache dank deiner phantastischen Ratschläge zum Laufen bekommen und dabei die DB auch ordentlich strukturiert.

Was meintest du mit "In den Formularen, MOdulen ein Option Explicit! "?

Danke nochmals.
Oliver
Marmeladenglas
komme zurecht


Verfasst am:
16. Feb 2009, 15:14
Rufname:


AW: Neue Werte eintragen in abhängigen Kombifeldern - AW: Neue Werte eintragen in abhängigen Kombifeldern

Nach oben
       Version: Office 2k (2000)

Code:
Option Compare Database
Option Explicit

Hi,
die obere Zeile wird Dir sicherlich schon mal über den Weg gelaufen sein. Unten ergänzt noch das Option Explicit.
Das zwingt dich dazu Variablen vorher zu deklarieren, bevor du sie verwenden kannst. Das hilft Fehler vermeiden.
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: Max. Werte über mehrere Datensätze ermitteln 1 Gast 1200 22. Aug 2005, 14:56
lothi Max. Werte über mehrere Datensätze ermitteln
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Access Tabellen & Abfragen: Access Werte innerhalb einer Tabelle berechnen 1 Elmar9700 1684 21. Jun 2005, 16:26
Willi Wipp Access Werte innerhalb einer Tabelle berechnen
Keine neuen Beiträge Access Tabellen & Abfragen: Werte Zählen, aber bestimmte nicht dazu addieren 1 MrMarley 897 14. Jun 2005, 02:21
tobes Werte Zählen, aber bestimmte nicht dazu addieren
Keine neuen Beiträge Access Tabellen & Abfragen: Numerische Werte in als Text definiertem Feld 4 Terminator 811 25. Apr 2005, 07:50
stpimi Numerische Werte in als Text definiertem Feld
Keine neuen Beiträge Access Tabellen & Abfragen: Namensvergabe für neue Tabelle nach Tab-Erstellungsabfrage? 0 flatron 403 03. März 2005, 16:48
flatron Namensvergabe für neue Tabelle nach Tab-Erstellungsabfrage?
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage die werte anfügt 2 Zoran 495 26. Jan 2005, 14:24
Zoran Abfrage die werte anfügt
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage Top2 Werte 2 Zoran 1209 25. Jan 2005, 18:03
Zoran Abfrage Top2 Werte
Keine neuen Beiträge Access Tabellen & Abfragen: Zahl eintragen mit "mm" am Ende. Formatfrage 1 webnaex 499 04. Jan 2005, 19:02
Skogafoss Zahl eintragen mit "mm" am Ende. Formatfrage
Keine neuen Beiträge Access Tabellen & Abfragen: AXP tagesaktuelle Werte in Tabelle ergänzen - HILFE!! 2 Stefn 506 05. Nov 2004, 14:27
Stefn AXP tagesaktuelle Werte in Tabelle ergänzen - HILFE!!
Keine neuen Beiträge Access Tabellen & Abfragen: Werte aus der Abfrage ausschliessen? 1 wolfu 1736 27. Okt 2004, 12:45
stpimi Werte aus der Abfrage ausschliessen?
Keine neuen Beiträge Access Tabellen & Abfragen: Werte der Untertab in Memofeld der Haupttabelle übernehmen 1 mb2 713 14. Okt 2004, 00:18
lothi Werte der Untertab in Memofeld der Haupttabelle übernehmen
Keine neuen Beiträge Access Tabellen & Abfragen: In Abfrage nachträglich neue Tabelle einfügen 2 Chris79 498 13. Okt 2004, 22:18
Gast In Abfrage nachträglich neue Tabelle einfügen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: JavaScript