Access-o-Mania

Access-Forum => Access Programmierung => Thema gestartet von: Zipideus am Dezember 07, 2017, 13:09:06

Titel: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus am Dezember 07, 2017, 13:09:06
Hallo zusammen,

ich bin neu hier und stelle möglicherweise meine Frage an falscher Stelle.
Bitte lyncht mich nicht gleich deswegen.

Meine Frage lautet schlicht.

Wie kann ich aus einem Unterformular das über eine 1 : n Beziehung mit einem Hauptformular verknüpft ist die aktuellen Datensätze ermitteln ?

Ich möchte also eine Zahl z.B. 8 DS gleich Anzahl "8" ermitteln und an die Variable x übergeben.
Zu einem anderen Datum kann das Unterformular jedoch mehr oder weniger DS beinhalten. z.B. "5" oder "12" DS. Dann möchte ich diese Zahl an x übergeben.

Ich habe es versucht mit

x = DCount("*", "Abfrage")

Das funktioniert nur unzureichend da ich hier zwar (in einer MsgBox) ein Ergebnis erhalte, aber nicht das gewünschte. Das Ergebnis ist z.B. wenn ich drei Einträge mit verschiedenen Datum im HF habe. Dann die Summe der Datensätze (im UF) aller Datums.

Ich möchte aber nicht alle Datensätze des UF, sondern nur die Datensätze des (UF) des letzten Datum (des HF) zählen.

Zu diesem Problem finde ich momentan keine Lösung.
Wer kann mir unter die Arme greifen.

Hier im Forum habe ich gesehen das es ähnliche Fragestellungen schon gab.
Die Lösung konnte ich jedoch aus den Antworten nicht heraus lesen.

Nun bin ich echt gespannt - Vielleicht ist die Lösung ja ganz einfach.

Viele Grüße einstweilen.
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: datekk am Dezember 07, 2017, 13:24:08
Hast Du eine Where Klausel in die DCount Abfrage eingebaut? x=DCount("*","Tabelle","Datum=" & me.datumsfeld) ??
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: DF6GL am Dezember 07, 2017, 13:27:42
Hallo,

Zitat
Wie kann ich aus einem Unterformular das über eine 1 : n Beziehung mit einem Hauptformular verknüpft ist die aktuellen Datensätze ermitteln ?


im Unterform:

.
.
Dim x as Long
Me.Recordsetclone.Movelast
x= Me.RecordsetClone.Recordcount
Msgbox x
.
.


Zitat
Das funktioniert nur unzureichend da ich hier zwar (in einer MsgBox) ein Ergebnis erhalte, aber nicht das gewünschte. Das Ergebnis ist z.B. wenn ich drei Einträge mit verschiedenen Datum im HF habe. Dann die Summe der Datensätze (im UF) aller Datums.

Ich möchte aber nicht alle Datensätze des UF, sondern nur die Datensätze des (UF) des letzten Datum (des HF) zählen.

Dem kann ich nur dahingehend folgen, als dass die dahinterliegenden Tabellen nicht normalisiert sind.
Wieso gibt es z. B. 3  Daten (Datumsfelder) im Haupt(einzel-)form?
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: MzKlMu am Dezember 07, 2017, 13:31:21
Hallo,
Du kannst Im Formularkopf des Ufos auch einfach ein Feld anlegen mit folgendem Steuerelementinhalt:
=Anzahl(*)Zeigt immer die Datensatzzahl des Ufos.
Im Hafo kannst Du Dich auf das Feld des Ufos beziehen.
Es geht auch mit DCount und einer Whereklausel.
Dabei muss das Datum im ISO Format (JJJJ/MM/TT) übergeben werden oder man nimmt die reine Zahl.
X = DCount("*", "TabellenName";"Int(DatumsfeldTabelle) = & Int(Me.DatumsfeldFormular)
Warum muss die Datensatzzahl überhaupt in eine Variable und warum auf das Hafo ?
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus am Dezember 07, 2017, 14:19:16
Also nochmal wenn ich mich unklar ausgedrückt habe.

1.) Die Anzahl muss nicht auf das Hauptformular - Davon war keine Rede.
2.) Ich habe natürlich keine drei Datum im Hauptformular. Das war nur ein Beispiel. Ich habe z.B. drei Datensätze die ich durch klicken kann. Also drei verschiedene Datum. An jedem Datum hängen unterschiedlich viele Datensätze in einem Unterformular.
3.) Die Zahl benötige ich für eine Schleife um den Vorgänger Datensatz zu duplizieren in ein neues (4 Datum) ohne alle Datensätze per Hand neu anzulegen.

Die Vorschläge werde ich ausprobieren und natürlich Bericht erstatten.

Vielen Dank aber schon mal jetzt für alle die mir hier Tipps gegeben haben.

Wie ich nun damit zurecht komme wird sich zeigen  :)

Möglicherweise muss ich nochmal Fragen

Dankeschön
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus am Dezember 07, 2017, 15:07:56
Also mit diesem Code passiert etwas - wenn auch das falsche



Dim x as LongEr zeigt mir die Anzahl der Datensätze im HF

Ich jedoch hätte gerne die aus dem Unterformular
Me.Recordsetclone.Movelast
x= Me.RecordsetClone.Recordcount
Msgbox x

Er zeigt mir die Anzahl der Datensätze im HF

Ich jedoch hätte gerne die aus dem Unterformular

Was mache ich falsch ???
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: MzKlMu am Dezember 07, 2017, 15:18:28
Hallo,
es gab ja noch mehr Vorschläge, nicht nur den einen.

Um einen Datensatz zu duplizieren braucht es weder eine Schleife (wozu auch) noch die Anzahl der Datensätze das kann eine Anfügeabfrage mit einer Zeile VBA Code.

Über welches Feld ist denn Hafo und Ufo verknüpft, über das Datum ?


Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus am Dezember 07, 2017, 15:36:43
Ja - ich bin dran
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: MzKlMu am Dezember 07, 2017, 16:03:54
Hallo,
es ist ja auch gar nicht sicher, dass Du das überhaupt brauchst. Siehe meine Hinweise in #6.
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: DF6GL am Dezember 07, 2017, 16:14:31
Hallo,

Zitat
Er zeigt mir die Anzahl der Datensätze im HF

Ich jedoch hätte gerne die aus dem Unterformular

Was mache ich falsch

ich hatte geschrieben:

Zitat
im Unterform:
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus am Dezember 07, 2017, 16:23:23
Also ich habe 2 Tabellen

T002 mit dem Feld Stände_ID (Autowert und Primärschlüssel) ist verknüpft mit T003 Stände_ID (Zahl)
T003 wiederum hat eine Daten_ID (Autowert und Primärschlüssel)

Also in T002 stehen die verschiedenen Stände und solche Sachen wie
-Wann wurde es erfasst
-Wer hat es erfasst
-Ist es eine Vorab Vesion oder eine Finale Version
-Welcher Preisstand wurde verwendet usw.

In der T003 stehen hingegen
- Wer war an der Entstehung der Kosten beteiligt (Werkstatt - Labor - Logistik usw.) diese Daten können sehr unterschiedlich sein. Mal sind es 35 Bereiche und dann wieder nur 12. Von daher sollte sich x variabel gestalten lassen.

Übrigens mit = Anzahl(*) bekomme ich sämtliche Datensätze gezählt die jemals erfasst wurden. Unabhängig vom Datum.

Meines Erachtens muss ich irgendwie das Datum mit in´s Spiel bringen.

So Sinngemäß

- Nehme Datum HF gehe ins UF und zähle.

Und genau das Access nicht

Entweder ich bekomme als Ergebnis die Anzahl wieviele Preislisten es gibt oder eben alle beteiligten Bereich aber nicht nach Datum sondern unabhängig.

X = DCount("*", "TabellenName";"Int(DatumsfeldTabelle) = & Int(Me.DatumsfeldFormular)

habe ich auch probiert - hier kommen Fehlermeldungen. Fehlt wohl ein "

Vielleicht ist auch das Datumsformat falsch

Ich weiß es nicht
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: DF6GL am Dezember 07, 2017, 16:35:39
Hallo,


lad die DB besser mal hier hoch  (komprimiert/repariert, datenreduziert und gezippt) , damit man sieht, was nun Stand der Dinge ist.... 
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus am Dezember 07, 2017, 16:44:11
Sehr ungern - kann ich das auch privat schicken ?
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: MzKlMu am Dezember 07, 2017, 16:53:48
Hallo,
man kann (bzw. sollte) eine Beispieldb mit anonymen Daten erstellen und die dann hochladen.

Zitat
Die Zahl benötige ich für eine Schleife um den Vorgänger Datensatz zu duplizieren
Mir erschließt sich immer noch nicht, wozu Du zum Kopieren eines Datensatzes die Anzahl brauchst. Und eine Schleife braucht es da auch nicht.
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus am Dezember 07, 2017, 17:10:26
OKAY - Werde die DB etwas modifizieren und dir danach hochladen

Das wird aber heute nicht mehr passieren.

Das mit der Schleife habe ich mir einfallen lassen.
Wenn das auch einfacher geht soll es mir recht sein.

Ich werde die DB dann voraussichtlich morgen im laufe des Tages hochladen

Vielen Dank das Du Dich der Sache mal annehmen möchtest.
Das ist ja schon mal ein Erfolg

Melde mich wieder

Gruß Hans
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus 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.
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: MzKlMu 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.
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus 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
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: MzKlMu 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 ?
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus 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

Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: MzKlMu 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.

Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus 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 
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: MzKlMu 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.
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus 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
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: MzKlMu am Dezember 08, 2017, 14:36:03
Hallo,
ich mache Dir ein Beispiel, wird aber gegen Abend werden.
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: MzKlMu 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.
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus 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
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: MzKlMu 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.
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus 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
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: MzKlMu 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.
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus am Dezember 11, 2017, 15:07:12
Hallo Klaus,

danke für die schnelle Resonanz.

Ich schaue mir das auf jeden Fall nochmal an. Aber heute wahrscheinlich nicht mehr.

Steppt gerade der Bär.

Auf jeden Fall bin ich sehr froh eine Hilfe von dir bekommen zu haben

Danke und ich melde mich wieder

Viele Grüße aus Stuttgart

Hans
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus am Dezember 11, 2017, 17:50:57
Hallo Klaus,

nochmal ich. Bin doch noch dazu gekommen nochmals drüber zu schauen.

So ganz zufriedenstellend läuft das Teil noch nicht.

Wenn ich einen neuen Datensatz anlege bzw. angelegt habe und dann aus irgend einem Grund (vielleicht um etwas in einem vorigen DS nachzuschauen) in einen vorigen DS zurück gehe.

Möglicherweise vergessen habe das ich einen Datensatz schon angelegt habe.
Also von diesem vorigen DS nochmal klicke. Dann passiert genau das gleiche das ich vorhin schon beschrieben habe.

Ein neuer DS wird angelegt (obwohl schon angelegt) die doppelte Menge DS stehen im UF. Also alles nochmal (doppelt) und der bereits angelegte DS ist im UF leer. Nur noch die Dummy Daten vorhanden.

Das sollte eigentlich nicht sein.

Ich glaube jetzt wird es schwierig.

Nichts desto trotz - frage ich parallel dazu nochmal wie man die Anzahl der DS im UF auszählen kann.

Wenn du mir da parallel dazu auch noch einen Code liefern könntest wäre das genial.

Ansonsten läuft die DB eigentlich schon so wie wir uns dazu gedacht haben.

Es kommen ständig neue DS hinzu - Man hat aber denoch die Möglichkeit auf ältere DS zurück zu greifen und somit auch Kosten von Vorgänger Aggregaten mit aktuellen Daten zu vergleichen.

Was auch nicht zu unterschätzen ist, ist die Tatsache das man alle Daten an einer Stelle hat und nicht erst nach Otto, Diesel, Hybrid, Frontgetriebe, Heckgetriebe, Achsgetriebe usw. in verschiedenen Ordnern im Excel suchen muss.

So aber nun ist Feierabend

Grüßle nochmals
.....und ich bin sehr gespannt was mich morgen hier erwartet.

Vielliecht die Finale Lösung

Gruß Hans
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: MzKlMu am Dezember 11, 2017, 22:58:24
Hallo,
im Anhang mal die angepasste DB. Oben neben dem Button findest Du ein Feld für die Datensatzzahl im Unterformular. Habe ich unter Protest gemacht  ;D es ist für das Vorhaben einfach überflüssig.

Zitat
Ansonsten läuft die DB eigentlich schon so wie wir uns dazu gedacht haben.
Fragt sich nur wie lange. Was ich weiter oben schon gesagt habe, in der DB besteht erheblicher Verbesserungsbedarf. Mit zunehmender Datenfülle wird das im Datenchaos enden.
- Es gibt nur in 2 Tabellen Primärschlüssel
- Es sind auch keine Beziehungen angelegt.
Beziehungen über Schlüsselfelder sind das A+O einer Datenbank und unerlässlich. Durch die fehlenden Beziehungen kannst Du im Grunde in die Felder schreiben was Du willst. Du kriegst hier im Laufe der Zeit Inkonsistenzen die Du nicht mehr überblickst.

Und nebenbei:
Die Präfixe vor den Objektnamen (T001, A001 usw.) machen nur ein Haufen mehr Schreibarbeit, sonst nix. Und auch die vielen Leerzeichen in Objekt und Feldnamen sind eher hinderlich als hilfreich.
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus am Dezember 12, 2017, 12:37:18
Hallo Klaus,

zum wiederholten Mal muss ich mich bei Dir ganz herzlich bedanken.

So hatten wir uns das vorgestellt.

Deine Einwände habe ich zur Kenntnis genommen, auch das Du den Zähler unter Protest eingefügt hast. Aber ich glaube nicht das ich den Zähler verwenden werde nachdem ja jetzt alles auch ohne geht. Mich hat es einfach interessiert weil ich da im Vorfeld schon einen Haufen Zeit investiert hatte ohne jedoch einen Erfolg zu haben.

Um die Datenbank zu optimieren wären nun also weitere Pflegeaufwände von Nöten. Kannst Du mir dazu Deine Vorgehensweise aufzeigen ?

Aber bitte nicht - Alles löschen und neu aufbauen.

Kann ich an der jetzigen DB (so wie sie jetzt ist) noch ohne allzu großen Aufwand Verbesserungen herbei führen ? oder eher nicht ?

Auf jeden Fall werde ich mich noch um den Code kümmern. Ich möchte einfach noch tiefer in dieses Thema einsteigen da ständig irgendwelche Anfragen aus den Bereichen kommen.

In der jetzigen DB habe ich jetzt schon mal 4 Preislisten, die bisher im Excel geführt wurden, übernommen. Es sollen aber noch mehr werden da dies alles nur Vorab Stände sind die noch Final abgestimmt werden müssen.

Das mal für dich zur Info da du bestimmt auch darauf wartest ob das so in unserem/meinem Interesse ist/war.

Im Moment bin ich begeistert und bin nun einfach noch gespannt was ich der Datenbank noch an Verbesserungen an tun kann.

Viele Grüße und Dankeschön

Hans

Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: MzKlMu am Dezember 12, 2017, 16:59:00
Hallo,
Zitat
Aber bitte nicht - Alles löschen und neu aufbauen.
Doch, eigentlich schon. Es sind ausnahmslos alle Tabellen zu ändern.
Es fehlen auch noch Tabellen.
Wenn die Tabellen umgebaut sind und ordentliche Beziehungen angelgt sind, werden auch Deine Formulare nicht mehr funktionieren.
Meistens ist es daher einfacher alles noch mal neu zu machen.
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Beaker s.a. am Dezember 12, 2017, 18:22:55
Hallo Hans,
Zitat
Meistens ist es daher einfacher alles noch mal neu zu machen.
Und schon erfasste Daten sind ja nicht weg. Und wie du dann in eine
neue, normalisierte Struktur hinein bekommst wird dir hier sicher auch
gezeigt.
gruss ekkhard
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus am Dezember 13, 2017, 16:04:05
Hallo Klaus,
halloe Ekkhard,

Danke erstmal für Eure Bemühuungen.

Nach Klaus Antwort war ich schon etwas down muss ich sagen.
Zumal ich nicht erkennen kann welche Tabellen mir fehlen sollen ???
Ich sag mal (ganz naiv) ich kann doch damit arbeiten.

Aber es interessiert mich wie ich eine "optimale" Datenbank hinbekomme.

Nachdem nun Ekkhard meint das ich die Alt-Daten nicht verlieren würde wäre es schön wenn ich von Euch beiden dann in Erfahrung bringen könnte wie ich eurer Meinung nach vorgehen sollte.

Wie gesagt mir fehlt jetzt im Moment eigentlich nichts....
Meine ich zumindest

Für Anregungen/Antworten bin ich empfänglich

Von daher - Legt los ....  :D

Viele Grüße in die Runde

Hans
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Beaker s.a. am Dezember 14, 2017, 12:10:48
Hallo,
Zitat
Von daher - Legt los ....  :D
Und womit sollen wir anfangen? Mit Klaus' DB aus #32?
gruss ekkehard
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus am Dezember 14, 2017, 13:08:36
Hallo Ekkehard,

Ja - genau.

Die Version lief an sich sehr gut.

Was muss ich mit dieser anstellen das Sie noch besser läuft.

Ich denke ich mache erst mal einen neuen Ordner und stopfe dort eine Kopie dieser Datenbank (allerdings nun schon mit Daten) hinein.

So weit so gut - aber dann ?

Ja dann - dann geht es los - Fragen über Fragen.

Aber ich denke wenn die dann mal so läuft wie ihr euch das vorstellt habe ich auch für die Zukunft was davon.

Gruß Hans
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Beaker s.a. am Dezember 14, 2017, 15:45:06
Hallo,
Puh, das ist ja ein Ganztagsjob  ;)
Da wir aber ja von vorne anfangen wollen kümmerst du dich zuerst um
die Benennung der Objekte (Tabellen/Felder/Abfragen usw.).
Ein paar Tipps dazu hat Klaus ja schon gegeben, wenn ich mich recht
erinnere. Also

 - KEINE Leer- und Sonderzeichen (nur der Unterstrich ist erlaubt)

Das ist Fleissarbeit, - musst du selber machen. Schöne Feldnamen
(für Überschriften) erfasst du im Tabellenentwurf in der Eigenschaft
"Beschriftung" der Felder.
Wenn fertig wieder hochladen.

Zur weiteren Vorgehensweise habe ich, bis auf Grundsätzliches, noch
nicht wirklich eine Idee, da mir die Zusammenhänge (noch) nicht klar
sind.
Z.B.: Was bedeuten die beiden Tabellen T001 und T002 bzw.
warum sind das überhaupt zwei Tabellen?
Und wieso gibt es in T002 einen PK der "Staende_ID" heisst?
Was sind das für Daten in T006 und T007? Da komme ich überhaupt
nicht drauf klar.

gruss ekkehard


P.S. Im weiteren Vorgehen müssen noch PK-Felder eingefügt werden.
Wobei ich Autowert-Felder bevorzugen würde. Durch die jetzt fehlenden
PKs und Beziehungen wird der Erhalt der Daten etwas schwieriger aber
nicht unmöglich. Es werden wahrscheinlich auch noch weitere Tabellen
benötigt.
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus am Dezember 14, 2017, 16:44:37
Hallo Ekkehard,

Bloß mal so zum Verständnis - Dieses Access habe ich nur im Büro.

Zuhause nicht. Daher wird sich die Kommunikation nur unter der Woche
abspielen können und am Wochenende gar nicht. Ich komme zwar von zuhause aufs Forum. Das schon. Aber das Access habe ich zuhause nicht.

Vom  22.12.2017 - 08.01.2018 wird da auch nicht viel stattfinden da Weihnachten und Jahreswechsel ansteht.

Von daher bin ich froh das du dich zur Hilfe bereiterklärt hast, will aber damit sagen das alles ganz ruhig angegangen werden kann.

Als erstes habe ich mir jetzt deine Anmerkungen ausgedruckt und versuche diese umzusetzen bzw. zu beantworten.

Wird aber heute nicht mehr passieren - Weihnachtsfeier ruft schon ganz laut.

Also - ich melde mich voraussichtlich morgen wieder

Gruß Hans

Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Beaker s.a. am Dezember 25, 2017, 18:26:39
Hallo Hans,
Wie per PN angekündigt hier das Beispiel.

Ganz sicher bin ich mir beim DM noch nicht, und zwar
1. (ist mir gerade erst eingefallen)
evtl. sollte/müsste man die Versionen und die Positionen auch über eine
n:m zusammenführen. Das schau ich mir nochmal an. Kann aber 3-4 Tage dauern.
2. Die Beziehungen/Abhängigkeiten der Tabellen T004, T006 und T007
sind mir anhand der Daten immer noch völlig schleierhaft. Da könnte
also noch Änderungs-/Verbesserungsbedarf vorhanden sein.

Ansonsten gibt es ein Formular zur Verwaltung der Preislisten/-Versionen.
Dort siehst jetzt schon ein paar deiner Daten. Da das ja eh alles nur Test-
Daten sind habe ich auf die komplette, automatisierte Übernahme verzichtet.
Die dort rot markierten Steuerelemente kannst du löschen. Das sind die
PK-/FK-Felder die nicht angezeigt werden müssen.
ACHTUNG! NICHT aus der DS-Herkunft löschen; - da werden die Felder
benötigt.

Die eine Abfrage kannst du auch löschen. Die soll dir nur zeigen wie man
die Texte zu den gespeicherten IDs anzeigt.

gruss ekkehard
Titel: Re: Datensätze in einem Unterformular zählen
Beitrag von: Zipideus am Dezember 28, 2017, 14:33:40
Hallo Ekkehard,

wie bereits angekündigt - die etwas geänderte DB

Gruß Hans