Office: (Office 2013) 2 dimensionales Array als Parameter übergeben

Helfe beim Thema 2 dimensionales Array als Parameter übergeben in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Ein ParamArray kann IMHO nicht optional übergeben werden. Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Crashbreaker, 30. Januar 2016.

  1. 2 dimensionales Array als Parameter übergeben


    Ein ParamArray kann IMHO nicht optional übergeben werden.
     
    CptChaos, 2. Februar 2016
    #31
  2. hm ...
    Wie könnte man dann die Funktion "Machwas" auch ohne Parameterübergabe bedienen?
     
    Crashbreaker, 2. Februar 2016
    #32
  3. *confused.gif* War nicht ursprünglich der Plan/Wunsch etwas mehrdimensionales zu übergeben??? Das funktioniert (bedingt) ja offensichtlich jetzt für Dich mit dem ParamArray. Warum soll es jetzt plötzlich wieder ohne gehen?
     
    CptChaos, 2. Februar 2016
    #33
  4. 2 dimensionales Array als Parameter übergeben

    Nun ja, wie der Name schon sagt "Optional" würde ich die Funktionsparameter optional halten wollen.

    Mit ParamArray klappt es. Bin auch soweit zufrieden.
    Jedoch sollte man die Funktion auch ohne etwas übergabe bedienen können.

    Sprich, wenn in die SQLstring nichts hinzukommt.
    ...


    Ich überlege gerade. Theoretisch könnte ich doch die Parameter mit "if-block" abfangen.
     
    Crashbreaker, 2. Februar 2016
    #34
  5. Habe gerade in einer Methode von mir nachgesehen in der ich auch ParamArray verwende.
    Du kannst statt der "Parameterkette" einfach "" oder vbNullString übergeben
     
    CptChaos, 2. Februar 2016
    #35
  6. Und warum machst du das nicht einfach?

    Bei einem ParamArray-Parameter muss man keine Parameter übergeben.
    Code:
    Der Code in der Prozedur "Machwas" muss natürlich so gestaltet sein, dass er auch ohne übergebenen Parameter auskommt.
    For i = 0 To UBound(KeysAndValues) / 2 + 1 Step 2
    wird nicht die passende Schleife liefern, wenn kein Parameter übergeben wurde. (.. aber das ist Handwerk, das ich keinem Programmierer - egal in welcher Sprache er Fachexperte ist - erklären muss. *wink.gif*)

    Beispiel:
    Code:
    mfg
    Josef
     
    Josef P., 2. Februar 2016
    #36
  7. Hallo nochmal.

    Ehrlich gesagt verstehe ich den Sinn hier nicht.

    Du möchtest im Sourcecode so etwas schreiben:

    Code:
    Wie oft würde das oder etwas ähnliches in deiner Applikation vorkommen? 10mal, 100mal?

    Nach meinem bescheidenen Dafürhalten wäre der Code doch viel einfacher zu lesen und zu verstehen, wenn du einfach schreiben würdest:

    Code:
    Welchen Hintergrund hat deine Frage bzw. "Forderung" an Access? Ist es dein Wunsch ist, gewisse, seit langer Zeit eingeprägte Programmiertechniken nach Access-VBA zu übertragen, ohne deren Sinnhaftigkeit überhaupt in Frage zu stellen oder kritisch zu reflektieren?

    Nachdem hier inzwischen wirklich gute Lösungen oder Lösungs-Hinweise gegeben worden sind, fragst du plötzlich auch noch nach "leeren Übergaben" an z. B. "MachWas". Wenn du nichts übergeben willst, dann brauchst du die Funktion ja nicht aufzurufen, oder?

    Ähnlich kritische Fragen würde ich übrigens auch zu deinem UTF-8-Thread stellen wollen.

    Geht es dir um ein konkretes Projekt oder "nur" um akademische Fragen zur Anwendung exotischer Konstrukte auf einer theoretischen Ebene?

    Ich könnte mir vorstellen, dass du an einer theoretischen Aufgabe arbeitest, vielleicht einer Examens-Arbeit, die diverse Sprachkonstrukte in diversen Anwendungs-Umgebungen untersuchen und vergleichen soll.

    Oder liege ich mit dieser Vermutung völlig daneben?

    Ich bin auf deine Antwort gespannt.

    Gruß,

    Dinkel
     
  8. 2 dimensionales Array als Parameter übergeben

    Zum einen freut mich das. Zum anderen kann ich mir zwei kleine Anmerkungen
    dazu auch nicht verkneifen, ich hoffe du nimmst mir sie nicht übel.
    Das sei jedem mal gestattet. Auch dir, sonst hättest du mich richtigerweise mit Marsu statt fälschlicherweise mit Markus benannt.*wink.gif*

    Da das nun das zweite Thema von dir ist, bei dem ich diese Lorbeeren ernten kann, der Tip, deine Eingangsfragen präziser zu formulieren.
    Weniger abstrakt, viel konkreter mit Schilderung des Gesamtzusammenhangs wie du es erst in deinem Beitrag #14 getan hast.
    Das vermeidet Missverständnisse und Raterei auf der Seite derer, die dir hier im Forum gerne behilflich sind.

    Zu deinen evtl noch nicht gänzlich beantworteten Fragen:
    /2 weil Anzahl der 'Wertepärchen' = die Hälfte der Gesamtanzahl der Parameter
    +1 weil Datenfelder in VBA standardmäßig vom Index her null-basiert sind (Siehe auch die Hilfe zu den Options-Einstellungen)
    Step 2 damit von Key zu Key 'gesteppt' wird.
     
    Marsu65, 2. Februar 2016
    #38
  9. Ja das habe ich auch später erst bemerkt. Da hast du recht.

    mfg
    Josef

    Ja so bin ich auch vorgegangen.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Crashbreaker, 2. Februar 2016
    #39
  10. Das wird bei jeden Datensatz vorkommen. Also unzählige male.


    Wer im Unternehmen so programmieren würde, würde fristlos gekündigt werden.
    Denn das wäre im wirklichen Einsatz für die Software Hersteller tödlich.

    Hast du was von "SQL injection" schon mal was gehört?
    Gibt das mal bei Google ein oder hier bei WIKI wird es auch nochmal erklärt:
    SQL-Injection


    Der Sinn, wird im obigen Link den ich für dich gegooglet habe erklärt.
    Aber kurz erklärt:
    Wenn man Daten via Formulare an die DB schickt, müsste dies vorher maskiert werden um die DB oder sonst was nicht zu hacken etc.

    Ja es sind wirklich paar gute Lösungen gefallen, die ich auch weiter analysiert habe. Trotz dennoch können weitere (andere) fragen entstehen, da man das Projekt weiter entwickelt und vorausschauend programmiert.

    Klar braucht man die Funktion weiterhin immernoch, auch wenn keine Parameter übergeben wird. Man darf die Möglichkeiten nicht beschränkt betrachten.

    Ein Beispiel:
    Wenn Parameter übergeben wird, macht die Funktion etwas erweitertes. In dem Fall überprüft und Maskiert er die Eingabe die durch dem Nutzer kommen und überreicht diese an die DB weiter.

    Wenn aber kein Parameter übergeben wird, dann verarbeitet die Funktion nur die SQL Anweisung so wie sie dem Nutzer zur Verfühgung gestellt werden soll.


    Dies hat mit diesem Thema hier nichts zu tun und geht einem ganz anderen Programmiertechnik nach.

    Du liegst da teils, teils richtig. Das ist im Kombination von allem etwas. Möchte dich aber da auch jetzt nicht verwirren. Das ist auch total unwichtig ...

    MfG
    Daniel
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Crashbreaker, 2. Februar 2016
    #40
  11. Oh sorry, muss versehendlich ein Tippfehler sein, auch wenn es inzwischen 2 mal vorgekommen ist. War etwas unter Zeitdruck und da kann es schon mal dann vorkommen. Aber dies ist kein vergleich zu meinem geäußterten Kritik. Denn ich musste mich mehrfach wiederholen (mache ich zwar gerne aber) als die Resultate immer noch gleich bleibend waren, musste ich das dann loswerden.

    Leider genau das war auch mein Problem. Im 1. Beitrag habe ich mein Problematik zu sehr abstrakt gehalten. Als ich dann bemerkt habe, dass es doch nicht anders Möglich war es doch noch präziser zu Schilder, tat ich es dann im 14. Beitrag.

    Manchmal funktioniert das anscheinend nicht, wenn man zu sehr abstrakt denkt.

    Okay, danke für die Beantwortung. Hatte es mir so schon gedacht nur wollte ich halt nochmal sicher gehen.

    MfG
    Daniel
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Crashbreaker, 2. Februar 2016
    #41
  12. Hallo!

    [etwas OT, aber vielleicht passen die Gedanken trotzdem zum eigentlichen Vorhaben]

    Wer im Unternehmen so programmieren würde, würde fristlos gekündigt werden.
    Denn das wäre im wirklichen Einsatz für die Software Hersteller tödlich.

    Hast du was von "SQL injection" schon mal was gehört?

    Kannst du mir bitte zeigen, wie SQL-Injection bei einem konstanten String passieren kann? *wink.gif*
    Sorry, aber wenn du ordentliche Programmierung mahnst, dann bitte an einem Beispiel bei dem das auch eintreten kann.
    Deine gezeigte Funktion mit dem Param-Array sichert auch keine SQL-Injection ab. Warum solle dann ein Vorschlag, der dein Vorhaben nicht kennt, alles möglichen Sicherheitmaßnahmen enthalten?

    => Sql-Injection muss beim Zusammensetzen eines SQL-Ausdrucks beachtet werden.

    Wenn wir schon dabei sind: Warum verwendest du keine Parameterabfragen und befüllst die Parameter per Code statt einen SQL-Ausdruck zu erstellen? Parameter-Abfrage sind immer (ohne notwendige Absicherung im Code) Sql-Injection-sicher.

    Wenn du lieber SQL-Text erzeugst und deine ParamArray-Funktion zum Erzeugen des SQL-Ausdrucks dienen soll, dann stellst sich für mich die Frage - vor allem, weil du OOP erwähnt hast - warum du das in einer einzigen Funktion und nicht mit einer "SqlStringBuilder"-Klasse erstellst.

    Ich stelle mir das z. B. so vor:
    Code:
    mfg
    Josef
     
    Josef P., 2. Februar 2016
    #42
  13. 2 dimensionales Array als Parameter übergeben

    Mir viel auf die schnelle (da momentan auf Zeitdruck bin) keine gescheite Beispiel. Ich habe nur von der Simpelheitshalber diesen Beispiel genommen, damit er versteht was ich meine.

    Das ist mir schon klar, dass ParamArray das auch nicht sichert. Mir ging es erst einmal nur darum, wie ich Array als Parameter an eine Funktion/Methode übergeben kann.

    Man Arbeitet doch Schritt für Schritt oder wie geht ihr denn vor?

    Ja das tut es bei mir später in der Funktion/Methode

    Wie und was genau meinst du?
    So fitt wie du in Access+VBA bin ich noch nicht. Bin noch Einsteiger.

    mfg
    Josef

    Ich versuche ja hier OOP anzuwenden. Bisher verfahre ich gut damit.
    Aber den "SqlStringBuilder"-Klasse kannte ich noch nicht und laut deinem Beispiel ist das natürlich noch besser.

    Man braucht ja nicht den Rat neu erfinden, wenn etwas ausgereiftes und gutes Verfügbar ist.

    Hast du denn bzgl. dessen noch mehr Vorschläge für mich?
    Wäre ich dir sehr dankbar. Denn mir fehlt leider reichlich an Erfahrung was Access und VBA betrifft.

    MfG
    Daniel
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Crashbreaker, 2. Februar 2016
    #43
  14. Mein Projekt kennt "SqlStringBuilder" nicht.
    Muss ich dafür irgendeinen Verweis aktivieren?
    Wenn ja welche denn genau?

    Bitte um Erläuterung.

    MfG
    Daniel
     
    Crashbreaker, 2. Februar 2016
    #44
  15. Nun Daniel, so eine SQLStringBuilder-Klasse müsste man dann schon selbst programmieren oder, wenn man die Werkzeuge hat, der Dot Net-Umgebung entlehnen.
     
Thema:

2 dimensionales Array als Parameter übergeben

Die Seite wird geladen...
  1. 2 dimensionales Array als Parameter übergeben - Similar Threads - dimensionales Array Parameter

  2. Mittelwert aus mehreren Spalten als dynamisches Array

    in Microsoft Excel Hilfe
    Mittelwert aus mehreren Spalten als dynamisches Array: Hallo liebes Forum, ich bin bei folgendem Problem ratlos: Ich berechne für verschiedene Dozenten Feedback anhand von 3 verschiedenen Kriterien. Die Stammdaten der Feedbacks stehen in einer...
  3. Adressen in eine Zelle bei Übereinstimmung eindeutiger Werte einer anderen Spalte

    in Microsoft Excel Hilfe
    Adressen in eine Zelle bei Übereinstimmung eindeutiger Werte einer anderen Spalte: Hallo zusammen, wer letzteren Thread kennt, hier eine Neuauflage. Problem: Aus Array-Berechnungen (Variablen von Let) ein weiteres Array zu erzeugen, welches für alle eindeutigen Werte aus G die...
  4. Zahlendubletten im Array

    in Microsoft Excel Hilfe
    Zahlendubletten im Array: Guten Morgen liebe Community, anbei ein vereinfachtes Beispiel der Problematik, da das Original mehrere LAMBDA-Funktionen und Tabellen mit einbezieht. Ich benötige die Lösung, um eine weitere...
  5. Array aus Excel Tabelle einlesen Word VBA

    in Microsoft Excel Hilfe
    Array aus Excel Tabelle einlesen Word VBA: Hallo, ich benötige in einer Word Datei die Werte einer Excel Datei. Ich würde gerne eine Spalte als Array einlesen. Wie das Array ein lesen in Excel geht weiß ich, aber wie schaffe ich den...
  6. Summenteilergebnis eines Arrays als Array darstellen

    in Microsoft Excel Hilfe
    Summenteilergebnis eines Arrays als Array darstellen: Hallo Community, Summenteilergebnis eines Arrays als Array darstellen. An dieser Stelle stecke ich fest. Ich habe eine Testmappe erstellt, die die Problematik versucht darzustellen. Bevor jemand...
  7. Formel bei Veränderung von dynamischem Array "mitziehen"?

    in Microsoft Excel Hilfe
    Formel bei Veränderung von dynamischem Array "mitziehen"?: Hallo liebes Forum, ich komme bei folgendem Problem nicht weiter und habe mir hier etwas Hilfe erhofft: Ich habe eine Tabelle mit Feedbacks zu Lehrgängen/Kursen. Diese will ich nach Dozent erst...
  8. 2 Dimensionales Array an andere Sub übergeben

    in Microsoft Excel Hilfe
    2 Dimensionales Array an andere Sub übergeben: Hallo zusammen wie kann ich ein 2 Dimensionales Array an eine andere Prozedur übergeben ? Hätte gerne eine allgemeine Erklärung, da die Beispiele im Netz in der Regel auf ein Excel-Sheet bezogen...
  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