Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: malibum am März 01, 2017, 16:03:12

Titel: Messagebox bei erfolgloser Abfrage
Beitrag von: malibum am März 01, 2017, 16:03:12
Hallo Zusammen,

ich möchte bei einer erfolglosen Abfrage eine Messagebox ausgeben "Daten nicht vohanden" oder ähnliches.
Das Formular besteht aus einem Eingabefeld für eine Produktnummer (es funktioniert auch alles ;-) ), drückt man auf suchen aktualisiert sich das Unterformular und es werden entsprechend die dazugehörigen Daten angezeigt oder eben nicht. Ist letzteres der Fall soll die besagte Messagebox aufploppen. Wie ist das möglich?

viele Grüße
Malibum  ;)
Titel: Re: Messagebox bei erfolgloser Abfrage
Beitrag von: MzKlMu am März 01, 2017, 16:24:28
Hallo,
Du solltest einfach mit dem gleichen Kriterium zum Suchen mit DCount die Datensätze zählen. Wenn 0 ist nix vorhanden.
Zeige mal das Kriterium zum Suchen.
Titel: Re: Messagebox bei erfolgloser Abfrage
Beitrag von: malibum am März 01, 2017, 16:51:31
Hallo,

zum suchen habe ich in der Abfrage unter Produktnummer folgendes Kriterium:

Zitat[Forms]![frmNavi]![Navigationsunterformular]![Text111]

Die Produktnummer wird einfach in das Textfeld eingegeben, bei anschließendem klicken auf den Suchbutton werden die Formulare aktualisiert.

ZitatMe![frmSAPNoSearch].Requery
Me![uufrmSAPNoSearch].Requery

Gruß
Malibum
Titel: Re: Messagebox bei erfolgloser Abfrage
Beitrag von: MzKlMu am März 01, 2017, 17:12:06
Hallo,
versuche es mal so:
If DCount("*","TabellenName","Produktnummer = '" & Me.Text111 & "'") = 0 Then
   MsgBox "Keine Daten"
   Exit Sub
End If

Wobei ich angenommen habe, dass die Produktnummer vom Datentyp Text ist, bei Zahl entfallen die Hochkomma.
Titel: Re: Messagebox bei erfolgloser Abfrage
Beitrag von: malibum am März 02, 2017, 09:52:07
Hallo,

vielen Dank schonmal! Die Messagebox zeigt es auf jedenfall an, allerdings auch wenn die Nummer vorhanden ist...

Grüße
Malibum
Titel: Re: Messagebox bei erfolgloser Abfrage
Beitrag von: MzKlMu am März 02, 2017, 10:00:22
Hallo,
welcher Datentyp ist denn die Produktnummer ?

PS:
Ich werde nie begreifen, warum man nicht sofort zeigt wie man etwas umgesetzt hat. Wie sonst soll man da einen Fehler finden, wenn man nicht sieht, was Du gemacht hast. Und ein Hinweis "man habe es umgesetzt" reicht da nicht.
Zeige daher bitte den Code Deines Versuchs vollständig.
Titel: Re: Messagebox bei erfolgloser Abfrage
Beitrag von: malibum am März 02, 2017, 10:13:07
Hallo,
sorry da hast du natürlich vollkommen Recht!  ;)

Folgenden Code habe ich hinter dem Such-Button platziert:

ZitatPrivate Sub Befehl3_Click()
Me![frmSAPNoSearch].Requery
Me![uufrmSAPNoSearch].Requery

If DCount("*", "tblAlleProdukte", "SAPNo = '&Me.Text111&'") = 0 Then
MsgBox "Daten nicht vorhanden"

Exit Sub
End If

End Sub

Die Produktnummer ist vom Datentyp Text.

Die Anführungszeichen vor und nach dem
Zitat&Me.Text111&
habe ich entfernt da er mir hier einen Fehler beim kompilieren angezeigt hat.

Gruß
Malibum
Titel: Re: Messagebox bei erfolgloser Abfrage
Beitrag von: MzKlMu am März 02, 2017, 10:26:33
Hallo,
das ist falsch so, mit den Hochkomma. Mein Codevorschlag oben führt auch garantiert nicht zu einem Syntaxfehler. Wenn doch, hast Du es falsch gemacht.
So wie Du das jetzt hast wird als SAPNo nach dem Text '&Me.Text111&' gesucht, also genau nach diesem Text und nicht nach dem Eintrag von Text111. Und da findet Access nichts daher DCount=0 und MsgBox kommt. Alles logisch.
Man kann doch auch nicht einfach mal so die AZ entfernen, die sind ja nicht aus Spaß enthalten.

Und sinnvollerweise sollte DCount auch vor dem Requery erfolgen.
Private Sub Befehl3_Click()
    If DCount("*", "tblAlleProdukte", "SAPNo = '" & Me.Text111 & "'") = 0 Then
        MsgBox "Daten nicht vorhanden"
        Exit Sub
    End If
    Me![frmSAPNoSearch].Requery
    Me![uufrmSAPNoSearch].Requery
End Sub
Titel: Re: Messagebox bei erfolgloser Abfrage
Beitrag von: malibum am März 02, 2017, 11:47:10
Hallo,
vielen Dank für deine Mühe, ja es geht einwandfrei. Ich weis nicht was ich dann falsch gemacht habe, dass es nicht sofort ging.

Gruß
Malibum