Avatar billede mostcrazy Nybegynder
20. juli 2001 - 12:48 Der er 11 kommentarer og
1 løsning

søgning

hej

jeg har en access db som efterhånden har en del indhold. Nu vil jeg så gerne kunne søge i den ud fra nogle kriterier. Det skal fungere på denne måde man indtaster f.eks. 5 søgeord og så skal der komme en liste over alle de værdier som opfylder de søgekriterier.

Er der nogen som kan hjælpe med det ?

Jeg kan ikke ¨ligge db\'en op så i kan hente den da der er information i som ikke må videregives
Avatar billede terry Ekspert
20. juli 2001 - 13:01 #1
Are all 5 søgeord for the same column (field) or one word for each field?
Avatar billede medions Nybegynder
20. juli 2001 - 13:12 #2
har du mulighed for ASP?
Avatar billede mostcrazy Nybegynder
20. juli 2001 - 13:16 #3
jeg har 13 felter hvori der skal søges

og ja, jeg har mulighed for ASP, men det vil jeg helst ikke bruge bruge til det her
Avatar billede medions Nybegynder
20. juli 2001 - 13:18 #4
hmm..k.. så kan jeg desvære ikke hjælpe dig!
Avatar billede mostcrazy Nybegynder
20. juli 2001 - 13:21 #5
men hvis der ikke findes andre måder så må jeg jo gå over til ASP
Avatar billede medions Nybegynder
20. juli 2001 - 13:22 #6
Well, der findes 1000 vis af måder *G*

ej... nok ikke lige 1000 -men mange..

kunne du ikke beskrive det med lidt mindre!?
og lad os lige gå over til det spm du har oprettet i ASP!
Avatar billede mostcrazy Nybegynder
20. juli 2001 - 13:27 #7
altså jeg har jo de 13 felter hvor der er defineret en værdi i og så en hel masse rækker.

Så vil jeg gerne kunne sige hver række som har de indtastede søgeord eller bare 2 i en eller flere af sine rækker bliver udskrevet på skærmen.
Avatar billede terry Ekspert
20. juli 2001 - 14:12 #8
Do you have 13 fields in one table in the database. For each field do you want to be able to enter one seach criteria for each field in the table or do you want to be able to have more than one criteria for each field in the table?

Do you want your answer in VBA (Access) or ASP?
Avatar billede mostcrazy Nybegynder
20. juli 2001 - 14:40 #9
jep, jeg vil kunne have mere end et søgekriterie pr. felt.

Og jeg vil gerne have svar i VBA
Avatar billede terry Ekspert
22. juli 2001 - 15:36 #10
mostcrasy> This is just one way to do it!

You have a form which shows ALL records from your table/query. (One detail per record).

In the form header place the fields (text combo boxes etc.) where you enter your search criteria.

Place a button in the form footer. In the buttons on click event add and modify the following code.

Dim sFilter As String

    sFilter = \"1 \"

    If Not fldIsEmpty(Me.fld1) Then
        sFilter = sFilter & \" AND dBfield1 = \" & Me.fld1
    End If
   
    If Not fldIsEmpty(Me.fld2) Then
        sFilter = sFilter & \" AND dBfield2 = \" & Me.fld2
       
    End If
   
    Me.Filter = sFilter
    Me.FilterOn = True
    Me.Refresh

and add the following function to a module.

Function fldIsEmpty(fld As Variant)

    If IsNull(fld) Or fld = \"\" Or IsNull(Len(fld)) Then
        fldIsEmpty = True
    Else
        fldIsEmpty = False
    End If
   
End Function

Explanation:
In this example there is only one search criteria per field in the database.
The line sFilter = \"1 \" is the same as \"WHERE 1\" in an SQL statement, in other words everything is selected. By using this I dont need to test if I have to append an AND to the next field in the SQL.

Then I test to see if a criteria is entered if not then go to the next field. If I had 13 fields then I would have 13 If statements, one for each field.

This should give you some idea as to how it CAN be done.

If you want to have more than one search criteria per field in the database then things start getting complicated! This is because we then have to start checking if none, one or more than one of the criteria for a specific dB field have been enterd. This may result in having to append an OR in the filter.

Finally when the filter is buildt I switch the filter on (me.filterOn = True) to show just those records I am interested in.

You could have another button (or a toggle button) to switch the filter off again.

Thats about it....


Avatar billede terry Ekspert
22. juli 2001 - 15:38 #11
Me.fld1 and Me.fld2 are the names of the search criteria fields on the header.
dBfield1 and dBfield2 are the actual fields your search on in the database table/query
Avatar billede mostcrazy Nybegynder
22. juli 2001 - 15:42 #12
tak for hjælpen :o)
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