Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 1032 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
C und C++
gelöst IF Abfrage funktioniert nicht mehr (2)

Frage von pablovic zum Thema C und C ...

VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...