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, 1066 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

Offenbar erneutes MS-Update mit Fehlerschleife (2012 R2)

Information von VGem-e zum Thema Windows Update ...

Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

(1)

Information von BassFishFox zum Thema Datenschutz ...

Heiß diskutierte Inhalte
Utilities
CCleaner 5.33 mit Malware infiziert (27)

Information von SeaStorm zum Thema Utilities ...

Windows Systemdateien
Windows bootet nicht mehr Fehlermeldung 0xc0000098 (19)

Frage von franzgoerlich zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
gelöst 802.1X-Authentifizierung (17)

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

Exchange Server
gelöst Proxy Server Settings Cloud + EWS (16)

Frage von SomebodyToLove zum Thema Exchange Server ...