InputBox Abbrechen

Manii

Mitglied
Guten Morgen... schon mein 3. Problem, hoffentlich bekomm ich diesmal ne Antwort.. :)

Ich kann derzeit meine InputBox nicht abbrechen, soll heissen, drückt man den Button 'Abbrechen' kommt ein Laufzeitfehler 13, die Typen seien nicht verträglich.
Mein, so denke ich es zumindest, Problem ist, dass der Wert integer ist.. dazu find ich keine Lösungen im Netz

Hier der Code:

Code:
Dim Auswahl As Integer
    
    Auswahl = (InputBox("Bitte Lieferscheinnummer eingeben", "Lieferschein anzeigen"))
    If Auswahl = 0 Then Exit Sub
       
    'Verbindung mit Datenbank herstellen
    Set cnn = New ADODB.Connection
    cnn.Open " Provider=SQLOLEDB;Integrated Security=SSPI;" & _
              "Persist Security Info=False;Initial Catalog=Lieferscheine; Data Source=BURTSCHERHELEN"
                            
    'Auf Tabelleninhalte zugreifen
    Dim rs As New ADODB.Recordset
 
    rs.Open "SELECT * FROM [Lieferscheine].[dbo].[Lieferscheinanzeige1] WHERE (dbo.Lieferscheinanzeige1.nLSNR = " & Auswahl & ")", cnn

vielen dank, echt wichtig.... steh hier seit über einer stunde
 
Das Problem ist, dass die InputBox einen String zurückgibt, du aber einen Integerwert erwartest. Wenn du jetzt eine Zahl eingibst, macht das nichts, bei einem nicht nummerischen Wert bzw. einem Abbruch (gibt einen leeren String zurück) gibts ein Typenproblem.

Eine schnelle Lösung wäre, die InputBox-Zeile so zu gestalten:
Visual Basic:
Auswahl = CInt(Val(InputBox("Bitte Lieferscheinnummer eingeben", "Lieferschein anzeigen")))


Der Doc!
 
Vielen Dank

Noch eine Frage: Ich kämpfe derzeit mit dem Button 'Abbrechen'. Drückt man den Button, so soll es das Sub verlassen (Exit Sub) und alles stehen und liegen lassen. Allerdins weiss ich die Bezeichnungen für die Buttons nicht. Mein derzeitiger Code (den ich hatte, bevor ich deine Idee ausprobieren konnte):


Code:
Auswahl = (InputBox("Bitte Lieferscheinnummer eingeben", "Lieferschein anzeigen"))
    If Auswahl = vbYes Then
    MsgBox ("ok")
    Else
    Exit Sub
    End If

Wie lautet die korrekte Bezeichnung für den OK Button, anstelle von "vbYes" ? Oder die Bezeichnung für den Abbrechen Button? Allgemein, woher bekomm ich die Bezeichnungen? :)

MfG
 
Für die InputBox gibts keine Button-Definitionen, wenn du eine Abbrechen-Bedingung definieren willst, müsstest du auf entsprechende Controls zurückgreifen oder eine eigene Input-Form machen.


Der Doc!
 
Wie schon mal gesagt, VB gibt beim Abbrechen einen leeren String zurück. Den könntest du auswerten, das wäre eine Möglichkeit:
Visual Basic:
Dim Auswahl As Integer, sString As String 'Dimensionierungen
sString = InputBox("Bitte Lieferscheinnummer eingeben", "Lieferschein anzeigen") 'Lass doch diese unnötigen Klammern weg
If sString = "" Then Exit Sub 'Wenn leer dann raus aus der Prozedur
Auswahl = CInt(Val(sString)) 'In Zahl umwandeln
Klein, Fein, (wenn du willst) Dein!


Der Doc!

EDIT: Hab mich in der 1 und 4 Zeile verschrieben, habs schon korrigiert!
 
Zuletzt bearbeitet:
Guten Morgen Doc!

Nochmals vielen Dank für deinen Beitrag ;-) Code funktioniert einwandfrei.
Schönes Forum hier :) Werd mich mal, sobald die VBA Jobs hier vorbei sind, fein beteiligen.. allerdings sicher nicht hier im VB Forum ^^

Vielen Dank,

Mani
 
Zurück