Office: (Office 2007) Wiederholungen im VBA leichter?

Helfe beim Thema Wiederholungen im VBA leichter? in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; alles worum es ursprünglich ging war dieser festzen vba zur nutzung eines string beruhend aufeiner abfrage zum zusammenstellen der dort enthaltenen... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Gerd1712, 22. September 2010.

  1. Wiederholungen im VBA leichter?


    Klar gibt das keines der Bücher wieder weil das prinzipiell erstmal nicht sinnvoll ist. Die Antwort ist erstmal als Grundprinzip gedacht und Ausnahmen bestätigen bekanntlich ja die Regel. *wink.gif*

    Aber ... Du hast die Extras zu einem Auto in einer Tabelle stehen und die Extras sind auch mit dem Auto verbunden. Richtig?

    Gut, man könnte den String auch bereits direkt in der Abfrage darstellen oder - was wohl am sinnvollsten ist - man stellt die Extras zu einem KFZ im Bericht über einen Unterbericht zu jedem DS eines Autos da.

    Ich zumindest würde das so lösen.

    Also machst Du zu der Abfrage auf die KFZ eines Abfrage auf Extras in der aber auch die ID des KFZ's vorhanden ist.

    Diese Abfrage bindest Du dann an einen Bericht der nur Extras darstellt. Diesen Bericht fügst Du als Unterbericht zu dem Bericht für die KFZ's ein und verknüpfst die KFZ-ID's miteinander.

    Ergebnis sollte sein das Du zu jedem KFZ-Datensatz im Bericht eine Auflistung aller Extras im Unterbricht erhälst.

    Gruß

    Rainer
     
  2. klasse nun hab ich das mal so übernommen und entsprechend geändert.
    das sieht nun also so aus:

    Code:
    Wobei Extra das entsprechende Feld mit den Inhalten ist. und qry_extras_listing die Abfrage für das im Formular angezeigte KFZ enthaltene Extras ist.

    Damit man sieht das ich ja nun nicht so "überheblich bin" kurz mal dabei geschrieben wie ich den Code nun Interpretiere:

    Publ......
     
  3. Habe die DB so aufgebaut:

    TabKFZ

    TabKFZ_Extras

    TabExtras

    das alles als m:n Beziehung

    Auf die Extras die zum aktuell geöffneten KFZ Datensatz beziehen habe ich eine Abfrage

    Code:
    Dort werden mir ja nun die ganzen Extras zu diesem einen KFZ angezeigt, was machmal auch ne menge sind. Und genau die wollte ich dann in Form der Aufzählung in einem Textfeld zusammenfassen so das der Bericht dann die Extras nicht untereinander anzeigt sondern als Aufzählung mit Komma getrennt.

    Bin ich da von Beginn an Falscch dran gegangen???
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  4. Wiederholungen im VBA leichter?

    Gut, da ich heute es mal etwas ruhiger angehen lasse etwas ausführlicher *wink.gif* :

     
  5. Wie gesagt, die extras sind über ne n:m beziehung demKfz über die ID_kfz zugeordnet.

    Mit ner Abfrage habe ich das so gelöst das die abf nur die Extras auflistet die gerade zu dem geöffneten Datensatz im Formular gehören. Nun wollte ich einen Bericht bauen in dem die Normalen Angaben zum KFZ enthalten sind und die Extras in einem Textfeld unten drunter zusammengefasst werden. Wenn ich jetzt mal von nem Auto ausgehe das ne Voll Hütte hat dann sind das schon bis zu 50 Extras die dem KFZ zugeordnet werden..

    Da ich die Extras icht festlegen wollte sondern die Mglichkeit haben wollte diese jederzeit zu ergänzen oder zu Ändern sind die on einer Extra Tabelle gespeichert Extra_ID / Extra / Sortierschlüssel

    die Ziwschentabelle enthält ID_KFZ und Extra_ID

    Naja und dann die KFZ Tab halt......

    So in diesem Formular das ich habe kann ich die Daten des KFZ ändern. Dort wollte ich nun in Form eines Buttons den Bericht ausdrucken lassen. In dem ja dann die Extras in einem Textfeld zusammengefasst sein sollen. Sonst wäre der Bericht nach dem Druck ja unter umständen zig Seitenlang.

    SO das dazu. Jetzt erst noch mal 1000 Dank für die weitergehende Erklärung. So kann man sich das merken. Wenn ich auch sicher einiges so gemeint habe wie du sagtest, nur in Erklärungen bin ich manchmal echt ........

    So Aus dem letzten habe ich nun entnommen das wenn ich die Funktion Aufrufe muss ich als Parameter die entsprechende ID_KFZ angeben - das reicht in dem Fall also nicht das die Abfrage "qry_extras_listing" schon nur auf den momentan geöffneten Datensatz verweist?

    Abfrage ist diese:
    Code:
     
  6. Wenn es sicher ist, dass das Query immer nur mit den Daten des gesuchten KFZ gefüllt ist, dann reicht das aus.

    Wird nur problematisch wenn Du mit einem Bericht mehrere KFZ ausdrucken willst. *wink.gif*

    Gruß

    Rainer
     
  7. Ne wird nur das eine KFZ benötigt in dem Fall. Allerdings, und nu nicht die Hände über den Kopf zusammenschlagen, hänge ich gerade im Moment bei dem zu übergebenen Parameter.


    Mir brummt der Schädel.

    Würde das nicht auch Funktionieren?

    Code:
     
  8. Wiederholungen im VBA leichter?

    Wenn kein Syntaxfehler drinnen ist, würde es funktionieren.

    Aber wieso nicht gleich als Parameter übergeben?

    Bsp.:

    Code:
    Aufruf dann wie folgt:

    Code:
    Hat das gleiche Ergebnis, aber Du musst Dich nicht mehr drum kümmern was ist wenn Du die Funktion von woanders aus aufrufen willst. *wink.gif*

    Noch ein paar kleinere stylistische aber sinnvolle Änderung mit eingebaut ... wie z.B. alle unnötigen Klammerpaare weg und ein SQL-Statement zuvor in eine Variable zu schreiben. Da kann man bei der Code-Ausführung dann wunderbar mit debug.print (oben auskommentiert) den SQL-String im Direktfenster sehen und prüfen.

    Ach ja ... und es ist sinnvoll die Art der Rückgabe bei einer Function eindeutig zu deklarieren.

    Gruß

    Rainer
     
  9. Und nu bringste mich total zum rotieren - voll durch den Wind!

    Zum einen gehe ich einfach davon aus das die _ dazu dienen das die Zeile weitergeführt wird?

    und zum anderen raff ich jetzt grade garnix mehr. Habe heute jetzt schon die dritte Möglichkeit gelesen wie ich den String fülle und irgendwie funktioniert hier bei mir nicht eine einzige davon. Was zum henker mache ich falsch?

    Könnte heulen!

    die lngKFZID ist so wie ich das Verstehe eine Variable als Long - woher niimmt die aber nun den Inhalt?

    Das Dim returnValue = vbNullString brauch ich nicht hast du gesagt, es wäre Überflüssig.

    strSQL entspricht ja jetzt eigentlich dem SQL Code der Abfrage vn mir bis auf das die Variable lngKFZID da auftaucht, welche eigentlich leer sein dürfte.

    das set db = currentDB muss ich ja lassen

    das set rs = db.openRecord(strSQL) ersetzt jetzt das was voher mit select anfing.....

    Do Until rs.EOF muss bleiben damit er das wiederholt.
    returnValue = ...... is ja das eigentlcihe Stringbefüllen in Form von Extra1, Extra2, Extra3,...usw
    usw...

    aufruf funzt nicht


    auch das von dir angemerkte debug.print strSQL wirf wieder nur ne leere Zeile aus

    und das alles reicht das ich nu voll durcheinander bin


    was mach ich hier denn anders als das du mir da versuchst zu erklären?

    Also so sieht es nun aus:
    Code:
     
  10. Hallo Gerd,

    um zum Bericht mit dem gewünschten Feld Extras zu kommen:

    Bau Dir einen Button "Druck" auf Dein Formular und kopiere in das Ereignis Beim Klicken Deinen obigen Code mit notwendigen Ergänzungen:
    Code:
    Erstelle vorher einen Bericht mit der erforderlichen Datenherkunft (das kann auch Deine Abfrage sein, dann brauchst Du die Bedingung "lngKFZID=" & lngKFZID beim Öffnen nicht. Im Bericht erstelle ein Textfeld "Extras".

    Das alles ist ungetestet, evtl. aber hilfreich für Dich.
     
  11. Den Bericht hab ich noch nicht fertig. Aber das muss ja auch in einem Formular anzeigbar sein wenn ich dort ein Ungebundenes Textfeld habe.

    Hier funktioniert heute nich nicht eine Sache bei mir! Die ganzen Tage hab ich ein Erfolgserlebnis nach dem anderen und heute mit dem doofen String funzt nix!
     
  12. Wenn Du das Extra-Feld zunächst nur auf Deinem Formular sehen willst - umso einfacher:

    Code:
     
  13. Wiederholungen im VBA leichter?

    Habe den Aufruf nun mal in den Code von dem Formular beim Laden eingebaut.

    Code:
    sobald ich das Formular öffne kommt wieder die Fehlermeldung

    1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben

    Wenn ich auf debuggen klicke öffnet sich der code und die Zeile

    Code:
    ist gelb makiert. Im Direktfensterberich steht dann der SQL Code von strSQL mit der richtigen ID_KFZ am Ende!

    Was ist noch nicht richtig? und wie bekomme ich den String nachdem der Aufruf mal funktioniert hat in das ungebundene TExtfeld des Formulars?
     
  14. Und warum?

    Hatte ich nicht vorgeschlagen, zunächst einen Button auf dem Formular einzurichten und den Code dort beim Ereignis Beim Klicken einzufügen?

    Du willst kreativ sein und weißt nicht, was Du tust. *frown.gif*
     
  15. Korrigiere der Aufruf klappt - hatte einen Tippfehler in der SQL

    aber in das ungebundene Textfeld bekomme ich den String noch immer nciht angezeigt!
     
Thema:

Wiederholungen im VBA leichter?

Die Seite wird geladen...
  1. Wiederholungen im VBA leichter? - Similar Threads - Wiederholungen VBA leichter

  2. Bedingte Formatierung / Wiederholungen "ausblenden"

    in Microsoft Excel Hilfe
    Bedingte Formatierung / Wiederholungen "ausblenden": Einen schönen guten Tag, Bräuchte mal hilfe bei der Bedingen Formatierung. Ich würde gerne wiederholungen "ausblenden" (schriftfarbe) , so das immer nur der erste werd klar gezeigt wird sowohl...
  3. Spaltenwerte wiederholen

    in Microsoft Excel Hilfe
    Spaltenwerte wiederholen: Hallo Zusammen Ich habe folgende Probleme Ich habe eine Bereitschaftsliste mit Datumswert mit allen Sonntag und den Feiertagen und in einer weiteren Liste die Namen der Personen. Problem 1 Wie...
  4. Ausblenden von Inhalten per Checkbox / wiederholen von Inhalten

    in Microsoft Word Hilfe
    Ausblenden von Inhalten per Checkbox / wiederholen von Inhalten: Hallo! Ich bin neu in der Community und hoffe auf Eure Unterstützung! Für meine Kollegen entwickle ich derzeit ein Formular, welches diverse Inhaltssteuerungselemente zum Ausfüllen enthält....
  5. Wiederholende Erste Spalte autom. "Gruppieren"?

    in Microsoft Excel Hilfe
    Wiederholende Erste Spalte autom. "Gruppieren"?: Ich bearbeite gerade eine Excel-Tabelle die man auf Arbeit mal so nacheinander erstellt hat. Darin sind Lieferantenpreise aufgestachelt (wollte ich eigentlich in eine Access-Datenbank packen, aber...
  6. Excel Zellenwert aus vorgegebenen Bereich ohne Wiederholung wiedergeben

    in Microsoft Excel Hilfe
    Excel Zellenwert aus vorgegebenen Bereich ohne Wiederholung wiedergeben: Guten Tag, ich bin derzeit dabei mir ein Tabellenblatt aufzubauen, wo ich anhand von Fußballergebnissen mir ein simples Auslosungstool anhand einfacher Formeln baue. Nun bin ich aber beim...
  7. Textbausteine in unterschiedlichen Formatierungen wiederholen

    in Microsoft Word Hilfe
    Textbausteine in unterschiedlichen Formatierungen wiederholen: Hallo zusammen, ich arbeite gerade an der Erstellung einer neuen Word-Vorlage im Büro und stehe vor folgendem Problem: Mein Plan ist, dass der Nutzer beim Öffnen der Vorlagedatei in...
  8. Code Wiederholen / VBA

    in Microsoft Access Hilfe
    Code Wiederholen / VBA: Guten Morgen zusammen, erstmal vorweg , bin kein experte mit Access, ich würde sagen noch ein kleiner anfänger aber schon etwas fortgeschritten...... Und sehr lernfähig ;-) So nun zu meinen...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden