30. september 2004 - 09:52Der er
6 kommentarer og 1 løsning
Hjælp til kodeforståelse (AddWhereClause)?
For længe siden har jeg copy/paste flg kode. If Not Forms!F_D_Dok_Search_Rapp!Status.Value = 1 Then strSQL = fkt_AddWhereClause(useWhere, strSQL) useWhere = True strSQL = strSQL & "QA_App= True" End If _________________________________________________________________ Private Function fkt_AddWhereClause(useWhere As Boolean, strSQL As String) As String If useWhere = False Then strSQL = strSQL & "WHERE " Else strSQL = strSQL & " AND " End If 'return string fkt_AddWhereClause = strSQL End Function
Men jeg forstår den ikke, og kan ikke finde megen hjælp i F1. Derfor,- er dere nogen der kan forklare: - hvad opnåes ved fkt_AddWhereClause(useWhere, strSQL)? - hvorfor sættes useWhere = True ? - hvorfor sættes fkt_AddWhereClause = strSQL inden retur til kaldende ?
Hej sjap. Mit spgs er lidt tåget formuleret. Men jeg er med på tilføjelsen af AND og WHERE. Men hvad defineres/kaldes i ...(useWhere, strSQL). Hvad kan jeg ellers bruge denne funktion til, hvor kan jeg finde beskrivelse af denne syntaks?
Private Function fkt_AddWhereClause(useWhere As Boolean, strSQL As String) As String If useWhere Then fkt_AddWhereClause = strSQL & " AND " Else fkt_AddWhereClause = strSQL & "WHERE " End If End Function
Resultatet af funktionen er en streng. Det er derfor der f.eks. står
fkt_AddWhereClause = strSQL & " AND "
Resultatet af funktionen er den gamle streng (dvs. strSQL) med " AND " i enden.
Du kan bruge funktionen i forbindelse med etablering af WHERE delen af en SQL-sætning.
Et eksempel:
Følgende kode strSQL = "SELECT Efternavn, Fornavn FROM Medarbejdere " strSQL = fkt_AddWhereClause(useWhere, strSQL) & "Fornavn ='Jens'" useWhere= True strSQL = fkt_AddWhereClause(useWhere, strSQL) & "AND ='Jensen'"
vil give følgende SQL-sætning "SELECT Efternavn, Fornavn FROM Medarbejdere WHERE Fornavn ='Jens' AND Efternavn ='Jensen'"
Der kan sikkert være situationer, hvor det er smart at gøre det ved hjælp af denne funktion, men ofte er det lettest at skrive WHERE eller AND i stedet for fkt_AddWhereClause(useWhere, strSQL)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.