Avatar billede henning.c Nybegynder
16. november 1999 - 08:33 Der er 4 kommentarer og
1 løsning

Forespørgsel på flere felter

Jeg har en bogdatabase. Brugerne skal kunne finde relevant litteratur ved at søge på visse felter.
Jeg har bl.a. følgende felter:
Forfatter
Titel
Resume (søgeord)
Ved at søge på dele af f.eks. forfatternavn eller titel eller visse  (søgeord) i resume-feltet, skal jeg vise den eller de fundne bøger.
Hvis jeg søger på ordet politik i resumefeltet og ikke andet, giver det måske 100 emner. Hvis jeg kan søge videre i disse emner ved f.ex at skrive skolepolitik, så der forekommer meget færre emner, vil det være godt.
Det er selvfølgelig et spørgsmål om jokertegn, men også at få det gjort så ukyndige at anvende systemet uden at skulle definere i en forespørgsel.
Kan det laves i en formular?
Avatar billede moses Praktikant
16. november 1999 - 09:07 #1
Du lader bare et tekstfelt stå til brugerens rådighed.

Det tekstfelt henviser du så til i dine kriterier i query'en, som søger dine bøger ud med.

Avatar billede moses Praktikant
16. november 1999 - 09:11 #2
Den helt rigtige er at lave en afterUpdate event til tekstfeltet. Ideen er , at du har en original query, som indeholder de tabeller og felter, som du vil have. En kopi tages af den og der lægges de ønskede kriterier på, hvorefter det hele lægges ned i den query, som en formular eller report skal bruge:
    Dim TempSource, BasisSource As String
    Dim TempParameter As String
   
    BasisSource = CurrentDb.QueryDefs("Original Oversigt Query").SQL
   
    If (IsNull([Forms]![IT Oversigt Form]![CriteriaParameter])) Or ([Forms]![IT Oversigt Form]![CriteriaParameter] = "") Then
        CurrentDb.QueryDefs("Oversigt Query").SQL = BasisSource
    Else
        If [Forms]![IT Oversigt Form]![CriteriaParameter] = "Anvendelse" Then
            TempSource = Left(BasisSource, Len(BasisSource) - 3) & " WHERE [PC Anvendelser]." & [Forms]![IT Oversigt Form]![CriteriaParameter] & " " & [Forms]![IT Oversigt Form]![Criteria] & ";"
        Else
            TempSource = Left(BasisSource, Len(BasisSource) - 3) & " WHERE [Parameter Oversigt Query]." & [Forms]![IT Oversigt Form]![CriteriaParameter] & " " & [Forms]![IT Oversigt Form]![Criteria] & ";"
        End If
        CurrentDb.QueryDefs("Oversigt Query").SQL = TempSource
    End If
Avatar billede moses Praktikant
16. november 1999 - 09:16 #3
Dette var bare et eksepel, men princippet er:
    Dim BasisSource As String
   
    BasisSource = CurrentDb.QueryDefs("Original Oversigt Query").SQL
        CurrentDb.QueryDefs("Oversigt Query").SQL = Left(BasisSource, Len(BasisSource) - 3) & "Where [Felt] = "titel bla. bla. bla."

De sidste 3 tegn skal skæres væk, for de indeholder ";", CR og LF. Det ville ellers blive tydet, som afslutningen på linien.
Avatar billede moses Praktikant
16. november 1999 - 09:17 #4
Og så lige rette fejlene:
CurrentDb.QueryDefs("Oversigt Query").SQL = Left(BasisSource, Len(BasisSource) - 3) & "Where [Felt] = 'titel bla. bla. bla.'"

Avatar billede henning.c Nybegynder
16. november 1999 - 13:20 #5
Den omtalte bogdatabase var tidligere i Paradox (dos udgaven) og her var det let at lave udtrækket på flere felter samtig med jokertegn. Resultat ANSWER kunne man arbejde videre med ved at tage denne tabel som udgangspunkt for næste søgning.
Den skitserede løsning ser mig noget langhåret ud, da jeg aldrig har været inde i denne del af systemet. Der er måske ikke nogen nem løsning. Der er kun 1 tabel.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester