Avatar billede aamodtod Nybegynder
26. oktober 2001 - 08:57 Der er 11 kommentarer og
1 løsning

Problemer med Count / insert i Access Database

Hei!

Har laget en ASP løsning som viser hvor mange som er borte fra jobb og når de er borte. Men jeg får problemer når den skal telle (Count) antall personer som f.eks. er borte på \"Mandag\". Da teller den også med de tomme kolonnene også.

Jeg bruker følgene kode når jeg legger inn en record:

SQL1 = \"INSERT INTO fraver_tot (Uke,aar,navn,team,Mandag,man_kode,Tirsdag,tirs_kode, Onsdag, Ons_kode,Torsdag, tors_kode, fredag, fre_kode, lordag, lor_kode) VALUES (\" & Request(\"Uke\") & \",\" & Request(\"aar\") & \",\'\" & Request(\"Navn\") & \"\',\'\" & Request(\"team\") & \"\',\'\" &Request(\"Mandag\") & \"\',\'\" & Request(\"man_kode\") & \"\',\'\" & Request(\"Tirsdag\") & \"\',\'\" & Request(\"Tirskode\") & \"\',\'\" & Request(\"Onsdag\") & \"\',\'\" & Request(\"Onskode\") & \"\',\'\" & Request(\"Torsdag\") & \"\',\'\" & Request(\"Torkode\") & \"\',\'\" & Request(\"Fredag\") & \"\',\'\" & Request(\"Frekode\") & \"\',\'\" & Request(\"Lordag\") & \"\',\'\" & Request(\"lorkode\") & \"\')\"
------------------------------------------------------
Verdiene er er de fleste hentet fra en combobox som ser slik ut (Eksempel \"Mandag\" combo\'en)
SQL=\"Select* From Koder\"
set rs=conn.execute(SQL)
Response.Write \"<select name=Mandag size=1>\"
Response.Write \"<OPTION SELECTED VALUE=\'\'>Velg Fravær</option>\"     
Do While Not rs.EOF
  Response.Write \"<option value=\'\" & rs(\"fraver_Koder\") & \"\'>\" & rs(\"Fraver_Koder\") & \"</option>\"
  rs.MoveNext
Loop%>
-----------------------------------------------------
Når jeg skal telle antall poster / kolonner når folk er borte ser Sql\'en slik ut:

SQL2=\"SELECT Count(Mandag) AS AntallAvMandag,Count(Tirsdag) AS AntallAvTirsdag,Count(Onsdag) AS AntallAvOnsdag,Count(Torsdag) AS AntallAvTorsdag,Count(Fredag) AS AntallAvFredag,Count(Lordag) AS AntallAvlordag FROM fraver_tot WHERE Uke=\"&strweek&\" AND Team=\'\"&strteamleder&\"\' AND OR Uke=\"&strweek&\" AND Team=\'\"&stritteam&\"\'OR Uke=\"&strweek&\" AND Team=\'\"&strAvtaleteam&\"\'OR Uke=\"&strweek&\" AND Team=\'\"&strteam1&\"\'OR Uke=\"&strweek&\" AND Team=\'\"&strteam2&\"\'OR Uke=\"&strweek&\" AND Team=\'\"&strteam3&\"\'OR Uke=\"&strweek&\" AND Team=\'\"&strteam4&\"\'\"

----------------------------------------------------

Slik at hvis jeg legger inn via en \"form\" at en person er borte \"Tirsdag\", så teller den også med at denne personen er borte fra jobb: \"Mandag\", \"Onsdag\", \"Torsdag\", \"Fredag\" og \"Lørdag\".

Er det noen som kan hjelpe meg med dette slik at kolonner som er tomme ikke blir tatt med i \"Count\"

Odd
Avatar billede webbe Nybegynder
26. oktober 2001 - 12:36 #1
Der er i hvert fald et problem her:

Team=\'\"&strteamleder&\"\' AND OR Uke=\"&strweek&\" AND Team=\'\"&stritteam&\"\'OR Uke=\"&strweek&\"

Mener ikke du kan bruge AND og OR lige efter hinanden!

Prøv at slette AND, for som jeg ser det er det et nyt kriterie du vil sætte op!
Avatar billede aamodtod Nybegynder
26. oktober 2001 - 12:44 #2
Ja, den har jeg rettet opp... Jeg la merke til den \"Feilen\" etter at jeg hadde lagt ut spørsmålet.

Har du noe svar på det som egentlig er problemet?

Odd
Avatar billede webbe Nybegynder
26. oktober 2001 - 12:46 #3
Prøv at bygge den op kriterie for kriterie.....så du først starter med at vælge for fx. mandag - når du så har fået den til at virke bygger du tirsdag på osv!
Avatar billede webbe Nybegynder
26. oktober 2001 - 12:50 #4
Evt. skal du lave:

sql = \"SELECT COUNT(Mandag) AS Antal FROM table WHERE Uke=\"&strWeek&\" AND Team=\'\"&strTeamLeder&\"\' AND Mandag <> \"\" \"

Derved tager du ikke de tomme felter med!
Avatar billede aamodtod Nybegynder
26. oktober 2001 - 12:54 #5
Problemt blir jo hvis det ikke er noen borte på mandag, så sender comboboksen for \"mandag\" en tom streng til databasen. Når jeg da skal skal finne ut hvor mange som er borte på mandag teller den med det \"Blanke\" feltet på mandag.

I den formen jeg bruker så ligger hele uka( dagene), og i databaseresultatet så viser den hele uka fordelt på dagene ( mandag, tirsdag, onsdag, osv...)



Avatar billede aamodtod Nybegynder
26. oktober 2001 - 12:58 #6
Ok, jeg skjønner hva du mener.
Her testet og får denne feilmeldingen:

Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Syntaksfeil i streng i spørreuttrykket Uke=43 AND Team=\'Leder\' AND Mandag <> \"

/test/fraver/fraver_2.asp, line 40
Avatar billede webbe Nybegynder
26. oktober 2001 - 13:04 #7
Er feltet mandag et tal eller tekstfelt???
Avatar billede aamodtod Nybegynder
26. oktober 2001 - 13:06 #8
Det er et tekstfelt.
Avatar billede webbe Nybegynder
26. oktober 2001 - 13:07 #9
Prøv denne her:

sql = \"SELECT COUNT(Mandag) AS Antal FROM table WHERE Uke=\"&strWeek&\" AND Team=\'\"&strTeamLeder&\"\' AND Mandag <> \'\' \"

Avatar billede webbe Nybegynder
26. oktober 2001 - 13:10 #10
Du skal ændre \"\" til \' \'!
Avatar billede aamodtod Nybegynder
26. oktober 2001 - 13:12 #11
Jepp, det fungerte. Her er dine point!

Tusen takk for hjelpen!

Odd
Avatar billede webbe Nybegynder
26. oktober 2001 - 13:14 #12
Det var så lidt - er her jo for at hjælpe! ;0)
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