Avatar billede sbhansen Nybegynder
16. september 2001 - 21:04 Der er 6 kommentarer og
1 løsning

Standardværdi i ét tabelfelt, ud fra et andet felts tekstlængde

Jeg troede jeg kunne sætte en standardværdi i feltet NameLength som
=Len([Word])
hvor [Word] er et andet felt i samme tabel - men det nægter access2000 - hvorfor?
- Hvordan skal jeg gøre alternativt hertil?


Fejlen der kommer op er:
\'Databasemotoren genkender hverken feltet \"word\" i valideringsudtrykket eller standardværdien i tabellen Words\'
Avatar billede mugs Novice
16. september 2001 - 23:56 #1
Jeg arbejder i Access97 og kan her foreslå flg. løsning, idet jeg ikke mener du i tabellens standardværdi kan referere til andre felter. Flg. kode måler om antal karakterer i feltet \"tekst1\" er større end 15, hvis betingelsen er opfyldt får du en MagBox. Du kan så erstatte Msgbox med noget andet.

Private Sub Kommandoknap4_Click()
Dim tekst As String
tekst = tekst1
If Len(tekst1) > 15 Then
MsgBox Prompt:=\"Der er mere end 15 tegn i sætningen\"
Else
MsgBox Prompt:=\"Der er mellem 0 og 15 tegn i sætningen\"
End If
End Sub

Avatar billede mugs Novice
16. september 2001 - 23:59 #2
Jeg vil mene koden skal indsættes i feltet \"Word\" i AfterUpdate event.
Avatar billede sbhansen Nybegynder
18. september 2001 - 09:33 #3
Hvis det er rigtigt, at det ikke kan lade sig gøre, så har jeg jo ikke noget valg - men jeg tillader mig lige at holde det åbent lidt endnu i et naivt håb om at der kommer en guru forbi... :-)
Avatar billede jens-peter Nybegynder
23. september 2001 - 22:24 #4
Jeg er enig med Mugs i, at man ikke kan lave en sådan beregning af standardværdi direkte i en tabel, men jeg undrer mig også over, hvorfor du overhovedet vil gøre det. Man skal normalt ikke gemme overflødig information i tabellerne, og længden kan jo altid beregnes, når man har brug for den i formularar, rapporter mv., så hvorfor gemme den?

mvh/Jens-Peter
Avatar billede sbhansen Nybegynder
24. september 2001 - 12:04 #5
Jens-Peter, jeg er enig i den umiddelbare teoretiske betragtning omkring redundant information - men der hører enigheden så også lidt op. Redundant information er som jeg ser det grundlaget for effektiv indeksering, og i den forbindelse er det helt på sin plads...
Jeg bruger overnstående i en indekseringsmekanisme, hvor der skal søges efter ord, indeholdt i andre ord, fx. \"bager\" i \"bagermester\". Basistabellen, hvor ovenstående skal bruges, indeholder 500.000 basisord, og skal køre i baggrunden på serveren. Den skal lede efter ord i længere ord end sig selv. en *ord* (LIKE)-søgning vil starte med at indlæse recordsettet, før den finder ud af, at ordet \"skole\" er for kort til indeholde \"bageren\". Til dette formål skal den hurtigt kunne frasortere kortere ord. Så ud fra dette må det være ønskeligt at speede situationen lidt op, med brug af redundant data, enig?
mvh/Søren
Avatar billede mugs Novice
24. september 2001 - 12:56 #6
Ved nærmere eftertanke kan jeg huske, at nogenlunde samme spørgsmål er besvaret af Thomas Jepsen for ikke så længe side. Jeg mener dette svar også konkluderede, at du ikke kan sammenligne 2 felter på tabelniveau.
Jeg er på arbejde lige nu, og har ikke tid til at søge efter det.
Avatar billede sbhansen Nybegynder
25. september 2001 - 15:43 #7
Tjaa, så må jeg jo bide i det sure æble og finde på noget andet... Selvfølgelig kan jeg i min java sende længden i sit eget felt, men det virker jo bare mystisk, at noget så simpelt ikke kan fungere...
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