[asp/access] kolom gemiddelden van meerdere gebruikers

Pagina: 1
Acties:

  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
Ik heb een access tabel waar in 8 kolommen staan met de totaal score van een test die ik gemaakt heb.
Afbeeldingslocatie: http://www.caidure.com/voorbeeld.gif

Elke row is van één gebruiker en nu wil ik een groepsgemiddelde berekenen door checkbuttons aan te klikken en dan te submitten
Afbeeldingslocatie: http://www.caidure.com/voorbeeld1.gif

Uit de url haal ik dan de id's van de gebruikers:
gemiddelde.asp?testid=4&testid=6&testid=11 (enzovoort)

Maar ik weet niet goed hoe ik dit aan moet pakken.
Ik hoef geen code voorbeeld, want dat lukt me zelf wel. Ik ben meer welke vb-scripts commando's ik moet gebruiken voor dit.. Of kan dit het beste in een SQL-query doen?

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Heb je de ID's? dan kan je mooi "select avg(kolom) from tabelletje where id in ( 4,6,11 )" doen.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
mooi, dat zal ik eens gaan proberen. Ik laat van me horen :D

  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
Hmm, het lukt niet echt. De volgende code geeft me problemen.
<%
Dim Recordset1
Dim Recordset1_numRows

Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_slg2_STRING
Recordset1.Source = "SELECT avg(score1) FROM TblScores WHERE Id = (1, 2)"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()

Recordset1_numRows = 0
%>


Ik krijg de volgende foutmelding:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-stuurprogramma] Syntaxisfout (komma) in query-expressie Id = (1, 2).

Enig idee waar dit aan kan liggen?

  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Id = (1,2) vervangen door Id IN (1,2)

Never underestimate the power of


  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
O ja! da's nogal stom van mij B)
Nou dan de allerlaatste vraag, want daar zit ik nu ook al mee te stoeien.

Hoe krijg ik in hemelsnaam die uitkomst in een variabele?
bij: <%=RSgemiddeld("score1")%>

Krijg ik een foutmelding

  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
Never mind.... Ik heb het al gevonden :+

  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
Nou nog een dingetje dan :9

Ik werk met dreamweaver... en dreamweaver laat in de recordset zien dat er een field item is genaamd: Expr1000

dus met:
<%=(RSgemiddeld.Fields.Item("Expr1000").Value)%>

Krijg ik gewoon de goede uitslag te zien, maar wat is die Expr1000 dan?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Dennis013 schreef op 12 mei 2004 @ 15:36:
Never mind.... Ik heb het al gevonden :+
En voor degenen die dit topic ooit uit de search graven dan?

Zal ik het dan maar verklappen?

SELECT avg(score1) as MijnVeld FROM TblScores WHERE IN Id = (1, 2)

<%=(RSgemiddeld.Fields.Item("MijnVeld").Value)%>

edit:

• Gebruik a.u.b. de EDIT knop (Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/got/images/icons/edit.gif), 3 keer achter elkaar posten vinden we niet liev :>
• De Expr1000 wordt gegenereerd omdat je zelf geen veldnaam opgeeft.

Ik dacht dus dat je dat al ontdekt had, maar niet dus... ;)

[ Voor 39% gewijzigd door RobIII op 12-05-2004 15:42 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 25-05 21:07

TeeDee

CQB 241

Dennis013 schreef op 12 mei 2004 @ 15:38:
Nou nog een dingetje dan :9

Ik werk met dreamweaver... en dreamweaver laat in de recordset zien dat er een field item is genaamd: Expr1000

dus met:
<%=(RSgemiddeld.Fields.Item("Expr1000").Value)%>

Krijg ik gewoon de goede uitslag te zien, maar wat is die Expr1000 dan?
Dat is een "random" iets omdat je er geen select bla as blaat in je query hebt.

Wat RobIII zegt!

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
a ha

Dankjewel ;)

[ Voor 70% gewijzigd door Dennis013 op 12-05-2004 15:51 ]


  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
edit:

• Gebruik a.u.b. de EDIT knop ([afbeelding]), 3 keer achter elkaar posten vinden we niet liev :>
Toch maar even toevoegen ;)
Nieuw probleem, ik denk dat alles precies goed is, maar ik krijg toch een foutmelding met de volgende query:

SELECT avg(collectiefleren) AS score_collectiefleren FROM TblScores WHERE IN testid = (1, 2, 3)
(ik heb die query middels een response.write uit de variable gehaald, de 1, 2, 3 komen uit een request.querystring)

Foutmelding:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-stuurprogramma] Syntaxisfout (operator ontbreekt) in query-expressie IN testid = (1, 2, 3).

Ik heb het meer dan tig x nagelezen en vergelijken met de query die jij me gaf, ook met een 'werkende' pagina die ik zelf al gemaakt had, maar ik krijg 'm er echt niet uit.
Die foutmelding wijst op een dubbele ' ergens... volgens de volgende url
http://www.adopenstatic.com/faq/80040e14.asp#scenario3a

Maar... die ' zit er helemaal niet tussen!
Zit er iets fout in mijn query? Het kunnen toch niet die komma's zijn??

[ Voor 11% gewijzigd door Dennis013 op 12-05-2004 23:01 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 11:53

gorgi_19

Kruimeltjes zijn weer op :9

WHERE TestID IN (1,2,3)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
:) Ok, die probeerde ik eerst..
Dit is inderdaad de oude query

Maar met de nieuwe (correcte??) query
"SELECT avg(collectiefleren) AS score_collectiefleren FROM TblScores WHERE testid IN (1, 2, 3)"

krijg ik nog steeds een foutmelding, zij het een andere...
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access-stuurprogramma] Gegevenstypen komen niet overeen in criteriumexpressie.

Mijn Accessvelden zijn allemaal tekstvelden. (Ik heb het met numerieke velden geprobeerd, maar kreeg hetzelfde resultaat)

Ik heb het ook al geprobeerd om het zo te doen:
WHERE testid IN ('1, 2, 3')

Maar dan krijg ik geen waarden meer uit de field-items, dus ik denk dat er niks geselecteerd wordt dan?

[ Voor 33% gewijzigd door Dennis013 op 12-05-2004 23:41 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Serieus makker, ga eens een SQL cursusje volgen ;)

NOFI, maar dit is wel allemaal erg basic wat je hier neerplant. We willen je graag helpen, maar je zult zelf ook wat moeten doen (is nog leerzamer ook :Y) )

Overigens kan ik met je laatste vraag weinig als ik niet weet hoe je tabel(len) er uit zien...Dussss.....

[ Voor 18% gewijzigd door RobIII op 13-05-2004 01:21 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Als het tekstvelden zijn, moet het zo:
code:
1
WHERE testid IN ('1', '2', '3')

Verder lijkt het me niet verkeerd om het advies van RobIII op te volgen.

Never underestimate the power of


  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
:9 ok ok, ik geef absoluut toe dat SQL niet mijn sterkste punt is.
Ik heb het tot nu toe altijd goed kunnen omzeilen, maar nu ga ik het ook leren, :7 want ik zie heel duidelijk de voordelen in. Trouwens bedankt voor die link, zal eens wat tijd aan besteden zodra dit projectje af is. (moet ik trouwens ook nog eens in acces doen, want daar weet ik ook geen hout vanaf)

Maar hieronder staat een screenshot van mijn tabel's ontwerpweergave.
Afbeeldingslocatie: http://www.caidure.com/tblscores.gif

Ik hoop dat je er wat inziet. Ik zou willen dat ik dat ook zelf kon, tuurlijk! Alleen ik heb echt geen idee in welke richting ik het moet zoeken.

-----
Ik zal even kijken of ik met de bovengenoemde oplossing eruit kom!

[ Voor 8% gewijzigd door Dennis013 op 13-05-2004 09:56 ]


  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Ik neem aan dat je testid en userid gebruikt om relaties te leggen en daar kun je (bijna) altijd beter een numeriek veld (integer) voor gebruiken.
Verder kun je een datum ook beter als datum veld in je database zetten.

[ Voor 26% gewijzigd door cameodski op 13-05-2004 09:57 ]

Never underestimate the power of


  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
Nee, ik maak geen gebruik van relaties.. Zoals ik al zei.. Geen fluit verstand van acces. 8)7 (weet het, ik schaam me ook diep ervoor)

(trouwens zijn in beide gevallen, van testid & userid voorzien van letters.)
En ik zal de datum veld aanpassen.

[ Voor 31% gewijzigd door Dennis013 op 13-05-2004 09:59 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 11:53

gorgi_19

Kruimeltjes zijn weer op :9

Dennis013 schreef op 13 mei 2004 @ 09:57:
Nee, ik maak geen gebruik van relaties.. Zoals ik al zei.. Geen fluit verstand van acces. 8)7 (weet het, ik schaam me ook diep ervoor)
Is het dan misschien niet beter om eerst een aantal basiszaken over normaliseren door te nemen (zie de PW-FAQ, onderdeel SQL) en de verschillende datatypes, voordat je met aggregated functies aan de gang gaat?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
gorgi_19 schreef op 13 mei 2004 @ 09:59:
[...]

Is het dan misschien niet beter om eerst een aantal basiszaken over normaliseren door te nemen (zie de PW-FAQ, onderdeel SQL) en de verschillende datatypes, voordat je met aggregated functies aan de gang gaat?
Absoluut, maar in dit geval is het een last-minute wjiziging die doorgegeven was en dat kwam er dus niet van.

  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
Nou mensen.. het spijt me dat dit een basic-vraagje is, maar ik krijg het zo niet voor elkaar.
(overigens laden mijn plaatjes niet omdat die op mijn webspace staan waarvan mijn bandbreedtedaglimiet weer eens overschreden is :r ......)

- Nou wat ik gedaan heb is: de databasevelden weer numeriek gemaakt en de ' teken weg gehaald.
Ik snap het niet hoor..... iemand een idee waar dit aan ligt?
----
Hoeveel tekens mag een onderdeel in een variable bevatten.. op dit moment zijn dit nogal lange woorden. Kijken of dat inkorten iets helpt
---
Nou ik heb gekeken, maar het helpt niks.
Het vreemde is.. Ik heb net snel een test gedaan door een ander document te maken en dat werkt wel gewoon.. :'(

[ Voor 31% gewijzigd door Dennis013 op 13-05-2004 16:39 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 11:53

gorgi_19

Kruimeltjes zijn weer op :9

Dennis013:
Ik zie al een aantal keer dat je meerdere posts achter elkaar zet in dit topic. Kan je hier voortaan de Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/got/images/icons/edit.gif voor gebruiken? Veel mensen vinden het vervelend lezen om steeds halve stukjes verhaal verspreidt over meerdere posts te lezen. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
gorgi, dat klopt. dat heb je uitstekend gezien, maar ik heb de vorige post 3x ge-edit om er steeds iets nieuws bij te zetten. Dus ik doe mijn best. (sinds dat ik wist dat ik niet opnieuw mocht posten, heb ik dat alleen gedaan bij een 'nieuw probleem')
Wat sommige topicstarters vervelend vinden is om opmerkingen te krijgen in plaats van antwoorden.
Fijn dat je dit forum zo schoon en leesbaar mogelijk probeert te houden en ik wil me daar natuurlijk aan houden.

Ik zit nu nog steeds met hetzelfde probleem.
Ben er nu al een paar dagen mee bezig en ik heb het gevoel dat ik heel dicht bij de oplossing zit en het best frustrerend om er niet uit te komen.

[ Voor 13% gewijzigd door Dennis013 op 14-05-2004 11:41 ]

Pagina: 1