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
Moin,
da die Msgbox ja zur Laufzeit der Suche aus dem Kombi_Click ausgeführt werden soll, wäre deren Code interessant.
Hallo Jürgen,
wo kann ich das sehen? Ich habe das Feld über den Assistenten erstellt.
Sorry Anfänger :-[
Gruß
Danny
Hi Danny,
Entwurfsansicht, Kombi markieren, Rechtsklick - Ereignis auswählen. Damit wird die IDE geöffnet. Komplette Sub hier posten.
Da stehr nix!!
Bei Ereignis ist nix drin!?
Nur bei eingebettetes Makro unter Bedingung = steht:
="[RZNrZusammen] = " & "'" & [Screen].[ActiveControl] & "'"
Sorry
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
Danke Jürgen,
das werde ich morgen mal ausprobieren!!
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
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
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
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
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
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
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
Super und Danke euch allen!!!
Für einen Anfänger wie mich ist das hier echt großartig.
Gruß
Danny