18. april 2002 - 15:42Der 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.
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
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
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.
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
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.
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 '-' ?
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.