Avatar billede Kim Neesgaard Seniormester
10. september 2001 - 23:58 Der er 8 kommentarer og
2 løsninger

Find en record i en tabel

Hvad er den nemmeste måde at finde en record på i en Access 2000 tabel uden at skulle \'spole\' dem alle igennem med en while-sætning?
Avatar billede jakoba Nybegynder
11. september 2001 - 01:07 #1
Sproget SQL bruges til at søge, indsætte nye data og i det hele taget administrere databaser som Access.
http://w3.one.net/~jhoffman/sqltut.htm

lige dit spørgsmål ville man klare med en SELECT kommando

mvh JakobA
Avatar billede dr.kaos Nybegynder
11. september 2001 - 02:57 #2
2 måder brug af selece som jakoba foreslår
SELECT * FROM tabelnavn WHERE felt = 1234;

eller brug accesses filter.  I egenskaber
postkilde sættes til tabelnavn
filter sættes til felt = 1234
Avatar billede nih Novice
11. september 2001 - 10:07 #3
Hvsd med Dlookup

Niels
Avatar billede Kim Neesgaard Seniormester
23. september 2001 - 10:17 #4
Mht. brug af filter har jeg følgende syntax fra en bog om Access 2000:

Postsæt.Filter = SøgFeltnavn & \"=\'\" & FindVærdi & \"\'\"

men Access giver fejl ved \"=\'\" - hvad er der galt?

DLookup har jeg også prøvet, men den giver også fejl.
Avatar billede dr.kaos Nybegynder
23. september 2001 - 11:28 #5
Jeg er ikke sikker men jeg tror det er plingen \' der giver fejlen.
prøv noget ligende dette.

Postsæt.Filter = SøgFeltnavn & \"=\"\"\" & FindVærdi & \"\"\"\"

eller

Postsæt.Filter = \"\"\" & SøgFeltnavn & \"\"\"\"=\'\" & FindVærdi & \"\'\"

er der en ren tabel foreslår jeg

    If (DLookup(\"[felt der søges i]\", \"tabel navn\", \"[felt der sammenlignes med] = værdi\")) Then
    Else
    End If

mvh
Dr.Kaos
Avatar billede Kim Neesgaard Seniormester
23. september 2001 - 21:15 #6
De to forslag med filter giver mig stadig fejl! Mht. DLookup må jeg nok indrømme at være lidt tungnem, da jeg ikke rigtig kan se, hvad der skal indsættes hvor. Hvis jeg har en tabel med navnet Testtabel og denne tabel indeholder felterne Navn og By, hvordan skal DLookup da se ud?
Avatar billede dr.kaos Nybegynder
23. september 2001 - 23:40 #7
    If (DLookup(\"[By]\", \"Testtabel\", \"[Navn] = Dr.Kaos\")) Then
    <Jeg findes>
    Else
    <Jeg findes ikke>
    End If

Du har så selvfølgelig mulighed for at få by ud
  Dim var_by as ????
  var_by = DLookup(\"[By]\", \"Testtabel\", \"[Navn] = Dr.Kaos\")


ang. Postsæt.Filter
har du forsøgt med faste data for at finde fejlen
Postsæt.Filter = \"Feltnavn = \'test\'\"
Hvis dette giver ok så er det jo bare at fortsætte med
Postsæt.Filter = SøgFeltnavn & \"= \'test\'\"
osv.... til du finder fejlen

Dr. Kaos
Avatar billede Kim Neesgaard Seniormester
27. september 2001 - 00:23 #8
Den DLookup driller! Jeg har indtastet fuldstændig som i dit eksempel, men får fejlen: Runtime error 2471/The expression you enteredas a query parameter produced this error: The object doesn´t contain the automation object X, hvor X svarer til Dr.Kaos i dit eksempel.

Kan du ud af fejlbeskeden se, hvad jeg gør galt?
Avatar billede Kim Neesgaard Seniormester
29. september 2001 - 15:52 #9
Nu har jeg fundet fejlen - linien skal se således ud:

var_by = DLookup(\"[By]\", \"Testtabel\", \"[Navn] = \'Dr.Kaos\'\")

De ekstra \'\' skal på, når der søges på en string, men ikke når der søges på en numerisk værdi.

Iøvrigt fandt jeg på The Access Web (http://www.mvps.org/access/general/gen0018.htm) følgende for datosøgning:

For dates:
        DLookup(\"FieldName\" , \"TableName\" , \"Criteria= #date#\")

Denne har jeg ikke afprøvet og den skal vel også forsynes med de kantede parenteser.

Avatar billede Kim Neesgaard Seniormester
30. september 2001 - 14:17 #10
Korrektion: datoer skal indtastes som et tal, dvs. uden \'\' eller ##.
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