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

Unterstützung bei Inputbox inkl. If-Schleifen

Frage Entwicklung VB for Applications

Mitglied: aivilon

aivilon (Level 1) - Jetzt verbinden

07.05.2012 um 12:23 Uhr, 3251 Aufrufe, 5 Kommentare

Hallo Zusammen

Mein Problem ist folgendes:
Ich möchte mittels einer Inputbox einen Pfad abfragen. Wenn kein Wert eingetragen wird, und trotzdem ok gedrückt wird, soll mittels einer Messagebox (vbokonly) mittgeteilt werden, dass ein gültiger wert eingetragen werden muss. mit betätigen von ok soll sich die Inputbox wiederholen (Refresh?).
Wenn Ein Wert eingetragen wird, sollte mittels (dazu habe ich eine funktionierende funktion) exist abfrage ermittelt werden ob der Pfad vorhanden ist. Wenn nicht wird wiederum per messagebox (vbokonly) mittgeteilt, dass der pfad nicht existiert, und auch hier wird die inputbox wiederholt.
Mit einem klick auf Cancel wird per Msgbox (vbokcancel) mitgeteilt, dass hiermit das Programm beendet wird. Bei klick auf Ok geschieht dies auch. Mit einem klick auf cancel wird die inputbox wiederholt.

Ich bring das einfach nicht hin. Bisjetzt hab ich folgendes:
01.
            If FileOrDirExists(Appdata & "\.minecraft\bin\") = True Then 
02.
                dir = New System.IO.DirectoryInfo(Appdata & "\.minecraft\bin\") 
03.
            ElseIf FileOrDirExists(Appdata & "\.minecraft\bin\") = False Then 
04.
                strPfad = InputBox("Bitte Pfad zur Minecraft.jar Datei angeben: ", "Pfad eingeben")   'Bis hier funktioniert alles 
05.
                If strPfad = " " Then 
06.
                    strMsg = MsgBox("Bitte einen Pfad eingeben!", "Kein Pfad", vbOKOnly) 
07.
                    Me.Refresh() 
08.
                ElseIf strPfad = "" Then 
09.
                    strMsg = MsgBox("Hiermit wird MC Startup Helper beendet!", "Beenden", vbOKCancel) 
10.
                    If MsgBoxResult.Ok Then 
11.
                        End 
12.
                    ElseIf MsgBoxResult.Cancel Then 
13.
                        Me.Refresh() 
14.
                    End If 
15.
                End If 
16.
            End If
Kann mir wer helfen?

Grüsse aivilon
Mitglied: SlainteMhath
07.05.2012 um 12:59 Uhr
Moin,

aus dem Kopf und ohne Gewähr:
01.
do while true 
02.
  strPfad=inputbox(....) 
03.
  if strPfad="" then 
04.
    if msgbox("hiermit wird.... beendet",vbOkCancel)=MsgBoxResult.Ok then Exit Do 
05.
  else 
06.
    if strPfad=" " then  
07.
      Msgbox("Bitte gültigen Pfad....") 
08.
    else 
09.
      'Wenn Pfad Existiert, dann Exit Do, sonst Msgbox("Pfad existiert nicht") 
10.
    End If 
11.
  End if 
12.
loop
lg,
Slainte

/EDIT: Typos korrigiert.
Bitte warten ..
Mitglied: emeriks
07.05.2012 um 13:04 Uhr
Hi,

versuch mal so:

01.
If FileOrDirExists(Appdata & "\.minecraft\bin\") Then  
02.
    dir = New System.IO.DirectoryInfo(Appdata & "\.minecraft\bin\")  
03.
Else  
04.
    strMsg = "" 
05.
    do 
06.
        strMsg = MsgBox("Bitte einen Pfad eingeben!", strMsg , vbOKOnly)  
07.
        if strMsg.Trim <> "" then 
08.
            'es wurde etwas eingegeben 
09.
            If not FileOrDirExists(strMsg.Trim) then 
10.
                'Pfad existiert nicht 
11.
                msgbox("Der Pfad """ & strMsg & """ exitiert nicht oder kein Zugriff!", vbExclamation, "Fehler!") 
12.
            else             
13.
                'Pfad existiert 
14.
                exit do 
15.
            end if 
16.
        end if 
17.
    loop 
18.
end if
mfg
MRX
Bitte warten ..
Mitglied: aivilon
07.05.2012 um 13:46 Uhr
Zitat von SlainteMhath:
Moin,

aus dem Kopf und ohne Gewähr:
01.
> do while true 
02.
>   strPfad=inputbox(....) 
03.
>   if strPfad="" then 
04.
>     if msgbox("hiermit wird.... beendet",vbOkCancel)=MsgBoxResult.Ok then Exit Do 
05.
>   else 
06.
>     if strPfad=" " then  
07.
>       Msgbox("Bitte gültigen Pfad....") 
08.
>     else 
09.
>       'Wenn Pfad Existiert, dann Exit Do, sonst Msgbox("Pfad existiert nicht") 
10.
>     End If 
11.
>   End if 
12.
> loop 
13.
> 
lg,
Slainte

/EDIT: Typos korrigiert.

OK das kommt dem Ganzen schon näher. Nur:
Wenn ich beim Hinweis zum Beenden auf OK klicke, wird nur die Messagebox weggeklickt. Hier sollte sich jedoch das ganze Programm beenden.

Des weiteren hab ich noch das Problem, dass wenn ich ohne eine Eingabe auf OK klicke ebenfalls der Hinweis zum Beenden erscheint.

Und aus irgend einem Grund erscheint das Fenster auf einer total merkwürdigen Position (ca. +0, +500) ?!

01.
        Do While True 
02.
            strPfad = InputBox("Bitte Pfad zur Minecraft.jar eingeben!", "Pfad eingeben", strMsg, vbOKOnly) 
03.
            If strPfad <= " " Then 
04.
                If MsgBox("hiermit wird MC Startup Helper beendet", vbOKCancel) = MsgBoxResult.Ok Then Exit Do 
05.
            Else 
06.
                If strPfad < " " Then 
07.
                    MsgBox("Bitte einen Pfad eingeben!", vbExclamation, "Bitte Pfad eingeben!") 
08.
                Else 
09.
                    If FileOrDirExists(strMsg) = False Then 
10.
                        'Pfad existiert nicht 
11.
                        MsgBox("Der Pfad """ & strMsg & """ exitiert nicht! Bitte korrekten Pfad eingeben", vbExclamation, "Fehler!") 
12.
                    Else 
13.
                        'Pfad existiert 
14.
                        Exit Do 
15.
                    End If 
16.
                End If 
17.
            End If 
18.
        Loop
#Edit: aktuellen Code hinzugefügt
Bitte warten ..
Mitglied: aivilon
07.05.2012 um 14:37 Uhr
#Falsch kommentiert....
Bitte warten ..
Mitglied: aivilon
07.05.2012 um 14:43 Uhr
So ich habs jetzt fast hingekriegt. Bis auf das Ganze mit dem Abbrechen und danach Beenden. Wenn ich jetzt auf Abbrechen drücke, kommt die MessageBox "Bitte Pfad eingeben".
Hier der aktuellste Code:

01.
        If FileOrDirExists(Appdata & "\.minecraft\bin\") Then 
02.
            dir = New System.IO.DirectoryInfo(Appdata & "\.minecraft\bin\") 
03.
        Else 
04.
            strMsg = "" 
05.
            Do 
06.
                strMsg = InputBox("Bitte Pfad zur Minecraft.jar eingeben!", "Pfad eingeben", "", vbOKOnly) 
07.
                If System.Runtime.InteropServices.Marshal.StringToBSTR(strMsg) = 0 Then 
08.
                    If MsgBox("hiermit wird MC Startup Helper beendet", vbOKCancel) = MsgBoxResult.Ok Then Exit Do 
09.
                ElseIf strMsg = vbNullString Then 
10.
                    MsgBox("Bitte einen Pfad eingeben!", vbExclamation, "Bitte Pfad eingeben!") 
11.
                Else 
12.
                    If FileOrDirExists(strMsg) = False Then 
13.
                        'Pfad existiert nicht 
14.
                        MsgBox("Der Pfad """ & strMsg & """ exitiert nicht! Bitte korrekten Pfad eingeben", vbExclamation, "Fehler!") 
15.
                    Else 
16.
                        'Pfad existiert 
17.
                        dir = New System.IO.DirectoryInfo(strMsg) 
18.
                        Exit Do 
19.
                    End If 
20.
                End If 
21.
            Loop 
22.
        End If
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell HPE Cmdlet - If - Else (3)

Frage von MasterBaiter zum Thema Batch & Shell ...

Groupware
gelöst Intranetlösung mit Zimbra-Unterstützung (4)

Frage von 0gCidTbdWg zum Thema Groupware ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(9)

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

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

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

Basic
Programmierung von Windows Programmen (10)

Frage von Ghost108 zum Thema Basic ...