/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Fritekstsøgning i Acces notatfelt, ikke mu~
Fra : Jakob Munck


Dato : 06-12-04 19:18

Jeg har en site med tekster. Den bruger Access.mdb og jeg har lavet en
søgefunktion, som virker udmærket. Den ser sådan ud:
<%
......
soegeord = Trim(Request.form("soegeord"))
SQL = "SELECT TOP 20 * FROM tbTekster WHERE"
SQL = SQL & " ((skribent_fornavn LIKE '%" & soegeord & "%')"
SQL = SQL & " OR (skribent_efternavn LIKE '%" & soegeord & "%')"
SQL = SQL & " OR (overskrift LIKE '%" & soegeord & "%')"
SQL = SQL & " OR (tekst_id LIKE '%" & soegeord & "%')) ORDER BY tekst_id
DESC"
....
%>

Problemet er bare, at jeg kun kan søge i felter i Access.mdb, når disse er
formatteret som "Tekst" og ikke når de hedder "Notat". Da netop den sidste
form for formattering er nødvendig for at kunne indeholde store
tekstmængder, som siten har en del af, så er det et problem.

Kan det virkelig ikke lade sig gøre at søge på Notat-feltet i Access.mdb?

Skal koden laves på en anden måde, hvis det skal lade sig gøre?

v.h.
Jakob Munck



 
 
Peter Lykkegaard (07-12-2004)
Kommentar
Fra : Peter Lykkegaard


Dato : 07-12-04 09:57

"Jakob Munck" wrote

> Jeg har en site med tekster. Den bruger Access.mdb og jeg har lavet en
> søgefunktion, som virker udmærket. Den ser sådan ud:
>
> Problemet er bare, at jeg kun kan søge i felter i Access.mdb, når disse er
> formatteret som "Tekst" og ikke når de hedder "Notat".

Måske er der noget at hente her?
http://searchdatabase.techtarget.com/ateQuestionNResponse/0,289625,sid13_cid474892_tax285649,00.html

Jeg har søgt på [search memo access] via Google

- Peter



Jakob Munck (07-12-2004)
Kommentar
Fra : Jakob Munck


Dato : 07-12-04 11:18

Tak for linket, men det hjælper desværre ikke meget, for selv om forfatten
måske hævder (?) at man kan søge i et Access Notat-felt med SQL-koden:

SQL = "SELECT TOP 20 * FROM tbTekster WHERE tekst LIKE '%" & soegeord & "%'
ORDER BY tekst_id

Så kan det rent faktisk ikke lade sig gøre. Ikke for mig i hvert fald. Man
får ikke en fejlmedling, så koden er ikke forkert i sig selv, men man finder
bare ingen resultater, uanset hvad man søger på.

Er det en svaghed i Access.mdb, eller findes der en vej til at løse det?

v.h.
Jakob Munck

PS. Måske bør jeg spørge i et andet forum??



Peter Lykkegaard (07-12-2004)
Kommentar
Fra : Peter Lykkegaard


Dato : 07-12-04 11:40

"Jakob Munck" wrote

> Tak for linket, men det hjælper desværre ikke meget, for selv om forfatten
> måske hævder (?) at man kan søge i et Access Notat-felt med SQL-koden:
>
> SQL = "SELECT TOP 20 * FROM tbTekster WHERE tekst LIKE '%" & soegeord &
> "%' ORDER BY tekst_id
>
> Så kan det rent faktisk ikke lade sig gøre. Ikke for mig i hvert fald. Man
> får ikke en fejlmedling, så koden er ikke forkert i sig selv, men man
> finder bare ingen resultater, uanset hvad man søger på.
>
Hmm har du mulighed for at prøve det direkte i Access

> Er det en svaghed i Access.mdb, eller findes der en vej til at løse det?
>
Hvilken connection bruger - odbc eller oledb
Prøv at smide din connection streng efter os
Du undlader selvfølgelig sti, usr og pwd

> PS. Måske bør jeg spørge i et andet forum??
Evt dk.edb.database.ms-access

- Peter



Jakob Munck (07-12-2004)
Kommentar
Fra : Jakob Munck


Dato : 07-12-04 12:16

>>
> Hmm har du mulighed for at prøve det direkte i Access
>

ja, jeg tester det på min egen asp-site, som bruger Access. Jeg ved ikke om
man kan teste det mere "direkte i Access" end dette...?

>>
> Hvilken connection bruger - odbc eller oledb
> Prøv at smide din connection streng efter os
> Du undlader selvfølgelig sti, usr og pwd
>

Denne, som ellers virker fint overalt:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver
(*.mdb)};DBQ="&Server.MapPath("../db/ansgar.mdb")

v.h.
Jakob



JH (07-12-2004)
Kommentar
Fra : JH


Dato : 07-12-04 12:27

Jakob Munck wrote:
> ja, jeg tester det på min egen asp-site, som bruger Access. Jeg ved ikke om
> man kan teste det mere "direkte i Access" end dette...?

Prøv at åbne databasen med Access og lav en ny forespørgsel, hvor du
paste'r din SQL ind:

SELECT TOP 20 * FROM tbTekster WHERE tekst LIKE '%ET_ORD%' ORDER BY tekst_id

Hvad er resultatet?

--
Mvh
Jeppe

We have unmistakable proof that throughout all past time, there has been
a ceaseless devouring of the weak by the strong.

Jakob Munck (07-12-2004)
Kommentar
Fra : Jakob Munck


Dato : 07-12-04 14:03

>
> Prøv at åbne databasen med Access og lav en ny forespørgsel, hvor du
> paste'r din SQL ind:
>

Det ved jeg desværre ikke, hvordan man gør. Jeg har forsøgt at læse den
indbyggede brugsvejledning, men til ingen nytte. Nu har jeg så spurgt i en
Access NG, men - indtil videre - uden resultat.

v.h.
Jakob



Peter Lykkegaard (07-12-2004)
Kommentar
Fra : Peter Lykkegaard


Dato : 07-12-04 14:49

"Jakob Munck" wrote

> Det ved jeg desværre ikke, hvordan man gør. Jeg har forsøgt at læse den
> indbyggede brugsvejledning, men til ingen nytte. Nu har jeg så spurgt i en
> Access NG, men - indtil videre - uden resultat.
>
Kunne tyde på at der er tale om en begrænsning i de drivere du bruger
Ved du hvilken Jet Engine der er installeret på websereren?

Jeg har lige testet problemstillingen direkte i Access 2003 og her virker
den foreslåede løsning mht søgning i et Memo/Notat felt fint

- Peter



Jakob Munck (07-12-2004)
Kommentar
Fra : Jakob Munck


Dato : 07-12-04 15:24

Min server er MS IIS5.1. Den bruger det software som installeres default,
når serveren sættes op. Hvilken "Jet Engine" det drejer sig om, ved jeg
ikke. Men det er interessant, at du kan få det til at virke med Access 2003,
altså når du søger med SQL direkte i databasen.

Men hvilken server foregår det på?

Kunne du give en kort forklaring på hvor i Access-menuerne man indsætter
SQL-koden?

v.h.
Jakob




Jakob Munck (07-12-2004)
Kommentar
Fra : Jakob Munck


Dato : 07-12-04 15:34

jeg har læst dit svar i Access-gruppen. Tak for det.

v.h.
Jakob



Peter Lykkegaard (07-12-2004)
Kommentar
Fra : Peter Lykkegaard


Dato : 07-12-04 16:15

"Jakob Munck" wrote

> Min server er MS IIS5.1. Den bruger det software som installeres default,
> når serveren sættes op. Hvilken "Jet Engine" det drejer sig om, ved jeg
> ikke.

Jet Engine er de komponenter du bruger for få adgang til din databasefil
Jeg går ud fra at det er en windows 2000 server?
Er den patched op med alle SP's etc?

Prøv evt at skifte din connection ud med noget ala
strconn="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="
strconn=strconn & server.mappath(accessDB) & ";"
'strconn=strconn & "Password=whatever;"


> Men det er interessant, at du kan få det til at virke med Access 2003,
> altså når du søger med SQL direkte i databasen.
>
> Men hvilken server foregår det på?
>
XP SP2 (desktop)

> Kunne du give en kort forklaring på hvor i Access-menuerne man indsætter
> SQL-koden?
>
Se svar i dk.edb.database.ms-access

- Peter



Jakob Munck (07-12-2004)
Kommentar
Fra : Jakob Munck


Dato : 07-12-04 17:27

OK, nu er det lykkedes for mig at lave forespørgslen direkte i Access.mdb
via SQL-interfacet. Men desværre finder den ikke noget som helst når man
leder efter ord i et Notat-felt. Til gengæld virker den normalt og finder,
hvad den skal, når man søger i tekst-felterne.

Der må altså være en forskel på Access 2002 og 2003, ellers kan jeg ikke
forklare det.

Min server er den, som kommer med XP-Proffessional, og den hedder IIS.5.1.

Jeg prøver med den db-opkobling, som du angiver.

v.h.
Jakob Munck



Jakob Munck (07-12-2004)
Kommentar
Fra : Jakob Munck


Dato : 07-12-04 17:55

>Prøv evt at skifte din connection ud med noget ala
>strconn="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="
>strconn=strconn & server.mappath(accessDB) & ";"
>'strconn=strconn & "Password=whatever;"

Den kan jeg ikke få til at virke overhovedet. Men da Access 2002 ikke kan
søge i Notat felt med dens egen indbyggede SQL-fortolker, formoder jeg at
det er håbløst at få den til det til det SQL leveret fra en asp-fil. Jeg
tror derfor, at jeg opgiver, i hvert fald indtil videre.

Tak for hjælpen.

v.h.
Jakob Munck



Torben Borre Larsen (09-12-2004)
Kommentar
Fra : Torben Borre Larsen


Dato : 09-12-04 14:54

"Jakob Munck" <jm2_fjern_dette@webspeed.dk> skriver:
>OK, nu er det lykkedes for mig at lave forespørgslen direkte i Access.mdb
>via SQL-interfacet. Men desværre finder den ikke noget som helst når man
>leder efter ord i et Notat-felt. Til gengæld virker den normalt og
>finder,
>hvad den skal, når man søger i tekst-felterne.
>
>Der må altså være en forskel på Access 2002 og 2003, ellers kan jeg ikke
>forklare det.

Jeg prøvede lige at lave en søgning på et notatfelt i en Access-97 db. Det
virkede fint.Jeg brugte denne Select-sætning:

SELECT Medlemsoplysninger.Afdelingsnr, Medlemsoplysninger.MedlNrAfd,
Medlemsoplysninger.Fornavn, Medlemsoplysninger.MNotat
FROM Medlemsoplysninger
WHERE (((Medlemsoplysninger.MNotat) Like "*" & "Ung" & "*"));
--
Venlig hilsen
Torben Borre Larsen
[torben@dui.dk] [www.dui.dk]


Peter Lykkegaard (10-12-2004)
Kommentar
Fra : Peter Lykkegaard


Dato : 10-12-04 16:52

"Torben Borre Larsen" wrote

> Jeg prøvede lige at lave en søgning på et notatfelt i en Access-97 db. Det
> virkede fint.Jeg brugte denne Select-sætning:
>
> WHERE (((Medlemsoplysninger.MNotat) Like "*" & "Ung" & "*"));

Ja selvfølgelig Jakob har sikker brugt noget ala

WHERE Medlemsoplysninger.MNotat Like "%" & "Ung" & "%"

Peter



Søg
Reklame
Statistik
Spørgsmål : 177548
Tips : 31968
Nyheder : 719565
Indlæg : 6408803
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste