Avatar billede ferdinand.k Mester
21. august 2003 - 12:37 Der er 29 kommentarer og
3 løsninger

optælling af emner på en subform

jeg har en form med en subform på. Denne form har en række elementer der skal tælles op. Subformen kan f.eks indeholde 34 A'er 15 B'er 10 C'er osv. Disse optællinger skal gerne skrives i en tekstboks, som IKKE er på subformen, men på den form som subformen er på... kan dette lade sig gøre? gerne uden at skulle bruge en forespørgelsel på det...
Avatar billede mugs Novice
21. august 2003 - 12:42 #1
Først skal du sikre dig, at subformen er opdateret. Herefter kan du anvende en DCount på den forespørgsel, der leverer data til subformen. Jeg har ikke Access på denne maskine, men brug e's søgefunktion for at få den rette syntaks.

Me.FELTNAVN = DCount("*", og så noget mere evt. med et kriterie indlagt)
Avatar billede ferdinand.k Mester
21. august 2003 - 12:45 #2
det kan jeg ikke, for min subform er som dataark, og hvis der er 34 a'ere, 15 b'ere og 10 c'ere, betyder det at der er 34 + 15 + 10 linier med data. Det ville være lidt vildt at skrive hvormange der er af alle a,b,c'ere på alle linierne, ik'? De er tilgængelig på subformen, men de vil jo ikke være tilgængeligt på "hovedformen", ville de?
Avatar billede ferdinand.k Mester
21. august 2003 - 12:46 #3
jeg havde tænkt mig måske noget med at man kunne lave en tekstboks, og her kunne tælle emnerne for A'erne op, ect...?!
Avatar billede overchord Nybegynder
21. august 2003 - 13:58 #4
Det kan du ogsaa godt vha dcount.
Men du skal goeres vha kriteriet der forbinder din hovedform og din subform. Saa hvis hovedform og subform er linkede via f.eks MainID og SubID kan du lave en tekstboks i hovedformen enten for hver kategori eller for alle tre i en:

me.Texbox = Dcount("A",TabellenfordinSubform, "[subID]=" & me.MainID)
Avatar billede ferdinand.k Mester
21. august 2003 - 14:47 #5
overchord-> Det er sådan noget jeg vil have fat i, men jeg kan sgu ikke finde den rigtige syntaks. Der kommer ikke rigtigt noget i min tekstboks...
min syntaks ser således ud:
me.MinTekstBoks = Dcount(FeltetIForespørgelsenTilSubFormen) , NavnetPåForespørgelsenTilSubFormen, "UnderOrdnedeFeltISubformen" = OverOrdnedeFeltIHovedFormen)

Er det helt skidt?
Avatar billede ferdinand.k Mester
21. august 2003 - 14:50 #6
jeg har sat formlen under on form_load...
Avatar billede mugs Novice
21. august 2003 - 16:12 #7
Jeg har ikke checkket din syntaks, men prøv at flytte koden til formularens VedAktuel. på den måde får du også din tekstboks opdateret hver gang du skifter post i hovedformularen.
Avatar billede overchord Nybegynder
21. august 2003 - 16:39 #8
Jesp mugs har helt ret - du skal flytte koden til on Current saa den opdateres naar du skifter OverOrdnedeFeltIHovedFormen.
Faar du nogen fejlmeldinger eller vises der bare ikke noget?
Avatar billede ferdinand.k Mester
22. august 2003 - 09:11 #9
jeg har også forsøgt mig med "on current", dog hjælper dette ikke... Jeg får ikke noget i min tekstboks...
Avatar billede ferdinand.k Mester
22. august 2003 - 09:15 #10
gør det nogen ændring hvis jeg fortæller at det er checkbokse der skal tælles op?!
Avatar billede ferdinand.k Mester
22. august 2003 - 09:21 #11
Jeg får fejlen: Du har indtastet et ugyldigt argument i en domæneaggreatfunktion.
Avatar billede mugs Novice
22. august 2003 - 14:06 #12
Checkbokse eller asfkrydsningsfelter er et Ja/Nej felt, og kan kun indeholde 1 af 2 værdier:

Ja (True) eller Nej (False)

og aldrig A,B eller noget som helst andet.

Så: Hvad er det du vil tælle?
Avatar billede ferdinand.k Mester
22. august 2003 - 14:13 #13
min subform indeholder en masse linier med data, hvor alle indeholder en kolonne med KatA, KatB, KatC hvor kun én af dem er afkrydset. Det jeg skal tælle op er antallet af afkrydsede KatA felter, KatB ect... Disse optælninger skal skrives i en tekstboks på hovedformen... én tekstboks pr. kat naturligvis...
Avatar billede Jørgen Kirkegaard Professor
22. august 2003 - 14:51 #14
Jeg vil advare om, at jeg pludselig bliver hentet, men jeg ser om vi kan nå det. "min subform er som dataark": Hvor har du data fra? Er de indtastet? Umiddelbart lyder det nemmere at tælle bogstaver fra kilden.
Avatar billede ferdinand.k Mester
22. august 2003 - 14:55 #15
proceduren er således at jeg har en form der bygger på en tabel "Sælger", og har her en underform "Under_sælger" som er kædet sammen med "sælger_id"'et.
Avatar billede Jørgen Kirkegaard Professor
22. august 2003 - 14:57 #16
Eller sagt på en anden måde; hvis data tastes ind, sker det måske direkte i en tabel. Så kan du lave Sum - Group By, direkte fra tabellen.
Avatar billede Jørgen Kirkegaard Professor
22. august 2003 - 14:58 #17
Dér kom vi vist ind samtidig - men: Kan du ikke forespørge direkte på tabellen?
Avatar billede ferdinand.k Mester
22. august 2003 - 14:59 #18
data tastes ikke ind her. Det jeg søger er et udtræk af data.
pointen er at jeg skal have en statistik over hvad de forskelliige sælgere har solgt. hovedformen indeholder en sælgersID, mens underfomren indeholder data omkring de enkelte salg, deres kategori, kundenummer ect...
Avatar billede Jørgen Kirkegaard Professor
22. august 2003 - 15:02 #19
Kan du ikke forespørge direkte på tabellen?
Avatar billede ferdinand.k Mester
22. august 2003 - 15:04 #20
det ved jeg ikke rigtigt, jeg har haft lidt problemer med at ramme den rigtige syntaks, fordi der er subforme, ect... min kode til AntalA tekstboksen hedder:

AntalA = DCount(Kat_A, Under_Sælger, sælger_id = Me.sælger_id)
Avatar billede Jørgen Kirkegaard Professor
22. august 2003 - 15:06 #21
Øh, og det er ikke rigtigt?
Avatar billede ferdinand.k Mester
22. august 2003 - 15:07 #22
ellers skal jeg jo lave en eller anden Dlookup hvor jeg læser i den "originale" tabellen, ik'?
Avatar billede ferdinand.k Mester
22. august 2003 - 15:07 #23
nej, det er det ikke... jeg får fejlen: Du har indtastet et ugyldigt argument i en domæneaggreatfunktion.
Avatar billede Jørgen Kirkegaard Professor
22. august 2003 - 15:09 #24
jo, netop, eller køre det hele som en forespørgsel - det ville jeg nok gøre, for det er nemmere at eksperimentere med. Jeg må løbe, håber det gav lidt.
Avatar billede ferdinand.k Mester
22. august 2003 - 15:09 #25
men jeg skal vel også specificere at jeg kun ønsker at optælle alle de felter hvor Kat_A = -1, ik'?
Avatar billede mugs Novice
22. august 2003 - 15:51 #26
Ud af ovenstående kan vi nu se, at der skal tælles på numeriske felter med 2 kriterier. En DCount er et domæneagregat som tæller i et domæne altså en tabel eller forespørgsel men ikke en formular. En DCount med 2 numeriske felter kan se sådan ud som postkilde til en ubunden tekstboks: 

=DCount("*";"Tabel1";"[sælgerid] = 10 And [KatA] =True")
Avatar billede ferdinand.k Mester
22. august 2003 - 16:08 #27
min fejlmeddelse er nu: runtime 2001, Du har annuleret den forrige handling... hmm
Avatar billede mugs Novice
22. august 2003 - 16:09 #28
Hvor har du indsat koden?
Avatar billede ferdinand.k Mester
22. august 2003 - 16:16 #29
under "ved aktuel"... skal den på som "filter" istedet, eller..?`!
Avatar billede mugs Novice
22. august 2003 - 16:21 #30
Læs nu hjvad jeg skriver:

som postkilde til en ubunden tekstboks: 

Tag en tekstboks fra værktøjslinien og giv den koden som postkilde. Du skal selvfølgelig rette feltnavne m.v. Du skal også rette sælgerid til en eksisterende værdi.

Du vil ikke få det ønskede resultat, fordi vi ikke refererer til noget felt i formen / subformen. Men i første omgang ønsker jeg blot, at vi får den til at tælle uden fejlmeldinger. Så kan vi rette det andet senere.

Hvis du lægger din e-mail, kan jeg sende dig et eksempel. Derefter vil jeg være væk et par timer, men vender tilbage senere.
Avatar billede ferdinand.k Mester
22. august 2003 - 16:24 #31
du kan se mit minisite... takker..
Avatar billede mugs Novice
22. august 2003 - 16:34 #32
Eksempler sendt. Et omhandlende Dcount og derefter et vedr. subforms, hvordan man peger på subformen og derefter et felt i subformen.
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