Avatar billede tommytc Nybegynder
18. april 2002 - 15:42 Der er 8 kommentarer og
1 løsning

Tæl Navne i Records

Jeg håber at der er nogen der vil tage denne udfordring op :

Har en database hvor jeg har følgende tabeller:
TOP(Tabel) -> En tabel hvor der er op til 5000 navne(Navn) hvoraf mange af dem dukker op flere gange.
NAMER(Tabel) -> En tabel hvor alle navnene(Navn) er, men kun én gang og et felt ved siden af (Antal) i samme tabel hvor antallet af navnet fra TOP skal stå.

Altså : Tag navn for navn i NAMER og tæl hvor mange gange det opstår i TOP og returnere antallet i NAMER(Antal)

Kan nogen udføre denne via en enkelt Commandbutton tager jeg hatten af for han/hun og tildeler 100 point.

Venlig Hilsen
Tommy
Avatar billede jennemaan Nybegynder
18. april 2002 - 15:49 #1
Set adoConn=CreateObject("Adodb.Connection")
adoConn.Open "connectionstringtildindatabase"
adoconn.Execute "Delete From Namer" 'slet tabel
adoConn.Execute "Insert Into Namer Select Navn, Count(Navn) As Antal From Top Group By Navn" 'Indæst ny statistik

/Jennemaan
Avatar billede tjacob Juniormester
18. april 2002 - 15:53 #2
Her er koden der tæller op. Du skal naturligvis erstatte mine navne med dine egne. F.eks. post(i).'Navn' er frit opfundet. Da du ikke har oplyst databasens type, kan jeg ikke komme nærmere. -desuden ved jeg ingenting om databaser.

for i = 1 To 'Antal poster i NAMER'
    for j = 1 To 'Antal poster i TOP'
        k = 0
        if post(i).'Navn' = post(j).'Navn' Then k = k + 1
    next j
    post(i).'Antal' = k
Next i
Avatar billede tjacob Juniormester
18. april 2002 - 15:57 #3
HOV der er en lille fejl:
linien k = 0 flyttes, så den står imellem de to For-linier.
Avatar billede tommytc Nybegynder
18. april 2002 - 16:21 #4
Skal lige nævne at jeg bruger DAO 3.6 og ikke ADO.
Små dele kan jeg ikke bruge til noget...et er at tælle dem op...det rigtige problem består i at skrive antallet tilbage til NAMER ud for hver navn. Jeg ønsker en komplet løsning.
Avatar billede jennemaan Nybegynder
18. april 2002 - 16:28 #5
'I DAO 3.6 er det noget ala:

    Dim dbs As Database, qdf As QueryDef
    Dim strSQL As String
    ' Return reference to current database.
    Set dbs = CurrentDb
    strSQL = "Delete From Namer"   
    Set qdf = dbs.CreateQueryDef("DeleteNamer", strSQL)
    ' Execute QueryDef.
    qdf.Execute

    strSQL="Insert Into Namer Select Navn, Count(Navn) As Antal From Top Group By Navn"
    Set qdf = dbs.CreateQueryDef("UpdateNamer", strSQL)
    qdf.Execute
    Set dbs = Nothing

/Jennemaan
Avatar billede tommytc Nybegynder
18. april 2002 - 19:30 #6
Det virker nogenlunde og dog langt fra...
Jeg får beskeden 'Object DeleteNamer already exists.'
kan først fortsætte når jeg har slettet 'DeleteNamer' og 'UpdateNamer'
jeg fik først overført navne og antal da jeg åbnede min database og klikkede på 'UpdateNamer'
Den skulle gerne selv udføre alle paragrafer uden at jeg manuelt skal ind i databasen hver gang både for at få det ene eller det andet til at virke.

Tommy
Avatar billede jennemaan Nybegynder
18. april 2002 - 19:40 #7
Dim dbs As Database
    Dim strSQL As String
    ' Return reference to current database.
    Set dbs = CurrentDb
    strSQL = "Delete From Namer"   
    dbs.Execute strSQL

    strSQL="Insert Into Namer Select Navn, Count(Navn) As Antal From Top Group By Navn"
    dbs.Execute strSQL
    Set dbs = Nothing

/Jennemaan
Avatar billede tommytc Nybegynder
18. april 2002 - 20:52 #8
Jeg tager hatten af og siger mange tak for hjælpen.
Dog håber jeg at du lige gider at svare på dette også :
I TOP(Navn) er der mange gange sat et '-' i stedet for et navn.
Da der automatisk er mange af dem vil den også lægge sig i toppen af tabellen. Er det muligt at slette den hvis den indeholder '-' ?

Tommy
Avatar billede jennemaan Nybegynder
19. april 2002 - 10:51 #9
dbs.Execute "Delete From Top Where Navn='-'"

/Jennemaan
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
Kurser inden for grundlæggende programmering

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