Avatar billede ugotabe_kidding Nybegynder
06. december 2002 - 12:39 Der er 22 kommentarer og
1 løsning

Søgning i poster i tabel

Jeg har en form, der indeholder en søgefunktion, således at man kan søge gennem alle poster i en tabel, 'Stamdata'.
Jeg har en form, 'Stamdata', der har en knap der åbner søgevinduet, 'Søg'. Problemet er at den husker det data der ligger i forespørgslen, 'qrySoeg'. Jeg skal derfor bruge en Form_OnLoad()-funktion, der tømmer indholdet af søgeforespørgslen (den vil jeg også bruge, hvis man i vinduet trykker på knappen 'Ny Søgning'.

Jeg forsøgte først med en Delete-query:
Delete *
From qrySoeg

Men den slettede al data i Stamdata-tabellen (!).

Findes der ikke en funktion a la 'qrySoeg.Reset'?

Nogen forslag?
Avatar billede terry Ekspert
06. december 2002 - 12:47 #1
are you talking about Access's own search dialog or your own?
Avatar billede ugotabe_kidding Nybegynder
06. december 2002 - 12:55 #2
Min egen!
Jeg laver en fritekstsøgning i flere felter på een gang:

SELECT [Stamdata].[PersNo], [Stamdata].[Title], [Stamdata].[Name], [Stamdata].[Company], ..., [Stamdata].[Kommentar]
FROM Stamdata
WHERE ([Stamdata].[Title] & [Stamdata].[Name] & [Stamdata].[Company] & [Stam... & ...data].[Email] & [Stamdata].[Kommentar]) Like '*' & [Forms]![Søg]![TxtSoeg] & "*";

Den husker tilsyneladende indholdet af queryen?
Avatar billede terry Ekspert
06. december 2002 - 13:05 #3
Are you using the forms record source ?

Me.recordsource = ""
Avatar billede ugotabe_kidding Nybegynder
06. december 2002 - 13:08 #4
Jeg har lavet en alm. query, hvis det er det du mener?
Denne eksekveres når man trykker på 'Søg'

[qrySoeg].Requery

Er det smartere at lægge queryen i VB?
I givet fald hvorledes griber jeg det an?
Avatar billede terry Ekspert
06. december 2002 - 13:16 #5
can you send me the dB I dont quite understand the problem

eksperten@santhell.dk
Avatar billede terry Ekspert
06. december 2002 - 13:19 #6
Are you showing the search result in a query? as far as I can see the query "looks" at your form (Like '*' & [Forms]![Søg]![TxtSoeg] & "*";) so if ths txtsoeg has changed then the result "should" change too!
Avatar billede ugotabe_kidding Nybegynder
06. december 2002 - 13:28 #7
Desværre...
Selv zippet fylder den langt mere end jeg kan sende i en mail (13MB) :o/

Men problemet er følgende:
Når jeg åbner vinduet, der kører queryen første gang er der ingen problemer.
Så snart jeg søger og finder f.eks. 100 poster i tabellen og herefter lukker søgevinduet vil jeg gerne have queryen til at tømmes. Det gør den ikke!
Næste gang jeg åbner søgevinduet står alle de tidligere søgeresultater der!
Kan jeg ikke tømme al data når jeg lukker søgevinduet?
Tidligere søgte jeg på en fiktiv tekststreng (<>$@*/#¤), for at få søgningen til at blive nulstillet, men dette er en laaaangsom (og dårlig) løsning, når databasen nu er så stor.. Hvis det stadig ikke giver mening, kan jeg evt. sende dig nogle screendumps af vinduerne?
Avatar billede terry Ekspert
06. december 2002 - 13:34 #8
a query contains NO data! it only shows the result of the SQL statement. So there MUST be some data on the form. Make sure the fields on the form are empty, I am sure they are not, or there is something you are not telling me :o)

You could try compacting the dB and THEN zip it, this helps some times. Or make a copy of the dB with only the forms etc. I need
Avatar billede ugotabe_kidding Nybegynder
06. december 2002 - 13:35 #9
Resultaterne vises i en subform i formen 'Søg'.

Problemet viser sig faktisk (nu hvor jeg ser nærmere efter) at være at når søgevinduet åbnes vises alle ca. 54000 poster(!) Er det fordi den automatisk kører queryen når vinduet åbnes, og returnerer alle poster der har et blankt felt?
Problemet har derfor ændret sig markant, sorry!
Jeg skal have faktisk blot sikre mig at queryen ikke afvikles når vinduet åbnes?
Avatar billede terry Ekspert
06. december 2002 - 13:43 #10
I cant say for sure without seeeing for myself, I would be just guessing and using too much time.
Avatar billede ugotabe_kidding Nybegynder
06. december 2002 - 13:43 #11
Sorry for the wild goose chase!
Men jeg vil MEGET gerne vide hvordan jeg undgår at alle posterne vises når vinduet åbnes?
Det er nemlig en meget langsommelig proces!
Avatar billede ugotabe_kidding Nybegynder
06. december 2002 - 13:44 #12
Jeg er ved at lave en temp-DB, der bør kunne sendes med email.. Håber at du stadig har mod på at hjælpe?
Avatar billede ugotabe_kidding Nybegynder
06. december 2002 - 13:51 #13
DB sendt

Når man åbner Søgevinduet vises alle poster! Dette skal ikke ske! Ingen poster skal vises, før der er indtastet et søgeord! Håber at det giver mening!
Avatar billede terry Ekspert
06. december 2002 - 13:55 #14
I'll take a look and get back as soon as possible
Avatar billede ugotabe_kidding Nybegynder
06. december 2002 - 14:06 #15
Takker!
Avatar billede terry Ekspert
06. december 2002 - 14:11 #16
Just had to understand what is happening.

Change you form open event to

Private Sub Form_Open(Cancel As Integer)
If TxtSoeg.Value <> Null Then
[Søg Subform].Requery
Else
TxtSoeg.Value = "Indtast søgeord"
[Søg Subform].Requery
End If

End Sub
Avatar billede terry Ekspert
06. december 2002 - 14:13 #17
ALL I have done is add the line
[Søg Subform].Requery

Actually you could just use
TxtSoeg.Value = "Indtast søgeord"
[Søg Subform].Requery
Avatar billede ugotabe_kidding Nybegynder
06. december 2002 - 14:17 #18
Men så søger den jo rent faktisk på "Indtast søgeord", hvilket ikke findes - derfor returneres ingenting, korrekt?

Men den er lang tid om at søge efter "Indtast søgeord", derfor ville jeg gerne undgå at søge, når vinduet åbnes?!?!

Ved du desuden om jeg kan undgå den ekstra tomme post, der vises til sidst?
Avatar billede terry Ekspert
06. december 2002 - 14:26 #19
Yes its because it searches after "Indtast søgeord"

The empty record! this is because you can enter a new record. Set the Allow Additions property to NO!

There are a number of solutions to the other problem but I will get back once I have had a play around.
Avatar billede terry Ekspert
06. december 2002 - 14:47 #20
I have sent an example.
Avatar billede ugotabe_kidding Nybegynder
06. december 2002 - 15:06 #21
Dit eksempel virker perfekt! Super!

Har du evt. nogle forslag til hvorledes jeg ellers kan optimere søgningen, når der er 54.000 poster? Det tager laaaang tid at få et resultat, når man søger på en tekststreng..
Avatar billede terry Ekspert
06. december 2002 - 15:15 #22
I would make a form where it is possible to enter criteria for only those fields you want to search on. Then build the SQL Dynamically. Your method has to make one long string of ALL fields your searching on and then see if th estring you entered is in that string. Quite smart actually, but VERY slow.

I have placed answers on searching in other questions, so you should be able to find something.
Avatar billede ugotabe_kidding Nybegynder
06. december 2002 - 15:18 #23
Super! Endnu en gang tak for din hjælp!
Go' weekend!
/U.K.
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