Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Abfrage über function bei vbs

Frage Entwicklung VB for Applications

Mitglied: RobertKa

RobertKa (Level 1) - Jetzt verbinden

22.10.2014, aktualisiert 17:26 Uhr, 1071 Aufrufe, 4 Kommentare

Hallo zusammen,

habe ein vb Script, welches je nach Aufruf verschiedene Mails verschickt. Es funktioniert also schon. Und das einwandfrei. Der Nachteil dabei ist, dass unter der jeweiligen function eine Menge jeweils gleicher Code und Text etc drinsteht. Muss ich was im Mailtext oder so ändern, muss ich das 4mal machen. Im Grunde wird ja eigentlich nur immer eine andere Mailadresse verwendet.
Jetzt hab ich mir gedacht dies wie folgt zu vereinfachen und nach der function einfach einen Parameter aufzunehmen und dann drunter mit if und else etc. das ein einem zu verarbeiten. Aber bei der Ausgabe ist sParameter immer leer. Wahrscheinlich ist es auch ganz einfach, aber ich komm nicht dahinter. Kann mir jemand sagen warum?

Vielen Dank und viele Grüße

Robert
Dim sParameter

function MailanPrivat01
sParameter = "1"
end function

function MailanPrivat02
sParameter = "2"
end function

function MailanFirma01
sParameter = "3"
end function

function MailanFirma02
sParameter = "4"
end function

MsgBox "Mail an " & sParameter, 48, "Test"
Wscript.Quit
Mitglied: colinardo
LÖSUNG 22.10.2014, aktualisiert um 17:26 Uhr
Hallo Robert,
hier ein Beispiel wie man Funktionsparameter verwenden kann:
01.
Function sendMail(intParameter) 
02.
	Dim mailto 
03.
	Select Case intParameter 
04.
		Case 1 
05.
			mailto = "mailPrivat01@domain.de" 
06.
		Case 2 
07.
			mailto = "mailPrivat02@domain.de" 
08.
		Case 3 
09.
			mailto = "mailFirma01@domain.de" 
10.
		Case 4 
11.
			mailto = "mailFirma02@domain.de" 
12.
	End Select 
13.
	'...... 
14.
	'------ Hier der Rest deiner Mail-Routine ------ 
15.
	MsgBox "Sende mail an: " & mailto 
16.
End Function 
17.
 
18.
'Sende Mail an Privat 1 
19.
sendMail 1 
20.
'Sende Mail an Privat 2 
21.
sendMail 2 
22.
'etc ....
Du kannst der Funktion auch mehrere Parameter übergeben wenn du Bedarf hast, diese werden einfach mit Komma voneinander getrennt:
01.
Function sendMail(intParameter,strSubject,strBody) 
02.
'.... 
03.
End Function 
04.
'Aufruf der Funktion mit mehreren Parametern 
05.
sendMail 1,"Betreff","Das ist ein Body-Text"
Innerhalb der Funktionen greifst du dann mit den definierten Parameternamen auf die übergebenen Werte zu.

Siehe zu Prozeduren und Funktionen auch:
http://www.html-world.de/488/prozeduren-und-funktionen/

Grüße Uwe
Bitte warten ..
Mitglied: RobertKa
22.10.2014 um 17:27 Uhr
Hallo Uwe,

besten Dank. Funktioniert einwandfrei. Wenngleich ich immer noch rätsele, warum in meiner Version sParameter immer leer war.

Jedenfalls vielen Dank und viele Grüße

Robert
Bitte warten ..
Mitglied: colinardo
22.10.2014, aktualisiert um 17:51 Uhr
Zitat von RobertKa:
Wenngleich ich immer noch rätsele, warum in meiner Version sParameter immer leer war.
Weil die Variable innerhalb der Funktion geschützt ist. D.h innerhalb des Funktionskörpers ist dies Quasi eine neue Variable die nur in der Funktion verfügbar ist, die Ursprüngliche Variable außerhalb der Funktion änderst du damit nicht.
Das kannst du aber z.B. mit einer Rückgabe des Wertes aus der Funktion ändern. Um etwas aus einer Funktion zurückzugeben weist du dem Namen der Funktionen den Wert zu,
01.
Function sendMail() 
02.
        'Wert aus der Funktion zurückgeben 
03.
	sendMail = 2 
04.
End Function 
05.
 
06.
'Funktion aufrufen und zurückgegebenen Wert der Variablen zuweisen 
07.
sParameter = sendMail 
08.
 
09.
MsgBox sParameter
Steht oben in der Referenz ...

Etwas ähnliches kannst du mit ByRef ("Referenzparameter") vor dem Parameternamen erreichen, dann wird die ursprüngliche Variable geändert.
01.
Dim sParameter 
02.
Function sendMail(ByRef sPar) 
03.
	sPar = 20 
04.
End Function 
05.
 
06.
msgbox "Parameter hat noch keinen Wert : " & sParameter 
07.
 
08.
'Funktion mit ByRef Parameter aufrufen 
09.
sendMail sParameter 
10.
 
11.
' sParameter wurde durch die Funktion geändert und hat jetzt den Wert 20 
12.
msgbox "Parameter hat nun den Wert : " & sParameter
Hoffe das hat zu deinem Verständnis beigetragen

Schönen Abend
Grüße Uwe
Bitte warten ..
Mitglied: RobertKa
22.10.2014 um 19:01 Uhr
Hallo Uwe,

ja das hat es. Danke! So etwas ähnliches hab ich mir schon gedacht.

Viele Grüße und ebenso schönen Abend.

Robert
Bitte warten ..
Ähnliche Inhalte
VB for Applications
gelöst Kommunikation zwischen vbs und javascript (1)

Frage von it4baer zum Thema VB for Applications ...

Batch & Shell
gelöst Hilfe Bei einem vbs Script (19)

Frage von Hattori-Hanzo zum Thema Batch & Shell ...

Monitoring
Abfrage Netzwerkdruckerstatus (13)

Frage von phil905 zum Thema Monitoring ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Linux Desktop
Bildschirmauflösung unter Linux festlegen (12)

Frage von itebob zum Thema Linux Desktop ...

Windows Userverwaltung
gelöst Administrator hat alle Rechte verloren (10)

Frage von mrdead zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Gebäude mit WLAN ausstatten (9)

Frage von udobec zum Thema LAN, WAN, Wireless ...

Windows Server
Kennwort vergessen bei Hyper vserver 2012r (9)

Frage von jensgebken zum Thema Windows Server ...