Veröffentlicht 24. September 200222 j Hallo Zusammen, ich habe ein Modul, in dem eine Funktion steht. In einem anderen Modul rufe ich während einer Prozedur die Funktion auf. Ich bekomme immer wieder beim Testen den Fehler "Fehler beim Kompilieren - Argumenttyp ByRef unverträglich". Hier mein Code in dem Funktionsmodul: Public Function CreateOU(Ort as String, OUName as String) es folgt die Funktion... Der Funktionsaufruf in der Prozedur: CreateOU Ort, OUName nun habe ich mehrere Fragen: 1. muss ich in der Prozedur die Variablen erneut deklarieren? 2. warum kommt dieser Fehler? Der Datentyp ist und bleibt String..?! Wenn keiner was dazu weiss, vielleicht kann mir einer sagen, wie man generell eine Funktion mit Parametern in eine Prozedur einbindet - oder besser worauf man achten muss :confused: Wäre dankbar für jede Hilfe! SF :marine
24. September 200222 j Hi, probiers mal mit call Function ("hier dein Ortsname", "wert für die OUName-Variable") Ort as String, OUName as String
24. September 200222 j .......... letzte Zeile nicht beachten für Function dann deinen Function Namen eintragen bzw. du kannst auch call Function (Ort, OUName) die Variablen Ort und Name mußt du dann aber in dem jeweiligen Modul wo du die Funktion aufrufst definiert haben.
24. September 200222 j danke für die schnelle Antwort also ich lese ein Excel-Sheet aus, d.h. die Werte für die Strings ändern sich, sind keine fixen Werte. Call CreateOU (Ort, OUName) und mit dem OUNamen hat er ein Problem, obwohl Ort die selben Bedingungen hat. Gruss SF
24. September 200222 j Warum schreibst Du eigentlich alles fett? Da geht der Sinn der Hervorhebung irgendwie verloren... Hier gibts einige Informationen über die Typisierung von Parametern in VB.
24. September 200222 j weil es mir leichter fällt es zu lesen *g* danke für den link, ich schau mal rein
26. September 200222 j Hallo Es gibt grundsätzlich zwei variaten von Parameterübergabe. ByVal und ByRef Leidergottes ist ByRef Defaulteinstellung bei VB6 was sich in VB.NET wieder geändert hat. Den Unterschied zwischen Call By Value und Call by Refrence kennst du ja aus der Schule. Wenn ByRef also unverträglich ist, warum auch immer, dann nimmst einfach ByVal... Wobei da auch das ganze sicherlich mit Vorsicht zu genießen wäre.. Kommt immer darauf an, was du in der arbeitende Funktion mit dem Parameter-Wert machst...Änderst du die und willst die Änderungen auch in der aufrufenden MEthode haben, dann hast du zwei Möglichkeiten, entweder du übergibst die Variable bzw. Objekt ByRef oder eben ByVal und gibt die geänderte Inhalte dann als Rückgabewert wieder zurück...was in deinem Fall, wahrscheinlich am sinnvollsten wäre, da du dein Obj, nicht ByRef übergeben kannst, warum auch immer... Nette grüsse Blear
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.