msbBox antort auswerten

Moderator: ModerationP

msbBox antort auswerten

Beitragvon snoopy_1959 » 16. Okt 2019, 07:16

Guten Morgen Zusammen,
in einem Combo-Feld wird nach einem Datensatz gesucht, bei dem das eingegebene Kurzzeichen mit dem eingegebenen überein stimmt.

Nun gibt es die Situation in der das nicht eintritt

In meinem Code reklamiert Access, das if then else konstrukt sei nicht richtig.
Leider stehe ich heute auf der Leitung und finde den Fehler nicht.

Code: Alles auswählen
Private Sub cboKurzzeichenSuchgen_NotInList(NewData As String, Response As Integer)

     Dim ctl As CommandButton
     Dim intAnswer As Integer
     Dim msg, Style, Title, Help, Ctxt

     msg = "Das eingegebene Kurzzeichen entspricht keinem aktuell verwendeten Kurzzeichen. " & "Möchten sie dieses Kurzzeichen in fims verwenden? "
     Style = vbYesNo
     Title = "ICT-DB"
     Ctxt = 1000
     Response = MsgBox(msg, Style, Title, , Ctxt)
     
    Set wshshell = CreateObject("WScript.Shell")

     If Response = vbYes Then wshshell.Run "www.blick.ch/"
     Else Me.cboKurzzeichenSuchgen.Value = Null
     End If
     
End Sub


kann mir einer von Euch helfen?
Benutzeravatar
snoopy_1959
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 392
Registriert: 18. Jun 2014, 06:20
Wohnort: Müllheim Dorf

Re: msbBox antort auswerten

Beitragvon KlausMz » 16. Okt 2019, 07:25

Hallo,
Then und Else müssen bei diesem Aufbau jeweils in eine neue Zeile.
Code: Alles auswählen
     If Response = vbYes Then
         wshshell.Run "www.blick.ch/"
     Else
         Me.cboKurzzeichenSuchgen.Value = Null
     End If

Oder alles in einer Zeile. Was ich aber für unübersichtlicher halte.
Code: Alles auswählen
If Response = vbYes Then wshshell.Run "www.blick.ch/" Else Me.cboKurzzeichenSuchgen.Value = Null

End If darf dann nicht verwendet werden.
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Benutzeravatar
KlausMz
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 39236
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: msbBox antort auswerten

Beitragvon snoopy_1959 » 16. Okt 2019, 09:59

Danke KlausMz
das wars.
Wann wird das if then else in einer line geschrieben und wann kann das untereinander geschrieben werden?

Nun rennt das mit dem Code.
Was aber immer noch kommt ist die Info von access, dass ein Wert eingefüllt wurde der keienm Wert in der Liste entspricht

Wie unterdrücke ich nun diese noch?
mit doCmd.setWarnings False geht das nicht bei mir

Code: Alles auswählen
     Dim ctl As CommandButton
     Dim intAnswer As Integer
     Dim msg, Style, Title, Help, Ctxt
     Dim Answere As VbMsgBoxResult

     msg = "Das eingegebene Kurzzeichen entspricht keinem aktuell verwendeten Kurzzeichen. " & "Möchten sie dieses Kurzzeichen in fims verwenden? "
     Style = vbYesNo
     Title = "ICT-DB"
     Ctxt = 1000
     'MsgBox(msg, Style, Title, , Ctxt)
     'Response = MsgBox(msg, Style, Title, , Ctxt)
    Set wshshell = CreateObject("WScript.Shell")
    DoCmd.SetWarnings False
     
     Answere = MsgBox(msg, vbYesNo + vbQuestion, "AGROLA ICT-DB")
     
     
     If Answere = vbYes Then wshshell.Run "http://fims.main.corp.test.com//" Else Me.cboKurzzeichenSuchgen.Value = Null
   
     
     
     
Exit Sub
     
DoCmd.SetWarnings True
Benutzeravatar
snoopy_1959
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 392
Registriert: 18. Jun 2014, 06:20
Wohnort: Müllheim Dorf

Re: msbBox antort auswerten

Beitragvon Bitsqueezer » 16. Okt 2019, 10:22

Hallo,

wenn Deine Zeile bei "Then" endet, dann muß der Rest in weitere Zeilen. Wenn Du einen Befehl nach "Then" in die gleiche Zeile schreibst, erwartet VBA alles zum If-Befehl zugehörige in der gleichen Zeile, Folgezeilen werden dann ignoriert.

Wann Du was verwendest, ist Deine Sache. Prinzipiell ist es strukturierter über mehrere Zeilen, aber bei ganz einfachen Fällen kann das den Code sehr auseinanderziehen und unübersichtlicher machen. Also immer eine Fallentscheidung.

Die Fehlermeldung kommt, weil Du keine gültige Antwort an das Control zurückgibst.

Einfach mal die Hilfe aufrufen und lesen.

Access-Hilfe zu 'Response' hat geschrieben:Diese Einstellung gibt an, wie auf das NotInList-Ereignis reagiert wurde. Das Argument Response kann eine der folgenden systeminternen Konstanten sein:

acDataErrDisplay (Standardeinstellung) Zeigt die Standardmeldung für den Benutzer an. Sie können diese Konstante verwenden, wenn der Benutzer keine Möglichkeit haben soll, einen neuen Wert zur Kombinationsfeldliste hinzuzufügen.

acDataErrContinue Zeigt nicht die Standardmeldung für den Benutzer an. Diese Konstante können Sie verwenden, wenn Sie eine benutzerdefinierte Meldung für den Benutzer anzeigen möchten. So könnte die Ereignisprozedur beispielsweise ein benutzerdefiniertes Dialogfeld mit der Frage anzeigen, ob der Benutzer den neuen Eintrag speichern möchte. Wenn die Antwort Ja lautet, würde die Ereignisprozedur den neuen Eintrag zur Liste hinzufügen und das Argument Response auf acDataErrAdded festlegen. Wenn die Antwort Nein lautet, würde die Ereignisprozedur das Argument Response auf acDataErrContinue festlegen.

acDataErrAdded Zeigt keine Meldung für den Benutzer an, ermöglicht es jedoch, den Eintrag zur Kombinationsfeldliste in der NotInList-Ereignisprozedur hinzuzufügen. Nachdem der Eintrag hinzugefügt wurde, aktualisiert Microsoft Access die Liste durch erneutes Abfragen des Kombinationsfelds. Anschließend überprüft Microsoft Access die Zeichenfolge erneut anhand der Kombinationsfeldliste und speichert den Wert des Arguments NewData in dem Feld, an das das Kombinationsfeld gebunden ist. Wenn die Zeichenfolge nicht in der Liste enthalten ist, zeigt Microsoft Access eine Fehlermeldung an.


Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7210
Registriert: 21. Jun 2007, 12:17

Re: msbBox antort auswerten

Beitragvon snoopy_1959 » 16. Okt 2019, 12:14

Ganz herzlichen Dank für die Hilfen.

Jetzt klappt alles wunderbar und ich glaube das auch verstanden zu haben.
Herzlichen Dank für Eure Hilfe

Snoopy
Benutzeravatar
snoopy_1959
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 392
Registriert: 18. Jun 2014, 06:20
Wohnort: Müllheim Dorf


Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste