Avatar billede Slettet bruger
07. februar 2007 - 08:43 Der er 17 kommentarer og
1 løsning

Kan ikke redigere i recordset

Jeg har en forespørgsel:

SELECT Reservedelsliste.*, nz([SumOfAntal],"0") AS Stk
FROM Reservedelsliste LEFT JOIN Antal ON Reservedelsliste.Type = Antal.Type
WHERE (((Reservedelsliste.Stamkort)=True));

Men efter jeg har sat denne summering af antal på (med type som relation) kan jeg ikke redigere i recordsættet!~(
Avatar billede terry Ekspert
07. februar 2007 - 08:55 #1
using JOINS and agregate functions in queries quite often gives problems.
Avatar billede Slettet bruger
07. februar 2007 - 09:00 #2
tell me about it!~)
Avatar billede Slettet bruger
07. februar 2007 - 09:23 #3
Er der en løsning, kan man have en summering i et recordset og stadig opdatere de andre felter...
Avatar billede terry Ekspert
07. februar 2007 - 09:24 #4
which records does the SumOfAntal come from? Access has no way of updating a calculated field. Your JOIN may also be returning more than one row for each record in Reservedelsliste, access very likley wont allow this, it needs unique rows
Avatar billede terry Ekspert
07. februar 2007 - 09:31 #5
07/02-2007 09:23:24
It is a bit of trial and error I think. But as soon as you start using calculated fields then from my experience you cant.
Avatar billede Slettet bruger
07. februar 2007 - 09:47 #6
SumOfAntal kommer faktisk fra reservedelslisten, det er lidt en dum situation jeg har sat mig selv i. Reservedelslisten indeholder lagertilgange, -afgange og data for selve reservedelen. Dette styres med et afkrydsningsfelt, som hedder stamkort.

Problemet ligger så i at jeg skal bruge en fortløbende formular med alle stamkort, men det skal selvfølgelig også indeholde det samlede antal for hver reservedel.

Jeg kommer nok til at dele reservedelslisten og til-/afgange fra hinanden (hvilket også vil være det mest rigtige), men det er jo forgrenet i hele db'en, såehhh...
Avatar billede mugs Novice
07. februar 2007 - 09:48 #7
Det er jo korrekt hvad Terry skriver: Når du opsummerer, vil der jo som regel være flere poster i opsummeringen, så hvordan skal Access vide, hvilken post du vil rette.
Avatar billede Slettet bruger
07. februar 2007 - 09:50 #8
Jeg vil kun rette i reservedelslisten ikke i summeringen...
Avatar billede Slettet bruger
07. februar 2007 - 09:52 #9
egentlig skal jeg jo regulere antal for den enkelte reservedel istedet for at indsætte en ny post hver gang!~)
Avatar billede Slettet bruger
07. februar 2007 - 10:01 #10
Ja, det er det jeg er nød til at gøre. Jeg holder ved stamkortene, opdaterer antal på stamkort til summen for alle reservedele med samme typenr og så sletter alle som ikke er stamkort. Så kan jeg faktisk fortsætte som før, så skal jeg kun rette selve importeringen/indtastningen af reservedele!~)
Avatar billede Slettet bruger
07. februar 2007 - 10:05 #11
Ofte så skal man bare have luftet problemet med nogen, som har en forståelse for hvad man egentlig sidder og roder med!~)

Er der nogen guldkorn eller en løsning på det oprindelige problem, så er der point... Jeg lukker imorgen...

Tak for hjælpen!~)
Avatar billede mugs Novice
07. februar 2007 - 11:29 #12
Jeg mener ikke, at du kan rette i en forespørgsel hvor du opsummerer. Som tidligere nævnt:

Hvordan skal Access vide, hvbilken post der skal rettes?
Avatar billede Slettet bruger
07. februar 2007 - 13:18 #13
Jeg kan godt se hvad du siger.... men jeg har en entydig sql med reservedelene og så joiner jeg den til en sql, som indeholder typenr og summeret antal... Optimalt så burde man kunne rette i alt pånær det summerede antal!~)
Avatar billede mugs Novice
07. februar 2007 - 14:05 #14
Nej - En opsummeret post kan jo bestå af flere enkeltposter, så hvilken af enkeltposterne skal rettes?
Avatar billede kjulius Novice
07. februar 2007 - 20:53 #15
Hmm... Hvad om du i stedet for at lave opsummeringen i forespørgslen brugte en DLOOKUP funktion til at vise sammentællingen i et ubundet felt. Altså, at du i feltets "Kontrolelementkilde" skrev noget ala.

=HentSum(Me.[Type])

Så kunne du lave en lille kode som f.eks.

Function HentSum(ReservedelsType as Integer) As Long
    HentSum = DLOOKUP("SumOfAntal","Antal","[Type]=" & CStr(ReservedelsType))
End Function

Det burde gøre felterne opdaterbare igen (dog ikke det ubundne sumfelt). Der er selvfølgelig også ulemper - du kan f.eks. ikke filtrere på sumfeltet.
Avatar billede kjulius Novice
07. februar 2007 - 21:01 #16
Jeg kom til at tænke på en anden ting. Grunden til at du ikke kan updatere mere kan også tænkes at være fordi du medtager alle felter (Reservedelsliste.*) - hvad om du ikke medtog det felt, som der laves en opsummering på i opsummeringsforespørgslen der refereres til. Med mindre du SKAL vise også dette felt, selvfølgelig.
Avatar billede Slettet bruger
08. februar 2007 - 13:59 #17
Jeg tjekker lige når jeg får et ledigt øjeblik, måske imorgen!~)
Avatar billede Slettet bruger
13. februar 2007 - 09:21 #18
Nej, virker heller ikke... Så jeg tror jeg ligger strukturen lidt om, så jeg kan redigere direkte også på stk antal, dvs. en post pr. reservedel!~)
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