Office: (Office 2003) Kopieren mehrerer Datensätze mit deren in Beziehung stehenden DS

Helfe beim Thema Kopieren mehrerer Datensätze mit deren in Beziehung stehenden DS in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Also, jetzt kommt weiterhin die "Argument ist nicht optionalmeldung": (Rot ist der markierte Bereich beim debugging) '1.) Public Sub... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Adversarius, 1. Februar 2014.

  1. Kopieren mehrerer Datensätze mit deren in Beziehung stehenden DS


    Also, jetzt kommt weiterhin die "Argument ist nicht optionalmeldung":

    (Rot ist der markierte Bereich beim debugging)

    Ich habe den Verdacht, dass dies an der nicht zugewiesenen "ZuKopierendeEntwurfNr_PZA" liegt, aber diese wird in der AUFDaten_Tabelle nicht benötigt (vgl. gif Beziehungen)?
     
    Adversarius, 10. März 2014
    #31
  2. Ach komm! Das ist doch wieder das gleiche Prinzip.

    Aufruf:
    Code:
    Und wie sieht die Prozedur aus:
    Code:
    => ZuKopierendeEntwurfNr_PZA wird von der Prozedur erwartet, auch wenn der Parameter später im Prozedur-Code nicht verwendet wird.

    mfg
    Josef
     
    Josef P., 10. März 2014
    #32
  3. Ja völlig klar, aber ich habe den bewusst rausgelassen, weil mit der Entwurfsnummer die Meldung kommt "Element in dieser Auflistung nicht gefunden". (Die erste Abfrage übergibt nämlich keine Entwurfsnummer, da diese in Projektdaten noch nicht vorhanden ist).

    Code:
    so wäre es ja richtig!?

    qdf.Parameters("ZuKopierendeEntwurfNr_PZA") = ZuKopierendeEntwurfNr_PZA '("Name in Abfrage") = Name im Code
    wird markiert. Mit Auflistung ist doch eine /mehrere der Abfragen gemeint richtig?
     
    Adversarius, 10. März 2014
    #33
  4. Kopieren mehrerer Datensätze mit deren in Beziehung stehenden DS

    Code:
    Code:
    Ich bin der Meinung, so wäre es nicht richtig, weil du die Parameter vertauscht hast. *wink.gif*

    Du musst die Parameter-Werte genau in der Reihenfolge an die Prozedur übergeben, wie sie in der Prozedur deklariert sind.

    Wenn du die Prozedur OpenProjektzuAuftragQueryDef auch für Abfragen verwenden willst, die keinen Parameter "ZuKopierendeEntwurfNr_PZA" enthalten, könntest du dir eine Zahl als Parameterwert überlegen, die du im Code prüfst und falls dieser Wert enthalten ist, den Parameter nicht einstellst.

    Z. B.:
    Code:
    Aufruf:
    Code:
    Ich würde an dieser Stelle aber lieber eine extra Prozedur verwenden, damit es nicht irrtümlich zu einer falschen Verwendung kommt.

    .. und damit dann nicht Code mehrfach vor kommt, könnte man eine extra Hilfsprozedur erstellen, an die man eine Parameterauflistung inkl. Werte übergibt und die dann die Abfrage-Parameter befüllt. (Das zeige ich jetzt aber nicht, da das nichts mit deinem Problem zu tun hat - ich will das nur erwähnen, da mir viel an "sauberem Code" liegt. *wink.gif*)

    mfg
    Josef
     
    Josef P., 10. März 2014
    #34
  5. VIELEN, VIELEN DANK JOSEF!

    Also jetzt funktioniert wirklich alles, sowohl Projektduplizierung, als auch Umwandlung in Auftrag. Ich habe jetzt auch alle Abläufe verstanden denk ich. Das Hauptproblem war wohl, dass ich die Übergaberichtungen jeweils falsch verstand habe.

    Ich habe mir jetzt auch eine Hilfssub erstellt, ist das so "vernünftig/sauber"? (will das ja auch richtig lernen):
    Code:
     
    Adversarius, 10. März 2014
    #35
  6. Hallo!

    Noch ein kurzer Ausflug in den Programmierstil. *Smilie

    Ein einfacher Test:
    Wenn du deinen Code ansiehst und der Code-Ablauf ohne Kommentare verständlich ist, ist das ein gutes Zeichen. (Für mich sieht die Code übersichtlich und verständlich aus.)
    Code, der nur mit extra Kommentar-Zeilen verständlich wird, dem schadet vermutlich eine Überarbeitung (Refactoring) nicht.


    Jetzt komme ich aber noch einmal auf den bereits erwähnten Hinweis mit dem doppelten Code zurück.

    Diese 2 Prozeduren haben einen sehr ähnlichen Ablauf - nur die Parameter sind etwas unterschiedlich.
    => Mit einer weiteren Hilfsprozedur (die dann übrigens global verwendbar wäre) könnte man den Code eventuell noch etwas übersichtlicher gestalten.

    Code:
    An diese Prozedur können nach dem Parameter "QueryDefName" weitere Parameter (Anzahl ist nicht fixiert) übergeben werden.
    Für diese Prozedur werden diese ParamArray-werte in folgender Reihenfolge benötigt:
    "ParamName1", ParamWert1, "ParamName2", ParamWert2, ... , "ParamNameN", ParamWertN

    Damit wird aus deinen 2 Prozeduren OpenProjektzuAuftragQueryDef und OpenProjektzuAuftragKOPFDATENQueryDef dieser Code:

    Code:
    Ein Problem sehe ich bei der Prozedur "ExecuteParamQdf": Man kann nicht über den Compiler prüfen, ob der Programmierer die Parameter richtig übergeben hat.
    Das ist jetzt zwar nicht sehr schlimm - aber auch nicht ganz sauber. - Ein Kompromiss zw. "sauber" und "komfortabel unter VBA" *Smilie

    "Sauberer"/fehlervermeidender wäre eine Übergabe einer Parameter-Auflistung (Collection o. ä.), die man wieder über eine weitere Hilfsfunktion erstellt und in der dann fix auf den Parametername sowie der Parameterwert zugegriffen wird und nicht "gehofft" wird, dass der Programmierer diese Werte abwechselnd ins ParamArray schrieb.

    =>
    Code:
    Wenn so eine ähnliche Schleife genutzt werden kann, kann es zu keiner Verwechslung zw. Parametername und Parameterwert kommen.

    mfg
    Josef
     
    Josef P., 10. März 2014
    #36
Thema:

Kopieren mehrerer Datensätze mit deren in Beziehung stehenden DS

Die Seite wird geladen...
  1. Kopieren mehrerer Datensätze mit deren in Beziehung stehenden DS - Similar Threads - Kopieren mehrerer Datensätze

  2. Werte aus mehreren Spalten kopieren und darunter einfügen

    in Microsoft Excel Hilfe
    Werte aus mehreren Spalten kopieren und darunter einfügen: Hallo zusammen, leider konnte ich im Internet und auch in diesem Forum keine passende Antwort finden. Ich habe eine .csv Datei, bei der ich mehrere Spalten habe. Es handelt sich hierbei um...
  3. Kontrollkästchen (mehrere) Makro kopieren, Problem: Zellen nicht gegenseitig überschreiben

    in Microsoft Excel Hilfe
    Kontrollkästchen (mehrere) Makro kopieren, Problem: Zellen nicht gegenseitig überschreiben: Hallo zusammen, ich arbeite gerade an einer Vereinfachung für Bestellungen. Ich habe es hingekriegt, dass Kontrollkästchen an zu wählen sind und dann bestimmte Informationen kopiert werden. Jetzt...
  4. Daten aus mehreren Blättern kopieren

    in Microsoft Excel Hilfe
    Daten aus mehreren Blättern kopieren: Hallo zusammen, ich würde gerne in der Spalte B den Namen aus einem anderen Blatt kopieren. Händisch müsste ich so in die passenden Zeilen die Formel ='1'!$B$3; ='2'!$B$3, ='3'!$B$3 eintragen....
  5. Tastaturbefehle Ctrl + C, Ctrl + V, Ctrl + X funktionieren in Word nicht mehr

    in Microsoft Word Hilfe
    Tastaturbefehle Ctrl + C, Ctrl + V, Ctrl + X funktionieren in Word nicht mehr: Hallo zusammen Seit kurzem funktionieren in Word die Tastauturbefehle für Kopieren, Einfügen, Ausschneiden nicht mehr. Das Problem tritt nur in Word auf – überall sonst funktionieren die Kürzel....
  6. Mehrere Zellen aus geschlossener Datei kopieren

    in Microsoft Excel Hilfe
    Mehrere Zellen aus geschlossener Datei kopieren: Hallo, ich versuche aus einer geschlossene .xls Datei 7 Zellen zu aktive Mappe zu kopieren. Das Klappt aber nicht mit folgenden Code. Sub aa() Dim Rechnung As String Dim Datum As String Dim...
  7. Mehrere Datensätze markieren, kopieren und mit aktuellem Datum einfügen

    in Microsoft Access Hilfe
    Mehrere Datensätze markieren, kopieren und mit aktuellem Datum einfügen: Hallo zusammen, ich habe ein Problem, bei dem ich gerade leider nicht weiter komme. Ich habe eine Access-Datenbank erstellt, in der u.a. täglich mehrere Datensätze kontrollierter Bauteile...
  8. Makro VBA: Kopieren aus Quelldatei nach Zieldatei über mehrere Tabellen

    in Microsoft Excel Hilfe
    Makro VBA: Kopieren aus Quelldatei nach Zieldatei über mehrere Tabellen: Hallo, leider kann ich maximal Makros aufzeichnen. Damit komme ich bei meinem jetzigen Problem allerdings nicht weiter. Problem: Monatlich soll ein Auszug von Daten aus einer Quelldatei die ich...
  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