Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
ID (Feldinhalt) bei neuem Datesatz übernehmen
zurück: suchfunktion (eventuell) weiter: Zu vorherigem DS in Formular springen 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
webspace001
Im Profil kannst Du frei den Rang ändern


Verfasst am:
09. Mai 2010, 13:10
Rufname:

ID (Feldinhalt) bei neuem Datesatz übernehmen - ID (Feldinhalt) bei neuem Datesatz übernehmen

Nach oben
       Version: Office 2003

Hallo Office(Access)Gemeinde,

ich habe mir in AC2003 eine Tabelle <tblKd> angelegt. Diese Tabelle steht über die ID (AutoWert) mit einer weiteren Tabelle <tblKdBg> in Beziehung [1:n]. Alles ganz trivial gehalten – eigentlich…
Ein Formular <frmKd> zeigt mir nun die gewünschten Informationen der Tabelle <tblKd>. Und über einen Button <btnAdd> auf diesem Formular kann ich nun wiederum ein nächstes Formular <frmKdBg> aufrufen, das den Inhalt aus Tabelle <tblKdBg> darstellt, der dem aktuell angezeigten Datensatz aus <frmKd> zugehörig ist.

Prima, da die Bestimmung des Formulars <frmKdBg> aber in dem Hinzufügen eines neuen - ergänzenden - Datensatzes liegt, soll sich jenes mit einem neuen - leeren - Datensatz öffnen. Mit meinem bis dato (stümperhaft) angepassten Code klappt das auch, ABER es werden dabei alle - auch das Datensatzfeld <ID> - zurückgesetzt. Es muss also plötzlich wieder die zugehörige ID des Datensatzes angegeben werden, dem ich etwas hinzufügen möchte. Das (Text)Feld <ID> soll später jedoch nicht auf dem Formular <frmKdBg> zu sehen sein, so dass keine Eingabe (Zuordnung) händisch durchgeführt werden kann.

Ergo; wie kann ich die Prozedur nun so anpassen, dass die ID übernommen wird, und lediglich die restlichen (der mit der Tabelle <tblKdBg> verknüpften Datensatz-)Felder zum Hinzufügen neuer Sätze "zurückgesetzt" werden?

Code Button <btnAdd>:
Code:
Private Sub btnAdd_Click()
On Error GoTo Err_btnAdd_Click
    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = "frmKdBg"
    stLinkCriteria = "[ID]=" & Me![ID]
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    DoCmd.GoToRecord , , acNewRec
Exit_btnAdd_Click:
    Exit Sub
Err_btnAdd_Click:
    MsgBox Err.Description
    Resume Exit_btnAdd_Click
End Sub
Bin euch für jede (benötigte) Hilfestellung dankbar!

wb
Marmeladenglas
komme zurecht


Verfasst am:
09. Mai 2010, 13:23
Rufname:


AW: ID (Feldinhalt) bei neuem Datesatz übernehmen - AW: ID (Feldinhalt) bei neuem Datesatz übernehmen

Nach oben
       Version: Office 2003

Hi,
1.) Entweder nimmst ein eingebettetes Unterformular für die Kudenabhängigen DAtensätze oder
2.) Du übergibst die zuvor aus gewählte Kunden_ID als Standardwert für das Fremdschlüsselfeld der abhängigen Kundedatensätze.
Code:
    Forms!frmKDBg!ID.DefaultValue = Me.ID
webspace001
Im Profil kannst Du frei den Rang ändern


Verfasst am:
09. Mai 2010, 14:18
Rufname:

AW: ID (Feldinhalt) bei neuem Datesatz übernehmen - AW: ID (Feldinhalt) bei neuem Datesatz übernehmen

Nach oben
       Version: Office 2003

Genial! Der 2te von dir beschriebene Eingriff ist das begehrte Ergebnis. Danke!

Gib ihm den kleinen Finger und er nimmt die ganze Hand…
Nein, ganz so soll’s nicht rüber kommen. Aber vielleicht hast/habt du/ihr ja erneut prompt einen Tipp für mich.

Wiederum habe ich ein Formular <frmLt> angelegt, das über Textfelder den Inhalt der schon erwähnten Tabellen darstellt darstellt. Mit Hilfe eines Listenfeldes <lstOp> als Ausgabe und zweier Textfelder <txtIp1> & <txtIp2> als Eingabe habe ich dem Formular eine paarige Suchfunktion angehängt. Klappt soweit auch ganz gut.

Über einen Button kann ich nun das ebenfalls schon erwähnte Formular <frmKd> aufrufen, das ja für den Bereich "Hinzufügen neuer Datensätze" konzipiert ist/sein soll. Habe ich einen neuen Datensatz nun hinzugefügt und kehre über die Schließroutine eines Buttons <btnClose> zurück zum Formular <frmLt>, so soll durch den angepassten Code von <btnClose> das gesamte Formular <frmLt> aktualisiert werden. Soll…

Das klappt bei mir nur eingeschränkt. Das Listenfeld wird zwar automatisch um den Datensatz aktualisiert, und bei entsprechender Suche taucht dieser dann auch im Listenfeld auf. Markiert man diesen Datensatz jedoch, um sich die Details in den (dafür vorgesehenen) Textfeldern anzeigen zu lassen, werden an dieser Stelle noch immer die Einzelheiten des 1sten bzw. zuletzt aufgerufenen Datensatzes angezeigt. Erst ein erneutes Öffnen des Formulars aktualisiert sozusagen die Textfelder um den zuletzt eingegebenen Datensatz.
Code:
Private Sub btnClose_Click()
On Error GoTo Err_btnClose_Click
    Forms!frmLt.SetFocus
    Forms!frmLt.Refresh
    Forms!frmKd.SetFocus
    DoCmd.Close
Exit_btnClose_Click:
    Exit Sub
Err_btnClose_Click:
    MsgBox Err.Description
    Resume Exit_btnClose_Click
End Sub
Evtl. auch hier 'ne Idee zur Abhilfe des Problem(chens)?! Embarassed

Danke
ws
Marmeladenglas
komme zurecht


Verfasst am:
09. Mai 2010, 14:24
Rufname:

AW: ID (Feldinhalt) bei neuem Datesatz übernehmen - AW: ID (Feldinhalt) bei neuem Datesatz übernehmen

Nach oben
       Version: Office 2003

Hi,
habs zwar nur quergelesen, aber probier mal:
Code:
Private Sub btnClose_Click()
On Error GoTo Err_btnClose_Click
    Me.Dirty = False
    Forms!frmLt.Requery
    DoCmd.Close
Exit_btnClose_Click:
    Exit Sub
Err_btnClose_Click:
    MsgBox Err.Description
    Resume Exit_btnClose_Click
End Sub
webspace001
Im Profil kannst Du frei den Rang ändern


Verfasst am:
09. Mai 2010, 14:52
Rufname:


AW: ID (Feldinhalt) bei neuem Datesatz übernehmen - AW: ID (Feldinhalt) bei neuem Datesatz übernehmen

Nach oben
       Version: Office 2003

Danke, Marmeladenglas!
Hab' den Code übernommen - Ergebnis: leider unveränderter "Tatbestand". Das Listenfeld wird erfolgreich aktualisiert, die zugehörigen Textfelder zeigen jedoch unverändert die ersten/vorherigen Details an.

Im folgenden mal die Ereignisprozedur des Listenfeldes (Nach Aktualisierung...) - falls da die Wanze drin stecken sollte?!
Code:
Private Sub lstOp_AfterUpdate()
    Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[ID] = " & Str(Nz(Me![lstOp], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
ws
Marmeladenglas
komme zurecht


Verfasst am:
09. Mai 2010, 14:57
Rufname:

AW: ID (Feldinhalt) bei neuem Datesatz übernehmen - AW: ID (Feldinhalt) bei neuem Datesatz übernehmen

Nach oben
       Version: Office 2003

Hi,
sorry, dass ist mir alles zu abstrakt oder ich bin zu träge, als dass ich mich da jetzt theoretisch in deine Gegebenheiten reindenke bzw. was jetzt wo aktualisiert werden soll.
Von daher, lade ein Beispiel hoch, dann kann man schauen Laughing
webspace001
Im Profil kannst Du frei den Rang ändern


Verfasst am:
09. Mai 2010, 15:28
Rufname:

AW: ID (Feldinhalt) bei neuem Datesatz übernehmen - AW: ID (Feldinhalt) bei neuem Datesatz übernehmen

Nach oben
       Version: Office 2003

Ich dürfte bei meiner Formulierung auch kein Supporter sein Embarassed pardon!

Habe die im folgenden aufgezeigte Suchprozedur erstellt: Suchmaske für Access-Datenbank

Das ganze habe ich halt um das Formular <frmKd> (Hinzufügen neuer Datensätze) erweitert. Wenn ich nun einen Datensatz hinzugefügt habe und zum Hauptformular <frmLt> (äquivalent zum Tutorial) zurückkehre (=auch mit deinem Code), werden die abgefragten Werte des hinzugefügten Datensatzes im Listenfeld zwar angezeigt, klickt man auf diesen, wird jedoch grundsätzlich der ERSTE angelegte Datensatz angezeigt - sry, hier hatte ich mich bisher vertan gehabt.

Bsp.:
4 Kunden sind angelegt; ein 5 Kunde kommt nun hinzu und wird auch im Listenfeld angezeigt. Klickt man nun auf diesen (neu angelegten) 5.Kunden, wird stets bei ihm der Datensatz des 1.Kunden in den Textfeldern darunter angezeigt.

Dennoch, ein wirklich großes Dankeschön für die Unterstützung an einem >Sonntag< Wink
Nouba
nicht ganz unwissend :)


Verfasst am:
09. Mai 2010, 15:29
Rufname:
Wohnort: Berlin

AW: ID (Feldinhalt) bei neuem Datesatz übernehmen - AW: ID (Feldinhalt) bei neuem Datesatz übernehmen

Nach oben
       Version: Office 2003

Hallo webspace001,

versuche es hiermit.

Code:
Private Sub btnClose_Click()
  On Error GoTo btnClose_Click_Error

  With Forms.frmLt
    .Painting = False
    .Requery
    .Recordset.FindFirst "ID = " & Nz(Me.ID, 0)
    .SetFocus
    DoCmd.Close , Me.Name

Proc_Exit:
    .Painting = True
  End With
  Exit Sub

btnClose_Click_Error:
  MsgBox "Fehler " & Err.Number & " (" & Err.Description & ") in Routine" & _
         "btnClose_Click in VBA Dokument Form_frmLt"
  Resume Proc_Exit
End Sub

[edit]Me --> Forms[/edit]

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.


Zuletzt bearbeitet von Nouba am 09. Mai 2010, 15:49, insgesamt einmal bearbeitet
webspace001
Im Profil kannst Du frei den Rang ändern


Verfasst am:
09. Mai 2010, 15:42
Rufname:

AW: ID (Feldinhalt) bei neuem Datesatz übernehmen - AW: ID (Feldinhalt) bei neuem Datesatz übernehmen

Nach oben
       Version: Office 2003

Hallo & Danke Nouba,

bei deinem Code markiert er mir die Zeile
Code:
    With Me.frmLt
Nouba
nicht ganz unwissend :)


Verfasst am:
09. Mai 2010, 15:48
Rufname:
Wohnort: Berlin

AW: ID (Feldinhalt) bei neuem Datesatz übernehmen - AW: ID (Feldinhalt) bei neuem Datesatz übernehmen

Nach oben
       Version: Office 2003

Hallo,

entschuldige - das Me sollte Forms heißen.

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
webspace001
Im Profil kannst Du frei den Rang ändern


Verfasst am:
09. Mai 2010, 16:05
Rufname:

AW: ID (Feldinhalt) bei neuem Datesatz übernehmen - AW: ID (Feldinhalt) bei neuem Datesatz übernehmen

Nach oben
       Version: Office 2003

Hallo Nouba,

damit wird der Datensatz überhaupt nicht angezeigt. Da ich schon einmal (irrtümlich?!) Probleme mit .Requery hatte, habe ich diesen Eintrag mal durch .Refresh ersetzt. Wobei dabei wiederum selbes Ergebnis wie anfang auch auftritt: Listenfeld o.k., Textfelder falsch Evil or Very Mad

Hmm, soviel zu meiner trivialen DB... Embarassed

ws
Nouba
nicht ganz unwissend :)


Verfasst am:
09. Mai 2010, 17:55
Rufname:
Wohnort: Berlin

AW: ID (Feldinhalt) bei neuem Datesatz übernehmen - AW: ID (Feldinhalt) bei neuem Datesatz übernehmen

Nach oben
       Version: Office 2003

Hallo,

dann sollte man ggf. noch sicher stellen, dass in dem anderen Formular der Datensatz auch schon abgespeichert ist. Setze bitte mal hinter On Error ... die Zeile: If Me.Dirty Then Me.Dirty = False

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
webspace001
Im Profil kannst Du frei den Rang ändern


Verfasst am:
09. Mai 2010, 20:58
Rufname:

AW: ID (Feldinhalt) bei neuem Datesatz übernehmen - AW: ID (Feldinhalt) bei neuem Datesatz übernehmen

Nach oben
       Version: Office 2003

Auch nach erneuter Anpassung überhaupt keine Veränderung Sad
Zitat:
Dann sollte man ggf. noch sicher stellen, dass in dem anderen Formular der Datensatz auch schon abgespeichert ist.
Hmm... vielleicht wird genau dieses Kriterium ja nicht erfüllt - falls ich’s richtig deute?!

Begründung: Wenn ich nach den neuen Datensatz markiere, werden mir - wie bereits beschrieben - grundsätzlich in den darunter liegenden Textfeldern die Inhalte des 1.Datensatzes (1.Kunde) angezeigt - also nix Neues...
Lösche ich nun diesen neuen Datensatz aber, wird tatsächlich nicht dieser, sondern dummerweise der Datensatz des 1.Kunden gelöscht (also genau jener, der mir von den "vermeintlich nicht aktualisierten" Textfeldern angezeigt wird). Shock

ws

PS: Die Sucheprozedur klappt seltsamerweise auch - es muss ja irgendwie der Datensatz vom Formular erkannt worden sein?!
webspace001
Im Profil kannst Du frei den Rang ändern


Verfasst am:
10. Mai 2010, 10:35
Rufname:


AW: ID (Feldinhalt) bei neuem Datesatz übernehmen - AW: ID (Feldinhalt) bei neuem Datesatz übernehmen

Nach oben
       Version: Office 2003

Hallo zusammen,

möchte diesen Betrag schnell noch abschließen - sogar mit einer positiven Nachricht - und mich nochmals für die gestrige Hilfe vielmals bedanken (@Marmeldadenglas & Nouba)!

Das Problem mit der 'ausbleibenden' Zuordnung/Anzeige neuer Datensätze in den dafür vorgesehenen Textfeldern habe ich nun insofern umgehen können, dass ich in der Spalte Steuerelementinhalt der einzelnen Textfelder einen Bezug zum Listenfeld hergestellt habe (am Beispiel Textfeld1: =lstOp.Column(1)) - anstatt zur Tabelle. Dazu musste ich zwar das Listenfeld um die gewünschten Spalten erweitern, habe diese jedoch im Gegenzug auf 0cm Breite gesetzt, so dass sie im Listenfeld nicht respektive nur die gewünschten (Such-)Spalten zu sehen sind.

Also, doch noch das gewünschte und so dringend benötigte Ergebnis erzielt ... auch dank eurer Unterstützung! Klasse!

Danke,
ws
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: Feldeintrag in anderem Feld automatisch übernehmen 5 Paul34 1196 25. Jan 2008, 13:59
Zed2k Feldeintrag in anderem Feld automatisch übernehmen
Keine neuen Beiträge Access Tabellen & Abfragen: Feldinhalt beim ersten Leerzeichen von RECHTS trennen 16 Job100 5532 11. Okt 2007, 08:46
Job100 Feldinhalt beim ersten Leerzeichen von RECHTS trennen
Keine neuen Beiträge Access Tabellen & Abfragen: Feldinhalt automatisch ergänzen 1 Koppi 706 06. Jun 2007, 10:55
SGast Feldinhalt automatisch ergänzen
Keine neuen Beiträge Access Tabellen & Abfragen: Gleiche DB-Felder->Datensatz nicht in Anfrage übernehmen 0 madclaudi 466 24. Apr 2007, 16:31
madclaudi Gleiche DB-Felder->Datensatz nicht in Anfrage übernehmen
Keine neuen Beiträge Access Tabellen & Abfragen: daten aus letztem datensatz in neuem datensatz 4 Spätzle 573 24. Sep 2006, 18:06
jens05 daten aus letztem datensatz in neuem datensatz
Keine neuen Beiträge Access Tabellen & Abfragen: Spaltenbezeichnung übernehmen 1 Donaudampfschifffahrt 496 27. Jul 2006, 15:09
lothi Spaltenbezeichnung übernehmen
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage soll Kriterium aus Formular übernehmen 2 bonito 3932 29. Jun 2006, 19:57
jens05 Abfrage soll Kriterium aus Formular übernehmen
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelleninhalte automatisch in andere Tabelle übernehmen 6 Tante 3700 31. Mai 2006, 22:35
Gast Tabelleninhalte automatisch in andere Tabelle übernehmen
Keine neuen Beiträge Access Tabellen & Abfragen: ID_Kontakter aus Stammdaten in Kontaktnotiz übernehmen 4 GregorJ 806 29. Mai 2006, 22:15
GregorJ ID_Kontakter aus Stammdaten in Kontaktnotiz übernehmen
Keine neuen Beiträge Access Tabellen & Abfragen: Feldinhalt abschneiden 6 Heavendenied 975 28. März 2006, 11:19
jens05 Feldinhalt abschneiden
Keine neuen Beiträge Access Tabellen & Abfragen: Daten aus einer anderen Datenbank in Access übernehmen 1 Gast Andreas 1502 22. Jan 2006, 19:34
jens05 Daten aus einer anderen Datenbank in Access übernehmen
Keine neuen Beiträge Access Tabellen & Abfragen: Excel Speiseplan in Access übernehmen 2 Marja 5127 25. Nov 2005, 15:51
Marja Excel Speiseplan in Access übernehmen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML Editor Forum