Avatar billede 49jensen Nybegynder
21. september 2008 - 15:01 Der er 17 kommentarer og
1 løsning

Antal relationer til samme tabel i en forespørgsel.

Jeg har lige svaret på mit eget spørgsmål med hensyn til hvor mange relationer man kan have til den samme tabel. Jeg troede at jeg havde fundet svaret, men nu kommer det altså en gang til.
Jeg har en forespørgsel 1 med 13 felter hvor der skal indtastes en kode (6 tal), i andre 13 felter skal der fremkomme en  bogstavskombination.Bogstavskombinationen hentes fra en relateret tabel hvor både kode og bogstavskombinationen ligger. Hvor mange gange kan man relatere til den samme tabel.Det virker med 2 indtastninger, men med 13 låser forespørgslen så du ikke kan indtaste værdier. Der er ingen fejlmeddellelser.
Ved hver ny reletion hedder relationstabellen selvfølgelig "tab" "tab_1", "tab_2" og så videre. Jeg har sat 100 point ind, men er villig til at forhøje hvis mit problem kan løses.
Avatar billede mugs Novice
21. september 2008 - 15:46 #1
13 relationer lyder meget voldsomt, og uden at vide hvordan din db er skruet sammen vil jeg umiddelbart postulere, at db er skruet forkert sammen.

I stedet for relationer, har du så prøvet med en DlookUp i din forespørgsel?
Avatar billede 49jensen Nybegynder
21. september 2008 - 16:27 #2
Grunden til de mange relationer er, at det bruges som en slags digital signature,i stedet for at signere på en hardcopy. Så hvis der findes en mere enkel måde der kan gøre det samme vil jeg meget gerne have et tip.
Avatar billede mugs Novice
21. september 2008 - 17:24 #3
Har du prøvet med en DLookUp?
Avatar billede 49jensen Nybegynder
21. september 2008 - 17:49 #4
Nej for jeg er ikke så god til det med kode.
Avatar billede mugs Novice
21. september 2008 - 18:12 #5
Læg din e-mail, så sender jeg et eksempel.
Avatar billede 49jensen Nybegynder
21. september 2008 - 18:23 #6
Ok jajtaurus@yahoo.dk
Avatar billede 49jensen Nybegynder
21. september 2008 - 18:24 #7
Jeg har fået det til at virke nu (18 relationer), men det er et maga job.
Avatar billede mugs Novice
21. september 2008 - 18:43 #8
Eksempel sendt.
Hvad har du gjort for at få det til at fungere?
Avatar billede 49jensen Nybegynder
21. september 2008 - 19:00 #9
Jeg har relateret tabellerne i databasevinduet og i forespørgslen og det virker fint nu med 22 relationer.
Jeg har kikket på din db18. Jeg skal confirmere operationen med en kommandoknap eller hvad. Det skal helst foregå automatisk, så når du indtaster en værdi skal det relaterede felt updateres, når du klikker enter, og desuden er der password på feltet du indtaster i.
Avatar billede mugs Novice
21. september 2008 - 19:18 #10
Hvis du ser på eksemplet med forespørgslen skal du ikke confirme noget som helst. Det hele sker automatisk.

Hvis du benytter VBA, kan du indsætte koden i f.eks BeforeUpdate uden at bruge kommandoknap.
Avatar billede 49jensen Nybegynder
21. september 2008 - 19:26 #11
ok jeg kigger lige på det igen. jeg er ikke så hurtig men vender tilbage når jeg har fået det til at virke.
Avatar billede mugs Novice
21. september 2008 - 19:41 #12
Det er helt OK.
Avatar billede 49jensen Nybegynder
21. september 2008 - 23:50 #13
Det kanjeg ikke få til at virke.
Er vi enig om at dette er koden da det er et a nomerisk felt.
Dim Stringsearch As String
Stringsearch = Me!Navn
Me!Tekst4 = DLookup("[Gade]", "Tabel2", "[Navn]='" & Stringsearch & "'")
Er "Navn" = formularnavn
Avatar billede mugs Novice
22. september 2008 - 06:29 #14
Som udgangspunkt må jeg sige, at min kode er afprøvet og fungerer. En fejl er, at du skriver feltet er numerisk, men du benytter koden til et alfanumerisk felt. Du har således også dimensioneret variablen som en string. Det ser du ved, at du har anførselstegn og apostroffer omkring Stringsearch således:

'" & Stringsearch & "'"

Det skal der ikke være ved et numerisk kriterie. På kommandoknapperne i min formular, har jeg netop skrivet hvilken felttype koden skal anvendes til. Prøv denne og ret objektnavnene: 

Private Sub Kommandoknap6_Click()
Dim intsearch As Integer
intsearch = Me!KRITERIEFELT I FORMULAREN
Me!HVOR SKAL DATA ANBRINGES = DLookup("[HVILKET FELT VIL DU HENTE]", "FRA HVILKEN TABEL", "[KRITERIEFELT I FORMULAREN]=" & intsearch)
End Sub

Omsat til min db vil det se således ud:

Private Sub Kommandoknap6_Click()
'Procedüren er magen til Kommandoknap16, blot med numerisk kriterie
Dim intsearch As Integer
Me!Tekst4.Visible = True
intsearch = Me!ID
Me!Tekst4 = DLookup("[Gade]", "Tabel2", "[ID]=" & intsearch)
End Sub
Avatar billede 49jensen Nybegynder
22. september 2008 - 12:35 #15
Jeg tror jeg udtrykker mig forkert. Det er et alfanummerisk jeg har (både tekst og tal), så dette må være koden.
Dim Stringsearch As String
Stringsearch = Me!Navn
Me!Tekst4 = DLookup("[Gade]", "Tabel2", "[Navn]='" & Stringsearch & "'")
Er vi enig om at "Navn" er det der svarer til mit felt "Signature", og "Tekst 4" er det der skal insættes.
Og koden skal indsættes under before update?
Avatar billede mugs Novice
22. september 2008 - 13:54 #16
Jeg kan ikke vide hvad dine felter hedder. 21/09-2008 23:50:36 skrev du, at det var et numerisk felt.

Mit felt "navn" er mit kriterie, som jeg kan forstå hedder "Signasture" hos dig. Og Tekst4 er korrekt det felt, der skal modtage værdien.

Men det kunne være rart at vide, hvilken fejl du får!
Avatar billede 49jensen Nybegynder
22. september 2008 - 15:11 #17
Det virker nu. Som sagt er jeg ikke så god til det med kode, så jeg kan nogle gange ikke se systemet.Mange tak for hjælpen, nu kan jeg udskifte mit "relationssystem" med dette. Det sparer mig en masse tid.
Avatar billede mugs Novice
22. september 2008 - 15:22 #18
Tak for point.
Prøv ar lave funktionen i en forespørgsel i stedet. Der luigger et eksempel i db18. Syntaksen er således:

Udtryk1: DLookUp("[Gade]";"Tabel2";"[ID]=" & [ID])
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