Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Wert aus Abfrage in Formular anzeigen

Begonnen von yme24, Januar 31, 2019, 08:14:55

⏪ vorheriges - nächstes ⏩

MzKlMu

#45
Hallo,
unter welchen Umständen genau wird nicht berechnet ?
Ich habe das probiert, bei mir wird berechnet.
Es muss auch erst eine Prüfung angelegt werden, mit Datum damit ein Basispreis eingetragen wird.

@Ekkehard
Nz braucht es hier nicht. Sobald ein Messwert eingetragen wird, wird auch berechnet. Und ohne Messwert macht eine Berechnung keinen Sinn. Bei mir klappt das ja.
Gruß Klaus

Beaker s.a.

@Klaus
O.K., muss gestehen, dass ich mir die Beispiel-DB nicht angeschaut habe.
War also mehr so ein Schuss ins Blaue
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

yme24

Guten Morgen Klaus,

ich habe da gestern glaube ich einen Fehler eingebaut als ich die Aktivierungsreihenfolge angepasst habe - das hat wohl dazu geführt, dass bei neuen Datensätzen keine Berechnung durchgeführt wurde. Jetzt habe ich das Prüfdatum im Hafo auf 2 (Prüfnummer auf 0, Firma auf 1) und jetzt geht es (wieder).  ::)

Habe versuchsweise mal eine Abfrage für einen Export erstellt, aber auch hier stoße ich leider an meine Grenzen. Ziel war es den letzten Datensatz (sprich das letzte Prüfprotokoll je Kunde) abzufragen und an eine Wordvorlage zu übergeben. Leider habe ich keine Möglichkeit gefunden die Messdaten und Stoffe in einer Zeile abzubilden - habe also mehrere Zeilen je Prüfprotokoll und damit kommt Word nicht klar. Hättest du da evtl. noch einen Tipp für mich?  :-[

VG,
Martin

MzKlMu

Hallo,
auf Word verzichten und einen Access Bericht erstellen.
Oder wozu brauchst Du Word ?
Gruß Klaus

yme24

Wenn ich einen Bericht so gestalten kann, dass ein Brief dabei herauskommt geht das freilich mit einem Bericht.  :D

VG,
Martin

MzKlMu

Hallo,
Du müsstest mir mal ein Idee geben, wie ein solcher Bericht aussehen könnte.
Gibt es da ein Logo ?
Umfasst der Bericht immer nur einen Prüfbericht ?

Gruß Klaus

yme24

#51
Hallo Klaus, guten Morgen

Ich glaube es ist am Ende nicht wahnsinnig kompliziert, aber ich hatte gestern ein anderes Projekt auf dem Tisch und konnte mich nicht damit beschäftigen. Ich glaube am schwierigsten ist es das Format zu finden und das wir natürlich nur die gemessenen Werte übermitteln.
Im Prinzip ist der Bericht ein Brief an den Kunden, in dem er mitgeteilt bekommt welche Werte gemessen worden sind und welcher Betrag ab Zeitpunkt der Prüfung berechnet wird. Habe dir mal ein annonymisiertes Beispiel angehängt.
Der Briefkopf mit unseren Daten und Logo wird nicht mit gedruckt, da wir dafür Kopfbögen verwenden.

VG,
Martin

Edit: Habe es gerade mal versucht mit dem Bericht. Ich bekomme die verschiedenen Messwerte/Stoffe nicht in einen Datensatz. Access erstellt für jede Stoff ID eines Prüfberichts eine eigene Seite  ??? Den Rest hab ich hinbekommen (sofern die SummeZuschlag Geschichte funktioniert, die ich aus dem Ufo übernommen habe)

MzKlMu

#52
Hallo,
im Anhang eine neue Version (03) mit dem Bericht.
Der Bericht (InfoBrief) kann direkt aus dem Formular mit dem Prüfbericht über den Button aufgerufen werden.
Der Bericht ist nur grob angelegt. Den musst Du noch verfeinern.

Ich habe auch die Berechnung umgestellt. Die berechneten Werte werden nicht mehr gespeichert, die werden immer nur aktuell berechnet. Das ist die bessere Methode, weil die Funktionen direkt in den Abfragen sind. Es wird immer zuverlässig berechnet.

Die Basiswerte werden immer über das Datum der Prüfung automatisch berechnet.
Sollten sich die Basispreise mal ändern, einfach einen neuen Datensatz mit Datum von - bis anlegen, fertig.

Sollte eines Tages (sag niemals nie) die Grenzwerte für die Berechnung des Zuschlags geändert werden, muss die Tabelle um 2 Datumsfelder erweitert werden und die Funktion analog zum Bassiswert angepasst werden.
Oder, wenn Du sagst das könnte vorkommen, baue ich es noch ein.

DB anbei.
Gruß Klaus

MzKlMu

Hallo,
Bitte die Version 03 (aus meinem vorherigen Beitrag) noch mal herunterladen. Da war noch ein Fehler drin.
Gruß Klaus

yme24

Hallo Klaus,

vielen Dank für den Bericht. Mit den VBA Geschichten hast du mich jetzt soweit, dass ich deinen Ideen nicht mehr folgen kann  ;D ;D ;D

Habe die DB heute Morgen heruntergeladen und den Bericht fertig gestellt. Dabei ist mir aufgefallen, dass ich bei den Messwerten keine Dezimalstellen eingeben kann. Es erscheint dann ein Laufzeitfehler. Habe mal in der Tabelle geschaut und auch da (in einer Kopie) habe ich festgestellt, dass Dezimalstellen immer sofort gerundet werden. Ich konnte leider keinen Befehl etc. finden der das unterbindet. Die Formatierung der Tabellenfelder brachte leider keine Änderung.

Ich lade die aktualisierte Version gleich herunter.

VG,
Martin


Edit: die Grenzwerte dürften sich eigentlich nicht ändern. Es geht hier um chemische bzw. biologische Prozesse... die ändern sich nicht einfach so. Aber zu 100% ausschließen kann man es nie, das stimmt.

MzKlMu

#55
Hallo,
sorry, da habe ich nicht aufgepasst.
Das hängt mit den unterschiedlichen Dezimaltrennzeichen Deutschland - USA zusammen. VBA spricht englisch. Und da wird als Dezimatrennzeichen der Punkt erwartet.
Da muss noch eine kleine Funktion ergänzt werden, die aus dem Komma einen Punkt macht.
Gehen in das VBAmodul und ändere wie folgt:
Public Function fncZuschlag(MW As Variant, ID As Variant) As Double
If IsNull(MW) Or IsNull(ID) Then Exit Function
    MW = Str(MW) '<<<<<<<<< Diese zeile einfügen
    fncZuschlag = Nz(DLookup("Zuschlag", "tbl_Zuschläge", "von < " & MW & " and bis >=" & MW & " and StoffeID_F = " & ID), 0)
End Function


Und in der Tabelle Zuschläge ist der Datentyp der Felder von und bis in Double zu ändern.
Ich habe oben noch mal die verbesserte DB hochgeladen.
Bitte die Version 03 aus meinem Beitrag #53 noch mal herunterladen und die alte 03er entsorgen.
Gruß Klaus

yme24

Hallo Klaus,

Danke, ich lade die DB herunter.
Hast du einen Tipp für mich wie ich den Bericht (habe den von der ursprünglichen DB V_03 ja schon eingerichtet) in die aktuelle Version hineinbekomme?

VG,
Martin

MzKlMu

Hallo,
den Bericht kannst Du über externe Daten importieren.
Vor dem import den Bericht löschen, dann importieren. Das geht verlustfrei.
Gruß Klaus

yme24

Hallo Klaus,

bitte entschuldige die lange Sendepause meinerseits.
Ich habe inzwischen alle Anpassungen die ich brauche vorgenommen und angefangen die letzten Prüfprotokolle einzutragen.
Soweit funktioniert alles Bestens - nochmals vielen Dank für deine Arbeit! - 2 Sachen sind mir aber aufgefallen die ich gerne nochmal mit dir besprechen möchte.
1. Wenn man im Formular aus versehen einen Stoff zuviel ausgewählt hat, kann man es nicht rückgängig machen da das Kombinationsfeld dann eine Eingabe erzwingt. Ich habe mir hier insofern geholfen, dass ich in die tbl_Stoffe einen Wert "_" ,also Leerzeichen, hinzugefügt habe den ich auswählen kann. Das funktioniert gut, solange ich noch keinen Messwert eingegeben habe (habe ich ja für gewöhnlich nicht weil ich spätestens dort merke, dass die Eingabe des Stoffes fehlerhaft war). Wenn aus versehen aber dennoch ein Messwert eingegeben wurde, habe ich die Zuschlagsberechnung auf dem Bericht. Dafür ist mir noch keine Lösung eingefallen.
2. Ist vermutlich off-topic, aber im Berichtsentwurf korrekt platzierte Felder werden beim Druck leicht verschoben. Habe mir das jetzt mühsam so hingestrickt, dass es beim Druck sauber aussieht - allerdings sieht nun die Druckvorschau verschoben aus. Kennst du da einen Kniff wie das korrekt aus dem Entwurf in den Druck übertragen werden kann?

Ah und eine Sache habe ich noch. Keine Angst, das ist keine Anforderung an die DB aber ich habe mich gefragt wie es möglich ist Mittelwerte der gemessenen Stoffe (nur die üblichen 3) aus allen bisher eingegebenen Prüfberichten zu bilden und beim jeweiligen Kunden im Formular anzuzeigen.
Ich habe aus Ehrgeiz einfach mal versucht das zu bauen, bekomme es alleine aber nicht hin. Hast du hier einen Tipp für mich welcher Ansatz zum erfolg führt?

VG,
Martin

MzKlMu

Hallo,
Zu 1)
Du kannst einfach den Datensatz löschen. Auf den Datensatzmarkierer klicken und "Entfernen" drücken. Weg isser. Der Datesatzmarkierer ist das kleine Rechteck mit dem kleinen schwarzen Pfeil oder mit dem Stern.

Zu 2)
Kann ich nix sagen, aber Du musst zum Ansehen die Seitenansicht nehmen, die Berichtsansicht ist untauglich. Berichts und Seitenansicht sind 2 verschiedene Dinge. Nur die Seitenansicht taugt zur Voransicht und Vergleich.

Zu 3)
Habe ich Dir in der Version 04 eingebaut. Das ist auch relativ einfach. Man kann eine Abfrage erstellen für die Mittelwerte und dann ein Ufo zur Anzeige. Das Ufo wird über die KundenID verknüpft. Dann sieht man immer die Mittelwerte des Kunden.

Zur Beachtung:
Die Mittelwerte werden für die StoffID<4 gerechnet. Daher darf sich an der Reihenfolge der relevanten Stoffe in der Stofftabelle nichts ändern.


Gruß Klaus