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, 3232 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
Mit freundlichen Grüßen
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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

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 ...

Windows Server
gelöst SQL-Server Datenbanksicherung inkl. Benutzerberechtigungen dafür? (4)

Frage von 1410640014 zum Thema Windows Server ...

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 ...