collapse

* Benutzer Info

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

* Wer ist Online

  • Punkt Gäste: 70
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 4
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13808
  • stats Beiträge insgesamt: 64126
  • stats Themen insgesamt: 8674
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Datensätze in einem Unterformular zählen  (Gelesen 607 mal)

Offline Zipideus

  • Newbie
  • Beiträge: 21
Re: Datensätze in einem Unterformular zählen
« Antwort #15 am: Dezember 08, 2017, 10:14:43 »
Anbei mal die DB

Mit dem Button oben rechts wird ein neuer Datensatz als Vorlage erzeugt.

Die Kopfdaten müssen entsprechend befüllt werden. Im Unterformular sind unterschiedlich viele Datensätze die eben entsprechend im nächsten Datensatz auftauchen sollen. Mal mehr mal weniger. Daher hatte ich mir das mit der Variablen ausgedacht. Sonst könnte ich immer eine Schleife mit einer Festzahl machen. Das geht aber nicht.

Der VBA liegt hinter diesem Button als Ereignis

Bei Fragen einfach melden.
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7014
Re: Datensätze in einem Unterformular zählen
« Antwort #16 am: Dezember 08, 2017, 11:05:31 »
Hallo,
mir ist immer noch nicht klar was jetzt eigentlich kopiert werden soll.
Der Datensatz im Hafo und alle Datensätze des Ufos ?
Wenn ja reichen 2 Anfügeabfragen, eine kopiert den Hauptdatensatz und eine dann die Detaildatensätze. Anzahl und Schleife braucht es da nicht.
Der jetzige Code zum Kopieren dürfte ersatzlos überflüssig sein.

Anmerkung:
Das Datenmodell so wie das jetzt ist halte ich auf Dauer für unbrauchbar. Und eine Datenbank in diesem Umfang mit einer Beziehung kann auf Dauer nicht richtig funktionieren. Für alle Kombifelder sind Beziehungen einzurichten mit der Zahl als Schlüsselfeld, nicht dem Text. So wie das bei den Ständen gemacht ist (der einen eingerichteten Beziehung).
Und Tabellen ohne Primärschlüssel sind eigentlich ein Unding. Auch die Feld und Objektnamen mit den Leerzeichen sind eher suboptimal als wirklich brauchbar, verursachen nur eine Haufen Mehrarbeit weil immer ein [] Klammerpaar notwendig ist.
Die ganze DB bedarf eigentlich einer gründlichen Überarbeitung, auch wenn sie jetzt noch so gut funktioniert.
Gruß
Klaus
 

Offline Zipideus

  • Newbie
  • Beiträge: 21
Re: Datensätze in einem Unterformular zählen
« Antwort #17 am: Dezember 08, 2017, 11:19:00 »
Kopiert werden sollen die Datensätze im UF - quasi für eine neue Preisliste als Bereitstellung. Im Hauptformular muss dann der jeweilige Erfasser das entsprechende Datum, Vorab oder Final, Preisstand, Zuordnung usw. selber pflegen.

Da sich aber im UF die Datensätze Mengenmässig ändern können sollte der Wert auf eine Variable gelegt werden da ja nicht immer die gleiche Menge kopiert werden soll.

Ist es nun ein wenig klarer geworden ?

Das es Verbesserungspotenziall gibt glaube ich schon. Bin halt kein Profi.
Wurde mir halt mal so aufs Auge gedrückt - Nun mach mal.

Wenn mich da jemand an der Hand nehmen würde wäre das schon toll.

Gruss Hans
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7014
Re: Datensätze in einem Unterformular zählen
« Antwort #18 am: Dezember 08, 2017, 11:33:04 »
Hallo,
immer noch unklar. Soll es dann im Hafo keinen neuen Datensatz geben, sondern nur im Ufo neue Datensätze zum angezeigten Datensatz im Hafo ?
Und sollen die neuen Datensätze mit bestimmten Werten vorbelegt werden ?
Gruß
Klaus
 

Offline Zipideus

  • Newbie
  • Beiträge: 21
Re: Datensätze in einem Unterformular zählen
« Antwort #19 am: Dezember 08, 2017, 12:08:54 »
Doch - Bei Klick auf den Button oben rechts wird ein neues HF angelegt und schon vorbefüllt. Dieses muss dann je nach Motortyp entsprechend geändert werden. Darauf weisst die msgbox nach Abschluss der Kopie der Datensätze aus dem Unterformular dann hin.
Die UF Datensätze werden aus dem Datensatz zuvor heraus kopiert und quasi als Vorlage zur Verfügung gestellt. Können dann jeder für sich natürlich über die Kombibox nach Bedarf geändert werden.
Im Unterformular werden ausgewählte Daten schon mitkopiert um nicht alles immer wieder eingeben zu müssen.

Vielleicht drücke ich mich da etwas unklar aus - Aber ich denke so sollte der Ablauf transparent sein.

Einfach mal klicken

Gruß Hans

 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7014
Re: Datensätze in einem Unterformular zählen
« Antwort #20 am: Dezember 08, 2017, 12:40:17 »
Hallo,
Zitat
Doch - Bei Klick auf den Button oben rechts wird ein neues HF angelegt und schon vorbefüllt.
was heißt hier doch ?
Und mit welchen Werten wird vorbefüllt ? Sind das im Hafo die gleichen Werte des vorherigen Datensatzes oder irgendwelche Dummywerte ?
Und es wird doch keine neues HF angelegt, sondern ein neuer Datensatz, das HF bleibt das gleiche.

Bitte bedenke, dass ich keine Ahnung von Deiner Anwendung habe. Da im Beispiel von Dir keine Beziehungen angelegt sind, ist das Beispiel auch nicht so recht zu verstehen. In einer Beipieldatenbank ist immer der erste Blick in die Beziehungen. Wenn keine angelegt sind ist es schwer für einen Außenstehenden die Zusammenhänge zu erkennen.
Ein Beipiel ohne Beziehungen mit so vielen Tabellen mache ich meistens gleich wieder zu, ohne näher darauf einzugehen. Weil man einfach alles erfragen muss.

« Letzte Änderung: Dezember 08, 2017, 12:46:44 von MzKlMu »
Gruß
Klaus
 

Offline Zipideus

  • Newbie
  • Beiträge: 21
Re: Datensätze in einem Unterformular zählen
« Antwort #21 am: Dezember 08, 2017, 14:03:29 »
Okay - Ich versuche es nochmal

Beim klick auf den Button wird ein neuer Datensatz angelegt.
In diesem Datensatz wird festgehalten an welchem Datum eine Preisliste erstellt wurde. Für welchen Motor/Getriebe/Hybrid usw. (also interne BR Bezeichnung die ich nicht nach außen geben darf) dann um was es sich handelt. Also Otto/Diesel/Triebstrang usw. dann kommt noch zu welchem Preisstand kalkuliert wurde. (Hier ändern sich immer mal wieder die Preise). Dann wer die Preisliste mit wem aufgenommen hat. Weiterhin ob es eine Vorab oder Finale Version ist. Bei Vorab kann man noch die Version eingeben. Zudem hat man noch die Möglichkeit einen Kommentar fest zu halten.

Das war der obere Bereich (HF nenne ich Ihn) Dieser Bereich ist mit Dummy Daten vorbefüllt die dann eben geändert werden müssen. Entsprechend was kalkuliert wurde.

Im unteren Bereich (ich nenne ihn UF) sind die Datensätze vom Datum zuvor (oder Datensatz zuvor also previos) rein kopiert worden. Über Schleife (sinnvoll oder nicht weiß ich nicht) Hier stehen dann die Gewerke. Also Werkstatt/Prüfstände/Klimarollen/Höhenkammern/Dauerlauf/Akustik/Vibration/Schwingung/Thermomanagement usw. mit ihren weiteren Daten wie Stundensätze/Stundenabrechnung/Tage Abrechnung/usw.

Der Sinn ist eine vorgefertigte Preisliste anzulegen in der dann der Anwender nur noch die Stückzahl eingeben muss und evtl. noch einen Kommentar. Alles andere wird ihm angeboten. Ob er dann Stückzahlen einträgt oder nicht ist ihm dann selber überlassen.

In den Berichten kommen dann die Preislisten und zwar nur mit den Feldern die auch beplant wurden. Keine leer Felder

Das man das bestimmt anderst lösen kann glaube ich gleich. Aber ich bin leider kein Profi.

Und noch etwas - Da das ganze flexibel sein soll sind Kombifelder überall hinterlegt da sich so dann und wann mal herausstellt das man das eine oder andere nicht mehr braucht (also raus löscht) oder zusätzlich noch eine Prüfung benötigt die es früher nicht gab. Siehe im Moment die e-Mobilität.

Dadurch ändern sich unten die erfassten/beplanbaren Datensätze nach mehr oder weniger Datensätzen. Und diese Zahl hätte ich gerne. Da die Schleife funktioniert könnte ich hier anstatt einer festen Zahlen die Variable eintragen und hätte somit bei einer Änderung der Datensätze im UF keine Fehlermeldung mehr bei anlegen eines neuen Datensatzes.

Wenn alles statisch wäre hätte ich auch kein Problem - Aber leider, leider

Ich hoffe es ist nun etwas klarer geworden.

Danke auch für Deine Geduld

Grüßle nochmals

Hans 
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7014
Re: Datensätze in einem Unterformular zählen
« Antwort #22 am: Dezember 08, 2017, 14:14:17 »
Hallo,
wenn Du mir jetzt noch sagst welche Dummywerte in die einzelnen Felder der Tabelle des Hafos sollen, mache ich Dir mal ein Beispiel.
Ich könnte zwar die Dummywerte aus Deinem Beispiel entnehmen, aber das ist mir jetzt zu mühsam.
Gruß
Klaus
 

Offline Zipideus

  • Newbie
  • Beiträge: 21
Re: Datensätze in einem Unterformular zählen
« Antwort #23 am: Dezember 08, 2017, 14:22:59 »
Also im Datumsfeld hatte ich glaube ich den 01.01.1901 hinterlegt. Ansonsten stand fast überall Dummy oder Mr.Dummy drin.

Wie gesagt - Einfach mal klicken - dann füllt sich der "NEUE" DS im oberen Bereich mit den besagten Werten. Das ist quasi die vorbefüllung die dann vom Anwender über die Kombifelder geändert werden müssen.

Vielen Dank auch dafür das Du mir da mal einen Vorschlag machen möchtest.

Bin echt gespannt - auch weil ich Access für ein mächtiges Tool halte.
Nur sollte man sich mehr rein knien. Aber dazu braucht man Zeit - und evtl. auch Anleitung

Danke schon mal dafür.

Hans
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7014
Re: Datensätze in einem Unterformular zählen
« Antwort #24 am: Dezember 08, 2017, 14:36:03 »
Hallo,
ich mache Dir ein Beispiel, wird aber gegen Abend werden.
« Letzte Änderung: Dezember 08, 2017, 17:36:02 von MzKlMu »
Gruß
Klaus
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7014
Re: Datensätze in einem Unterformular zählen
« Antwort #25 am: Dezember 08, 2017, 17:15:00 »
Hallo,
anbei das versprochene Beispiel.
Das ist jetzt mit 2 Anfügeabfrage gemacht. Die Anzahl der Datensätze und die Schleife wird nicht benötigt.
Als Datum für den neuen Hauptdatensatz habe ich jetzt 01.01.9999 verwendet, damit wegen der Sortierung der neue Datensatz immer am Schluss steht. Das Datum muss ja doch geändert werden. Das Jahr dann auf 9999, muss ja auch geändert werden.
« Letzte Änderung: Dezember 09, 2017, 19:22:20 von MzKlMu »
Gruß
Klaus
 

Offline Zipideus

  • Newbie
  • Beiträge: 21
Re: Datensätze in einem Unterformular zählen
« Antwort #26 am: Dezember 08, 2017, 18:32:30 »
Hallo Klaus,

vielen Dank für die Datei.

Leider kann ich mir diese erst am Montag anschauen da ich hier bei mir zuhause nur noch eine ganz alte Access Version habe mit der ich die DB nicht öffnen kann.

Dennoch ganz herzlichen Dank für Deine Geduld und Deine Bemühungen.

Ich werde mich ganz sicher mit meinen Eindrücken bei Dir melden - so oder so - Das ist versprochen.

Dir einstweilen ein schönes Wochenende und viele Grüße

Hans
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7014
Re: Datensätze in einem Unterformular zählen
« Antwort #27 am: Dezember 09, 2017, 19:21:47 »
Hallo,
ich habe oben eine modifizierte Version hochgeladen. U.a. habe ich den Code etwas kommentiert.
Bitte noch mal herunterladen.
Gruß
Klaus
 

Offline Zipideus

  • Newbie
  • Beiträge: 21
Re: Datensätze in einem Unterformular zählen
« Antwort #28 am: Dezember 11, 2017, 14:03:14 »
Hallo Klaus,

erst einmal ein herzliches Dankeschön für deine Bemühungen.

So in etwa hatte ich mir das vorgestellt - Sieht schon ganz gut aus.

... aber - Jetzt kommt´s

Ein paar Sachen habe ich noch die mir nicht so gefallen.

Werde da noch mal in den Code gehen müssen und probieren.
Oder aber du kannst mir auch hierbei helfen.

Ich zähle mal auf.

1.) Es wir immer der Datensatz dupliziert auf dem Access im Moment steht.
Also wenn Access auf dem 01.12.2017 steht wird dieser kopiert. Wenn auf dem 02.12.2017 wird dieser kopiert.

So war das nicht gedacht. Er soll immer auf das letzte (aktuellste Datum)  springen und nur dieses kopieren. Da wir immer davon ausgehen das im letzten Datum die aktuellsten Werte stehen.

2.) Ein bisschen schwierig zu beschreiben. Wenn auf neuer Datensatz geklickt wird legt Access diesen an. Soweit okay. Wird dann nochmal auf neuen DS anlegen geklickt macht er dies auch. Dann habe ich aber die doppelte Menge von Datensätzen und der davor ist leer (also nur noch Dummy Daten) im HF - im UF nichts mehr ???

3.) Menge und Kommentare sollen nicht kopiert werden da diese in einer neuen Preisliste ja auch neu eingegeben werden sollen. Es soll ja nur eine Vorlage sein.

Aber was ich toll finde das man dies mit so wenig VBA bewerkstelligen kann.

Das hätte ich so nicht hinbekommen.
Da habe ich einfach zu wenig VBA Kenntnisse.

Wenn du mir bei den oben erwähnten Fehler noch mal zur Hand gehen könntest wäre das genial.

Ich brauche da bestimmt wieder ewig. Bin aber überzeugt das ich es auch hinbekommen würde.

Einstweilen noch einen schönen Tag

Gruß Hans
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7014
Re: Datensätze in einem Unterformular zählen
« Antwort #29 am: Dezember 11, 2017, 14:27:00 »
Hallo,
zu 1)
das ist ja nun wirklich einfach. Der aktuellste DS ist wegen der Sortierung auch der letzte DS. Daher vor dem Kopieren einfach zum letzten DS gehen. Vorsichtshalber noch ein Me.Requery davor, damit es auch stimmt, falls jemand das Formular manuell umsortiert hat.
Zu 2)
Du musst vor dem Kopieren prüfen ob die Felder ausgefüllt sind. Ich habe das mal für ein Feld eingebaut. Das muss ggf. um weitere Felder erweitert werden. Eventuell kann man bereits in der Tabelle die Felder zu Pflichtfeldern machen.

Zu 3)
Auch das ist einfach, hättest Du nur abschreiben brauchen aus dem Kopieren für den Hauptdatensatz. Felder werden durch Zuweisung von Null geleert. Nach diesem Muster:
Zitat
Null As Menge

Übrigens, der verwendete Code ist eine Mischung aus VBA und SQL. Der SQL String wird nur per VBA zusammengebaut und mit Execute gestartet.
Das Kopieren selbst ist kein VBA, sondern wird per SQL erledigt. Jede Abfrage ist SQL, auch wenn die Abfrage im Entwurf gemacht wird.

DB anbei.
« Letzte Änderung: Dezember 11, 2017, 17:45:33 von MzKlMu »
Gruß
Klaus