Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: Brallu am Februar 06, 2017, 19:05:25

Titel: MsgBox wenn Eingabewert in Tabelle nicht vorhanden ist.
Beitrag von: Brallu am Februar 06, 2017, 19:05:25
Hallo Access Gemeinde,
leider habe ich schon das nächste Problem.

Ich Suche in einem Formular, mit einem Kombinationsfeld, in einer Tabelle nach einem Wert um dann den Datensatz anzeigen zu lassen. Das klappt auch wunderbar.
Nun mein Problem:
Wenn ich einen falschen/nicht vorhandenen Wert eingebe dann soll mir eine MsgBox sagen das der Wert nicht vorhanden ist und wenn es noch möglich ist alle Formularfelder leeren.

Im Netz gibt es scheinbar nix einfach verständliches.
Ich hoffe ihr könnt mir nochmal helfen.

Gruß
Brallu

Titel: Re: MsgBox wenn Eingabewert in Tabelle nicht vorhanden ist.
Beitrag von: el_gomero am Februar 06, 2017, 19:25:53
Moin,

da die Msgbox ja zur Laufzeit der Suche aus dem Kombi_Click ausgeführt werden soll, wäre deren Code interessant.
Titel: Re: MsgBox wenn Eingabewert in Tabelle nicht vorhanden ist.
Beitrag von: Brallu am Februar 06, 2017, 20:15:58
Hallo Jürgen,
wo kann ich das sehen? Ich habe das Feld über den Assistenten erstellt.

Sorry Anfänger :-[

Gruß
Danny
Titel: Re: MsgBox wenn Eingabewert in Tabelle nicht vorhanden ist.
Beitrag von: el_gomero am Februar 06, 2017, 20:20:13
Hi Danny,

Entwurfsansicht, Kombi markieren, Rechtsklick - Ereignis auswählen. Damit wird die IDE geöffnet. Komplette Sub hier posten.
Titel: Re: MsgBox wenn Eingabewert in Tabelle nicht vorhanden ist.
Beitrag von: Brallu am Februar 06, 2017, 20:34:44
Da stehr nix!!

Bei Ereignis ist nix drin!?

Nur bei eingebettetes Makro unter Bedingung = steht:
="[RZNrZusammen] = " & "'" & [Screen].[ActiveControl] & "'"

Sorry
Titel: Re: MsgBox wenn Eingabewert in Tabelle nicht vorhanden ist.
Beitrag von: el_gomero am Februar 06, 2017, 20:50:51
tja, das ist die Krux an den Makros ... deshalb empfiehlt es sich gleich den Code selbst in VBA einzugeben ... und das könnte (verkürzt) so aussehen


Sub kmbFilter_Change()


   If DCount("*", "FormQuelle",  "[RZNrZusammen] = '" Me.kmbFilter & "'") > 0 Then
      Me.Filter = "[RZNrZusammen] = '" Me.kmbFilter & "'"
      Me.FilterOn = True
   Else
       MsgBox "keine Daten gefunden, bitte Kriterien ändern"
   End If

End Sub
Titel: Re: MsgBox wenn Eingabewert in Tabelle nicht vorhanden ist.
Beitrag von: Brallu am Februar 06, 2017, 21:24:25
Danke Jürgen,
das werde ich morgen mal ausprobieren!!
Titel: Re: MsgBox wenn Eingabewert in Tabelle nicht vorhanden ist.
Beitrag von: Brallu am Februar 07, 2017, 20:30:44
Hallo Jürgen,
leider habe ich von VBA noch weniger Plan als von Access :(

Ich habe deinen Code in VB unter der frmDatenSuchenBilderGruppe2 gespeichert.
Das Kombinationsfeld zum suchen der Nr. heist  RZNummerSuchen .
Die Abfrage aus der die Daten in das Formular geladen werden sollen heist qryRzNRWirdZusammengesetzt   
und hier aus der Spalte RZNrZusammen.
Unter Datensatzherkunft stand:
SELECT [qryRzNRWirdZusammengesetzt].[RZNrZusammen] FROM qryRzNRWirdZusammengesetzt;

Leider habe ich nicht den Plan wo ich deinen Code abändern muss.
So macht er jedenfals eine Fehlermeldung beim ersten Me
Fehler beim Kompilieren: Erwartet: Listentrennzeichen oder )

Hoffe das du mir nochmals weiterhelfen kannst.

Gruß und Danke
Danny



Titel: Re: MsgBox wenn Eingabewert in Tabelle nicht vorhanden ist.
Beitrag von: Beaker s.a. am Februar 07, 2017, 21:11:20
Hallo Danny,
Versuche es so.

Sub kmbFilter_AfterUpdate()
'Change halte ich bei Kombis für überflüssig, da Kombis die Auswahl
'autom. einschränken
   Dim strFilter As String

   strFilter = "[RZNrZusammen] = '" & Me.kmbFilter & "'"
'zum Testen
Debug.Print strFilter

   If DCount("*", "qryRzNRWirdZusammengesetzt",  strFilter) > 0 Then
      Me.Filter = strFilter
      Me.FilterOn = True
   Else
       MsgBox "keine Daten gefunden, bitte Kriterien ändern"
   End If

End Sub


gruss ekkehard
Titel: Re: MsgBox wenn Eingabewert in Tabelle nicht vorhanden ist.
Beitrag von: Brallu am Februar 07, 2017, 22:14:27
Hallo Ekkehard,
leider bin ich wohl zu blöd >:(
Wo muss ich das einfügen. Es zeigt keinen Fehler an aber scheint auch keine Wirkung zu haben.
Die Bezeichnung vom Kombinationsfeld sollte doch irgendwo auftauchen oder???
Ich habe es jetzt bei der Form im VBA gespeichert. Das ist wohl falsch was??

Gruß
Danny
Titel: Re: MsgBox wenn Eingabewert in Tabelle nicht vorhanden ist.
Beitrag von: Beaker s.a. am Februar 07, 2017, 22:38:40
Hallo Danny,
Öffne das Formular mit dem Kombi in der Entwurfsansicht und markiere
das Kombi. Mit F4 öffnest du jetzt das Eigenschaftenfenster und geht's
auf die Registerkarte "Ereignisse". In der Zeile "Nach Aktualisierung" wählst
du den Eintrag "Ereignisprozedur" und klickst auf die "...".
Nun bist du im VBA-Editor; - den müsstest du ja irgendwie schon kennen.
Da sollte jetzt Sub kmbFilter_AfterUpdate()

End Sub
stehen.
Zwischen diese Zeile kopierst du nun meinen Code.
!!! Aufpassen !!! Obige Zeilen natürlich weglassen, stehen da ja nun schon da :).

Zur Sicherheit (macht man eigentlich IMMER wenn man Code hinzufügt)
öffnest du das Menu "Debuggen" -> "Kompilieren von ...".
Da erfährst du gleich ob da Tippfehler oder falsche Bezeichner drin sind.
Die kannst du dann entsprechend der angezeigten Fehlermeldung ändern.

gruss ekkehard
Titel: Re: MsgBox wenn Eingabewert in Tabelle nicht vorhanden ist.
Beitrag von: Brallu am Februar 08, 2017, 17:00:16
Hallo Beaker,
ich danke dir und auch den anderen hier das ihr mir so toll zur Seite steht. :) :) :) :) :)

Sub kmbFilter_AfterUpdate() ist bei mir nur ein anderer Name gewesen und dann musste ich nur bei
Me.kmbFilter diesen noch umbenennen.
Debuggen hilft da echt weiter!

Danke und leider werdet ihr wohl noch ein paar Fragen bekommen  :o

Gruß
Danny

Titel: Re: MsgBox wenn Eingabewert in Tabelle nicht vorhanden ist.
Beitrag von: Brallu am Februar 08, 2017, 17:25:34
Leider hab ich gleich noch eine Frage :-\,
was und wo muss ich denn ergänzen wenn ich die Autokorrektur/Ergänzung per VBA abschalten will
und was kann ich machen damit nach dem Bestätigen und der Suche die Eingabe gelöscht wird damit ich gleich die nächste Eingabe machen kann ohne die alte Eingabe erst löschen zu müssen.

Gruß
Danny
Titel: Re: MsgBox wenn Eingabewert in Tabelle nicht vorhanden ist.
Beitrag von: Beaker s.a. am Februar 08, 2017, 17:40:28
Hallo Danny,
Die Autokorrektureigenschaft findest du im Register "Andere";
das "Automatisch Ergänzen" auf "Daten".
Das Kombi leerst du mit
Me.DeinKombi = Null
Hinter das letzte "End If".

gruss ekkehard
Titel: Re: MsgBox wenn Eingabewert in Tabelle nicht vorhanden ist.
Beitrag von: Brallu am Februar 08, 2017, 17:42:52
Super und Danke euch allen!!!
Für einen Anfänger wie mich ist das hier echt großartig.

Gruß
Danny