collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 58
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14070
  • stats Beiträge insgesamt: 67529
  • stats Themen insgesamt: 9099
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Neueste Beiträge

Seiten: 1 ... 8 9 [10]
91
Tabelle/Abfrage / Re: Speichern berechneter Werte in der zugrundeliegenden Tabelle
« Letzter Beitrag von MzKlMu am Oktober 10, 2018, 17:53:26 »
Hallo,
Zitat
@Klaus:
Danke, ich habe auch grundsätzlich verstanden, keine berechneten Werte in der Tabelle zu speichern.
wieso ich, ich habe ja gar nichts mehr dazu gesagt.
92
Tabelle/Abfrage / Re: Speichern berechneter Werte in der zugrundeliegenden Tabelle
« Letzter Beitrag von Jochen1 am Oktober 10, 2018, 14:09:53 »
Hallo,

zunächst vielen Dank für die überarbeitete Datenbank und die Vielzahl von Anregungen, die ich mir als Access-Laie noch zu Gemüte führen muss.

@Klaus:
Danke, ich habe auch grundsätzlich verstanden, keine berechneten Werte in der Tabelle zu speichern.

Vielleicht ist mein Ausgangspunkt aber ein etwas anderer:
Den berechneten Wert E müsste ich (ausserhalb von Access) zunächst mit Excel oder einem Taschenrechner ermitteln. Es ist in der Tat keine Aufgabe für Access. Ich benötige dieses Berechnungsergebnis jedoch, um mit ihm weiterzuarbeiten. Folglich müsste ich also sowieso dafür ein Tabellenfeld definieren und den Wert dann manuell in mein Ausgangsformular (und damit die Tabelle) eingeben. Um mir aber Arbeit zu sparen und gleichzeitig etwaige Berechnungsfehler zu vermeiden, dachte ich, dies gleich durch Access in einer Art Vorstufe in einer Registerkarte erledigen zu lassen. Und der Wert muss auch nicht stets aufs Neue z.B. in einer Abfrage ermittelt werden. Daher denke ich, dass meine Idee in diesem Ausnahmefall erlaubt sein sollte...

@Lachtaube:
Auch Dir vielen Dank auch für die Aktualisierungsabfrage und die VBA Darstellung. Mir glüht nun der Kopf zwischen Ereignisprozedur, VBA und Datenmakro.... Ich muss nun sehen, was das Beste wäre, aber mir gefällt die Lösung mit der Ereignisprozedur in der Beispielsdatenbank ziemlich gut; da ich nicht so bewandert bin, suche ich auch etwas, was ich auch nach einem Jahr noch nachvollziehen kann, sollte ich etwas ändern wollen.

Danke auch für den Strukturhinweis -Das Beispiel und die Zahlen waren jedoch rein fiktiv, ich wollte nur den Mechanismus und die Aktualisierung testen. Dein Vorschlag und der Thread insgesamt ermahnt mich, regelmässig über die Struktur nachzudenken.

Zum PPS: Mir ist klar, dass eine Berechnug dort keinen Sinn macht, wenn sich Daten ändern und dann der Wert im Tabellenfeld "veraltet" ist. Aber: Die Werte ändern sich nicht. Und wenn doch, dann nutze ich ja ausschliesslich dieses Formular. Der Wert, den ich übrigens ermittele, steht ausschliesslich in einer 1:1-Beziehung im Datensatz.

Also nochmals vielen Dank für die Geduld und Hilfe, Ihr habt mir sehr weitergeholfen.

Jochen
93
Access Programmierung / Re: Frage zum TM-Änderungsprotokoll
« Letzter Beitrag von agfl am Oktober 10, 2018, 10:09:51 »
Ich habe das Team-Moeller noch einmal angeschrieben, vielleicht ist meine erste E-Mail ja nicht angekommen/untergegangen (selten, aber soll ja mal vorkommen). Nun warte ich mal auf Antwort, und poste dann  :)
94
Tabelle/Abfrage / Re: Speichern berechneter Werte in der zugrundeliegenden Tabelle
« Letzter Beitrag von Lachtaube am Oktober 10, 2018, 09:38:25 »
@Jochen,

die Berechnung in VBA zu wiederholen ist dann doch etwas kontraproduktiv.

VBA-Modul des Formulars
Option Compare Database
Option Explicit

Private Sub A_BeforeUpdate(Cancel As Integer)
   'Me!D = [A] + [B] + [C]
   Me.Text24 = Me.E 'über den Namen des Steuerelements
End Sub

Private Sub B_BeforeUpdate(Cancel As Integer)
   'Me!D = [A] + [B] + [C]
   Me.D = Me.E 'das sieht man erst nach dem Speichern des Datensatzes
End Sub

Private Sub C_BeforeUpdate(Cancel As Integer)
   'Me!D = [A] + [B] + [C]
   Me.Text24 = Me.E
End Sub

'Mit einem weiteren Feld 'F' als Zielfeld der Berechnung
'in der Tabelle, ohne dass es an ein Steuerelement gebunden
'ist, erfordert weitaus geringeren Aufwand.''Datenherkunft neu setzen, damit das Formular 'F' kennenlernt.
Private Sub Form_BeforeUpdate(Cancel As Integer)
   Me.F = Me.E
End Sub

Eine Aktualisierungsabfrage für ein Feld G, könnte so aussehen. (In die SQL-Ansicht einer neuen Abfrage kopieren.)
UPDATE tbl_A AS a
SET    G = a.A + a.B + a.CWHERE  G Is Not Null;

PS:wenn Deine Ausgangsfelder auch Null-Werte enthalten können, verwende in den Ausdrücken die Nz()-Funktion. Also in E: =Nz([A];0)+Nz(;0)+Nz([C];0). In der SQL-Ansicht wäre das Semikolon gegen ein Komma auszutauschen.

PPS: und findet eine Änderung von A, B oder C außerhalb des Formulars statt, ist das Ergebnis garantiert falsch und muss durch eine Aktualisierungsabfrage erneuert werden. Besser sicherer wäre es jedoch, ab Access 2010 ein Datenmakro zu verwenden.


Generell sei noch angemerkt, dass die Datenform im Beispiel der Aufzählungsfelder A, B, C wegen, besser in eine andere Struktur übergeführt werden sollte, um dann z.B. mit der Sum()-Aggregatfunktion das Ergebnis ermitteln zukönnen.
IDHerkunftA
1
A
10
3
A
20
4
A
40
5
A
50
1
B
20
3
B
30
4
B
50
5
B
60
1
C
30
3
C
40
4
C
60
5
C
70
95
Tabelle/Abfrage / Re: Speichern berechneter Werte in der zugrundeliegenden Tabelle
« Letzter Beitrag von DF6GL am Oktober 10, 2018, 09:06:48 »
Hallo,


siehe Anhang

btw:
wie schon erwähnt, ist das Speichern  berechneter Werte Unsinn.
96
Bericht / Re: nach Erstellungsabfrage Datumsformat Binär
« Letzter Beitrag von Lachtaube am Oktober 10, 2018, 08:44:51 »
Versuche, den Datentyp explizit in der Abfrage zu erzwingen.

In der Feldliste im Abfrageentwurf:Zielfeldname: CVDate([Formulare]![Formname]![Steuerelementname])
97
Tabelle/Abfrage / Re: Speichern berechneter Werte in der zugrundeliegenden Tabelle
« Letzter Beitrag von Jochen1 am Oktober 10, 2018, 08:15:58 »
Guten Morgen,

so, nun die gezippte Beispieldatenbank.

Im Formular ist -für Testzwecke- noch das Tabellenfeld D enthalten, um zu sehen, in welchem Zeitpunkt der Wert in die Tabelle geschrieben wird.

Ich habe die Formel nun in der Ereignisprozedur "VorAktualisierung" (der einzelnen Felder), nur leider scheint auch in diesem Fall D erst nach Fokusverlust von E aktualisiert zu werden.

Wenn wir das noch lösen könnten, wäre es perfekt.

Schon jetzt vielen Dank für Eure Geduld und Unterstützung !

Jochen

P.S. Nun hoffe ich auch, dass es keine Zeichenbeschränkung gibt.....

98
Tabelle/Abfrage / Re: Abfrage gruppiert nach Wochen, Jahre in den Feldern
« Letzter Beitrag von hajott am Oktober 10, 2018, 07:40:39 »
Hallo zusammen,

wow, ihr seid klasse!

Die Antworten liegen zwar leicht über meinem Verständnisniveau, aber ich habe sie einem Kollegen gezeigt, der sich etwas besser auskennt (aber für mich auch keine Lösung fand)

Das größere Problem war am Ende nicht die Tabellendarstellung, sondern die Zusatzanforderung, das aufzusummieren.

Vielen Dank, Thema gelöst!

Hans-Jürgen
99
Bericht / nach Erstellungsabfrage Datumsformat Binär
« Letzter Beitrag von Lalikowski am Oktober 10, 2018, 06:04:13 »
Guten Morgen,

kann mir bitte jemand sagen, was falsch ist?

In einer Erstellungsabfrage hole ich mir das Datum aus einem Textfeld in einem Form.
Im Textfeld, als auch in der Abfrage ist das Format auf "Datum, kurz" eingestellt.

Wenn ich die Abfrage laufen lasse, ist in der Tabelle das Format jedoch "Binär".... :-\ :-\

Vielen Dank im Voraus

Andreas
100
Tabelle/Abfrage / Re: Speichern berechneter Werte in der zugrundeliegenden Tabelle
« Letzter Beitrag von Lachtaube am Oktober 09, 2018, 20:00:14 »
Verwende das Vor Aktualisierung Ereignis des Formulars. Und wie gesagt, genügt es, wenn das Zielfeld in der Datenherkunft des Formulars vorhanden ist. Du musst kein Steuerelement dafür verwenden. Dasselbe Ergebnis zweimal anzuzeigen bringt ja schließlich keinen Mehrwert.
Seiten: 1 ... 8 9 [10]