Avatar billede jensen363 Forsker
16. november 2004 - 12:00 Der er 5 kommentarer og
1 løsning

Tilføjelsesforespørgsel Top 10

Denne programkode giver ialt 16 poster, ikke som forventet 20

Function Case_OKTOBER()
Dim strSQL As String
Dim db As DAO.Database

    Set db = CurrentDb()

    'AKK OKT A-kunder
    strSQL = "INSERT INTO tblTOP10_Grundlag "
    strSQL = strSQL & "( [Firma id], "
    strSQL = strSQL & "[Firma Navn], "
    strSQL = strSQL & "[Firma Ansvarlig], "
    strSQL = strSQL & "Måned, "
    strSQL = strSQL & "[AKK Salg kr], "
    strSQL = strSQL & "[AKK Budget kr], "
    strSQL = strSQL & "KundeType ) "
    strSQL = strSQL & "SELECT TOP 10 "
    strSQL = strSQL & "Indeværende_år.[Firma id], "
    strSQL = strSQL & "Indeværende_år.[Firma Navn], "
    strSQL = strSQL & "Indeværende_år.[Firma Ansvarlig], "
    strSQL = strSQL & "Int([Indeværende_år] & ""10"") AS MD, "
    strSQL = strSQL & "Sum(Indeværende_år.[Salg kr]) AS [Salg kr], "
    strSQL = strSQL & "Sum(Indeværende_år.[Budget kr]) AS [Budget kr], "
    strSQL = strSQL & """A"" AS KundeType "
    strSQL = strSQL & "FROM tblOpgørelsesår, "
    strSQL = strSQL & "Indeværende_år "
    strSQL = strSQL & "INNER JOIN tblPerioder "
    strSQL = strSQL & "ON Indeværende_år.Måned = tblPerioder.AARMD "
    strSQL = strSQL & "WHERE (((tblPerioder.[MD ID]) In (1,2,3,4,5,6,7,8,9,10))) "
    strSQL = strSQL & "GROUP BY Indeværende_år.[Firma id], "
    strSQL = strSQL & "Indeværende_år.[Firma Navn], "
    strSQL = strSQL & "Indeværende_år.[Firma Ansvarlig], "
    strSQL = strSQL & "Int([Indeværende_år] & ""10""), "
    strSQL = strSQL & """A"" "
    strSQL = strSQL & "ORDER BY Sum(Indeværende_år.[Salg kr]) DESC;"

        db.Execute strSQL
   
    'AKK OKT K-kunder
    strSQL = "INSERT INTO tblTOP10_Grundlag "
    strSQL = strSQL & "( [Firma id], "
    strSQL = strSQL & "[Firma Navn], "
    strSQL = strSQL & "[Firma Ansvarlig], "
    strSQL = strSQL & "Måned, "
    strSQL = strSQL & "[AKK Salg kr], "
    strSQL = strSQL & "[AKK Budget kr], "
    strSQL = strSQL & "KundeType ) "
    strSQL = strSQL & "SELECT TOP 10 "
    strSQL = strSQL & "Indeværende_år.[Koncernmoder ID], "
    strSQL = strSQL & "Indeværende_år.[Koncernmoder Navn], "
    strSQL = strSQL & "Indeværende_år.[Firma Ansvarlig], "
    strSQL = strSQL & "Int([Indeværende_år] & ""10"") AS MD, "
    strSQL = strSQL & "Sum(Indeværende_år.[Salg kr]) AS [Salg kr], "
    strSQL = strSQL & "Sum(Indeværende_år.[Budget kr]) AS [Budget kr], "
    strSQL = strSQL & """K"" AS KundeType "
    strSQL = strSQL & "FROM tblOpgørelsesår, "
    strSQL = strSQL & "Indeværende_år "
    strSQL = strSQL & "INNER JOIN tblPerioder "
    strSQL = strSQL & "ON Indeværende_år.Måned = tblPerioder.AARMD "
    strSQL = strSQL & "WHERE (((tblPerioder.[MD ID]) In (1,2,3,4,5,6,7,8,9,10))) "
    strSQL = strSQL & "GROUP BY Indeværende_år.[Koncernmoder ID], "
    strSQL = strSQL & "Indeværende_år.[Koncernmoder Navn], "
    strSQL = strSQL & "Indeværende_år.[Firma Ansvarlig], "
    strSQL = strSQL & "Int([Indeværende_år] & ""10""), "
    strSQL = strSQL & """K"" "
    strSQL = strSQL & "ORDER BY Sum(Indeværende_år.[Salg kr]) DESC;"

        db.Execute strSQL

End Function
16. november 2004 - 12:04 #1
prøv at bruge docmd.RunSQL i stedet for db.Execute strSQL
Så får du oplyst hvorfor 4 poster ikke blev tilføjet (nøglefejl, typefejl osv)

Der må være et eller andet i dit tabeldesign, som giver fejl. Det er ikke lige til at se for os dødelige ;o)
Avatar billede jensen363 Forsker
16. november 2004 - 12:36 #2
På trods af, at [Firma id] er et nummerisk felt, blev det ikke opfattes som sådant for de 4 manglende poster ... suk ...

Takker ... læg lige svar
Avatar billede terry Ekspert
16. november 2004 - 12:48 #3
Not sure if Thomas's answer gave a solution, but just in case!

are you 100% sure that the SQL returns 10+10 (20) records? A TOP 10 doesnt necessarily return 10 records, and also that you dont get duplicate keys [Firma id] for example.
16. november 2004 - 13:02 #4
svar :o)
16. november 2004 - 13:05 #5
Terry->min første tanke var også problemet med Top-queries. Men problemet er jo altid, at man risikerer at få FLERE poster end ønsket. Og det var jo ikke tilfældet her. Derfor konkluderede jeg, at det måtte være noget andet...
Avatar billede jensen363 Forsker
16. november 2004 - 14:02 #6
Problemet lå i, at nogle kundeid havde en værdi som krævede dobbelt reelt tal istedet for reelt tal :o)
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