XDLOOKUP

  • VB6
    Hallo,

    Ich verwende folgende Fkt. um einen Ausdruck mit dem inhalt einer table zu vergleichen:

    Quellcode

    1. 'Funktion zum Vergleichen eines Ausdruckes mit dem Inhalt einer Tabelle
    2. Public Function XDLookup(Expression As String, Domain As String, Optional DBPfad, Optional Criteria) As Variant
    3. Dim strSQLDF As String
    4. On Error GoTo Err_XDLookup
    5. strSQLDF = "SELECT " & Expression & " FROM " & Domain
    6. If (Not IsMissing(DBPfad)) Then
    7. If (Len(Nz(DBPfad, "")) > 0) Then strSQLDF = strSQLDF & " IN " & Chr(34) & DBPfad & Chr(34)
    8. End If
    9. If (Not IsMissing(Criteria)) Then
    10. If (Len(Nz(Criteria, "")) > 0) Then strSQLDF = strSQLDF & " WHERE " & Criteria
    11. End If
    12. strSQLDF = strSQLDF & ";"
    13. XDLookup = DBEngine(0)(0).OpenRecordset(strSQLDF, dbOpenForwardOnly)(0)
    14. Exit Function
    15. Err_XDLookup:
    16. XDLookup = Null
    17. End Function


    So verwende ich die fkt.:

    Quellcode

    1. Private Sub NewTech_Click() 'Neue Technology in Tabelle einfügen
    2. On Error GoTo Err_NewTech_Click
    3. Dim rst As ADODB.Recordset
    4. Dim Vorhanden As Integer
    5. 'Prüfung: 1.Feld nicht leer? 2.TechName noch nicht vorhanden?
    6. If Me!NewTechField.Value Then
    7. Vorhanden = XDLookup(" & NewTechField.Value & ", "Technology")
    8. If Not IsNull(Vorhanden) Then
    9. MsgBox "Please choose a New Name", vbCritical
    10. Else
    11. MsgBox "Insert Zweig", vbOKOnly
    12. DB.Execute "INSERT INTO TECHNOLOGY (TechName) VALUES ('" & NewTechField.Value & "')"
    13. MsgBox "New Data was added...", vbOKOnly
    14. End If
    15. Else
    16. MsgBox "Please fill out: New Technology", vbCritical
    17. End If
    18. Set rst = Nothing
    19. Exit_NewTech_Click:
    20. Exit Sub
    21. Err_NewTech_Click:
    22. MsgBox Err.Description
    23. Resume Exit_NewTech_Click
    24. End Sub


    Der nutzer soll in ein eingabefeld eine neue technology bezeichnung eingeben.über einen hinzufügenbutton, wird vorher geprüft ob das feld nicht leer ist (das geht) und ob die bezichnung noch nicht in der table vorkommt.beim ausprobieren kommt er nicht bis zu der testzeile msgbox"insert zweig" es scheint also an der if clausel zu liegen...

    danke für eure hilfe
  • 1 Benutzer hat hier geschrieben

    • Gast (1)