Access 2003 -Im UFO alle Datensätze aktualisieren

Hallo Miteinander.
Ich brauche eure Hilfe.
Ich habe mehrere Datensätze in einem Endlosformular.
Nun möchte ich bei jedem Satz das Feld [Einzelpreis]
aktualisieren. Diesen Preis nehme ich aus einer Preistabelle.

Ich habe bisher folgenden Code.
Forms![F_Offerte]![F_Offerten_Pos_Unterformular].Form![Einzelpreis] = DLookup("[Preis Eigenwaehrung]", „T_Preisliste_Fideca“, „[Artikel_Nr] = '“ & Forms![F_Offerte]![F_Offerten_Pos_Unterformular].Form![Kombinationsfeld44] & „’“)

Wie Ihr Profis natürlich sofort seht, wird nur der erste Satz aktualisiert. Habe schon versucht alle Datensätze zu markieren, haben dies aber nicht geschafft.
Wäre toll wenn mir jemand weiterhelfen lönnte.
Vielen Dank

hallo
Ich würde das mal mit einer Ereignisprozedur beim Feldereignis „nach Aktualisieren“ versuchen. Als VBA Code einfach me.refresh oder me.requery einfügen. Weiss jetzt nicht gerade was schlauer ist bezw. funktioniert…
Chris

Hallo Chris

Vielen herzlichen Dank für die prompte Antwort, das hätte ich jetzt nicht gedacht.:smile:
Mein Problem liegt darin, dass er die „neuen“ Preise für den nächsten Datensatz nicht per „Dlookup“ abholt, er bleibt einfach stehen. Habe es schon mit einer Schleife probiert, dies ging natürlich bei mir nicht.

Dim rs As Dao.Recordset
Set rs = Me.RecordsetClone
Do Until rs.EOF
rs.Edit
Forms![F_Offerte]![F_Offerten_Pos_Unterformular].Form![Einzelpreis] = DLookup("[Preis Eigenwaehrung]", „T_Preisliste_Fideca“, „[Artikel_Nr] = '“ & Forms![F_Offerte]![F_Offerten_Pos_Unterformular].Form![Kombinationsfeld44] & „’“)
rs.Update
rs.MoveNext
Loop
Auch hier wurde nur ein Satz aktualisiert:frowning:
Wenn ich vielleicht im Code alle Datensätze im UF markieren könnte?

Gruss Dani

Hallo,

leider kann ich dir online nicht weiterhelfen. Da müßte man in die Datenbank mal reinsehen.l

Sorry
Gruß aus Rheinbach
Erika

Hallo Daniel
Verstehe ich das richtig? Du hast ein UF und füllst Felder auf irgendeine Weise aber die neuen Werte werden nicht angezeigt? Hast du mal versucht im Formular ins Feld zu schreiben (me.feldname.value=…). Das ist als würde man mit Tastatur reinschreiben. Nachher auf den nächsten Datensatz und das wird akualisiert.
Gruss

Hallo Rickld,

ich kann Deine Frage leider nicht beantworten,
denke aber, dass Du so etwas wie eine Schleife brauchst,
die über Dein OffertenPosUnterformular läuft und als ausführende Zeile, Dein gepostetes Statement enthält.
So wird dann in jeder Zeile der Preis ersetzt.

Viele Grüße

Peter

Guten Tag, Access-Fan,

es gibt da die Funktion:
DoCmd.RunCommand acCmdSaveRecord
die du bei Ereignis anwenden kannst!
Auch mit der Funktion „Requery“ habe ich gute Erfahrung gemacht!

Wenn das zu allgemein ist, kannst du dich gerne melden!

Gruss
Eckart

Hallo Miteinander.
Ich brauche eure Hilfe.
Ich habe mehrere Datensätze in einem Endlosformular.
Nun möchte ich bei jedem Satz das Feld [Einzelpreis]
aktualisieren. Diesen Preis nehme ich aus einer Preistabelle.

Ich habe bisher folgenden Code.
Forms![F_Offerte]![F_Offerten_Pos_Unterformular].Form![Einzelpr
eis] = DLookup("[Preis Eigenwaehrung]", „T_Preisliste_Fideca“,
„[Artikel_Nr] = '“ &
Forms![F_Offerte]![F_Offerten_Pos_Unterformular].Form![Kombinat
ionsfeld44] & „’“)

Wie Ihr Profis natürlich sofort seht, wird nur der erste Satz
aktualisiert. Habe schon versucht alle Datensätze zu
markieren, haben dies aber nicht geschafft.
Wäre toll wenn mir jemand weiterhelfen lönnte.
Vielen Dank

Hallo Eckhard

Vielen Dank für deine Antwort. Ich werde dies mal versuchen.

Gruss
Dani

Hallo Peter

Vielen Dank für deine Antwort.
Ja eben, diese Schleife :frowning: Setzte mich da nochmal ran.

Gruss
Dani

vielleicht klappt es ja so

Abfrage erstellen
dort die Preise neu berechnen
aus der Abfrage den Bericht zum Drucken generieren

gruß uwe

Hallo Uwe

Erstmal vielen Dank für deine Antwort. Das mit der Abfrage habe ich bereits probiert. Ich hatte nun die Abfrage mit den zu aktualisierende Datensätzen.Nun haben ich da das gleiche Problem. Ich müsste eine Schleife haben, wo jeder Satz sich der Reihe nach seine Preise per DLookup von der Preistabelle abholt und aktualisiert.
Ich habe es mal so probiert:

Dim rs As Dao.Recordset
Set rs = Me.RecordsetClone
Do Until rs.EOF
rs.Edit
Forms![F_Offerte]![F_Offerten_Pos_Unterformular].Form![Einzelpreis] = DLookup("[Preis Eigenwaehrung]", „T_Preisliste_Fideca“, „[Artikel_Nr] = '“ & Forms![F_Offerte]![F_Offerten_Pos_Unterformular].Form![Kombinationsfeld44] & „’“)
rs.Update
rs.MoveNext
Loop

Aber auch so, die erste aktive Zeile wird mit dem neuen Preis ersetzt, die anderen lässt er stehen.

Gruss
Dani

Hallo!

Wurde Ihre Anfrage bereits beantwortet?

MfG

Hallo Chris

Ja, ich möchte das Feld Einzelpreis von einer anderen Tabelle via Artikel-Nr mit dem Befehl DLookup abholen.
Jetzt habe ich aber im betreffenden UF mehrere Sätze, das können 2,3 4, sein. Mit meinem Befehl füllt er immer im ersten Satz das Feld [Einzelpreis] korrekt ab und geht nicht zum nächsten. Es müsste irgendwie über eine Schleife gehen, aber wie?

Gruss
Dani

Hallo

Nein, bis jetzt leider noch nicht:frowning:

Danke aber fürs Nachfragen
Gruss
Dani

Möchten Sie mir die Datenbank mit einer kurzen Beschreibung Ihres Wunsches an temp2009(at)knell.de zusenden? MfG Knell

Hallo Dani
Ich hab das bei mir so gelöst und es Funktoiniert:
For i = 1 To Rst.RecordCount
Rst.Edit
Rst.Fields(FeldName).Value = neuer Wert
Rst.Update
Rst.MoveNext
Next i
Gruss
Chris

Hi,

selbst wenn alle Datensätze markiert sind, betrifft die Änderung immer nur den aktuellen , also genau einen Datensatz innerhalb der vielen markierten.

Vorschlag: Schreibe eine Aktualisierungsabfrage (UPDATE…), die Du dann einfach aufrufst mit [Referenz_zur_Abfrage].Execute

Viel Erfolg!
Jochen.