Suchen in DB



  • hi,

    ich habe wiedermal eine Frage,ich möchte in meiner DB das Kfz-Zeichen eingeben
    und mir dann den Datensatz anzeigen lassen, was auch wunderbar funktioniert.
    Aber wenn ein Kfz-Zeichen gesucht was noch garnicht in der DB vorhanden ist,
    soll z.B. eine MessageBox("Zeichen nicht vorhanden...") ausgegeben werden.
    Wie kann ich in der DB prüfen ob das Zeichen noch nicht vorhanden ist?
    Ich hatte es so versucht:
    if (!pSet.m_Kfz_Zeichen)
    MessageBox("...");

    dies führte aber zu keinem Erfolg.

    MfG



  • pSet.FindFirst("[<feldname>] = '"+ gesuchterstring +"'");
    gesuchterstring ist ein cstring der dein kennzeichen enthält.
    Die Funktion ist vom Typ BOOL.

    devil



  • Mir fehlt einiges an Info, aber falls du DAO verwendest und prüfen willst, ob ein Datensatz mit dem Kennzeichen vorhanden ist und der Spaltenname für dein Kennzeichen "KFZ Zeichen" ist und das gesuchte Kennzeichen in CString strKZ gespeichert ist, dann schlage ich folgendes vor:

    if (!pSet.FindFirst("[KFZ Zeichen] = \" + strKZ + "\"")
    MessageBox("...");
    

    [ Dieser Beitrag wurde am 04.12.2002 um 13:09 Uhr von Kauz01 editiert. ]



  • Das mit dem Kennzeichen finden klappt ja auch schon wunderbar, aber ich möchte,
    wenn das Zeichen nicht vorhanden ist und trotzdem gesucht wird, dass eine
    MessageBox ausgegeben wird.
    Ich poste mal den gesamten Code:

    CKundendatenbankSet pSet;
    CString str;

    m_ctlZeichen.GetWindowText(str);
    m_strZeichen = str;

    pSet.m_strFilter = "[Kfz-Zeichen] ='"+m_strZeichen+"'";

    if (m_strZeichen == "")
    {
    MessageBox("Bitte ein Kennzeichen eingeben!");
    return;
    }
    else
    {
    pSet.Open();
    m_iKndnr = pSet.m_Kndnr;
    m_strName = pSet.m_Name;
    m_strVorname = pSet.m_Vorname;
    m_strAnschrift = pSet.m_Anschrift;
    m_strOrt = pSet.m_Wohnort;
    }
    pSet.Close();
    UpdateData(FALSE);

    in diesem Code brauche ich noch die Prüfung ob es das Zeichen schon gibt oder
    nicht, wenn nicht -> MessageBox, ich hatte ja gedacht mit
    if(!pSet.m_KfzZeichen)
    funzt es, aber wie gesagt es brachte keine Erfolg.

    MfG



  • Problem sollte noch genauer erfassst werden:

    Geht es darum, ob in der Kundendatenbank schon ein Kunde mit dem Kennzeichen existiert, oder willst du bei einem bestehenden Datensatz prüfen, ob das Kennzeichen eingetragen ist?

    Btw

    pSet.Open();
    m_iKndnr = pSet.m_Kndnr;
    m_strName = pSet.m_Name;
    m_strVorname = pSet.m_Vorname;
    m_strAnschrift = pSet.m_Anschrift;
    m_strOrt = pSet.m_Wohnort;
    

    macht keinen Sinn, wenn du nicht nach dem "pSet.Open()" einen (gültigen) Datensatz eingestellt hast.



  • Macht doch Sinn, da der Filter gesetzt wurde.
    An dieser Stelle (nach Open()) fehlt doch eigentlich nur eine Abfrage, ob Datensätze vorhanden sind:

    if(pSet.IsEOF())
    // Kennzeichen gibt es noch nicht



  • Hm, schon mal was von if und else gehört ??
    mit Find suchen...

    Devil



  • Ich möchte prüfen ob der Kunde mit dem Kennzeichen schon existiert, mit if
    und else habe ich es schon versucht, aber ich wußte nicht welche Bedingung
    ich setzen soll. Jetzt werde ich es mal mit if(pSet.IsEOF()) versuchen.

    MfG


Anmelden zum Antworten