Avatar billede lllund Nybegynder
01. december 2004 - 15:53 Der er 22 kommentarer og
1 løsning

problemer med at se hvormange der ligger på en dag.

Viddere fra tråd:

http://www.eksperten.dk/spm/566676

Som det er nu bliver alle vores poster lagt ind i EN table "yearlycal", altså selv om der oprettes 2,3,4 osv. på samme dag Det problem vi har er så at der max må være 8 antal deltagere på en dag. nogle forslag?

i kan se de 3 *.asp filer her i *.txt format:

http://roskildebus.dk/test

på forhånd tak:
Kasper Lund
Avatar billede tofte Juniormester
01. december 2004 - 15:59 #1
Bruger du følgende SQL til noget
StrSql= "Select * from calendar where dte = #" & Request("view_Date") & "#"
strSql= "select * from calendar where month(dte) = " & month(Request("view_date")) & " AND day(dte) = "&day(request("view_date"))
Avatar billede tofte Juniormester
01. december 2004 - 16:04 #2
Du kan prøve noget ala, det er ikke testet, så der er sikker fejl i
if Request.Form("pword") <> "" then 'the password
    Response.AddHeader "401.1 Unauthorized: ", "401.1"
    Response.Write "<H2>HTTP Error 401</H2><P><STRONG>401.1 Unauthorized: Logon Failed</STRONG></P><P>This error indicates that the credentials passed to the server do not match the credentials required to log on to the server.</P>"
    Response.Write "<center><a href='index.asp'>Back to Calendar</a> </center>"
    Response.End
End if

Function ChkString(string)
    if string = "" then string = " "
    ChkString = Replace(string, "'", "''")
End Function

set my_conn= Server.CreateObject("ADODB.Connection")
'my_Conn.Open "DSN=schedule2000"
cnpath="DBQ=" & server.mappath("webcalendar.mdb") 'or where ever you put the db.
my_conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & cnpath

'Check to see if it's a new record to be added or an old one to update
strSQL = "SELECT Count(navn) as antal from yearlycal GROUP by dte HAVING dte=#"&request("view_data")&"#"
set result = my_conn.execute(strSQL)
if result("antal")<8 then

strSQL = "Insert into yearlycal (dte, navn, gruppe, email, initial) values (#" & Request("view_date") & "#, '" &chkString(Request.Form("navn")) & "' , '" &chkString(Request.Form("gruppe")) & "' , '" &chkString(Request.Form("email")) & "' , '" &chkString(Request.Form("initial")) & "' )"
my_conn.execute(strSQL)
else
    'Der er opstået en fejl, der må kun være 8
end if



my_Conn.Close
set my_conn = nothing
'response.write strsql2 &"<br>"
'response.write yearlysql

Response.Redirect ("index.asp?view_date=" & request("view_date"))
Avatar billede lllund Nybegynder
01. december 2004 - 16:08 #3
Ja det bliver brugt til at opdatere forsiden index.asp, der ligger oss en table der hedder calender hvor den henter den seneste der her meldt sig på
Avatar billede tofte Juniormester
01. december 2004 - 16:12 #4
ok, men hvis du bare bruger følgende burde det virke:
strSQL = "SELECT Count(navn) as antal from yearlycal GROUP by dte HAVING dte=#"&request("view_data")&"#"
set result = my_conn.execute(strSQL)
if result("antal")<8 then

strSQL = "Insert into yearlycal (dte, navn, gruppe, email, initial) values (#" & Request("view_date") & "#, '" &chkString(Request.Form("navn")) & "' , '" &chkString(Request.Form("gruppe")) & "' , '" &chkString(Request.Form("email")) & "' , '" &chkString(Request.Form("initial")) & "' )"
my_conn.execute(strSQL)
else
    'Der er opstået en fejl, der må kun være 8
end if
Avatar billede lllund Nybegynder
01. december 2004 - 16:32 #5
Den giver en fejl her:
35:set result = my_conn.execute(sSQL)
36:if result("antal")<8 then

FEJL:

error '80020009'
/test2/add_date.asp, line 36
Avatar billede lllund Nybegynder
01. december 2004 - 16:44 #6
strSQL = "SELECT Count(navn) as antal from yearlycal GROUP by dte HAVING dte=#"&request("view_data")&"#"
set result = my_conn.execute(strSQL)
if result("antal")<8 then

og hvorfor er det du skriver """"SELECT Count(navn)""" i den øverste linje her?
Avatar billede tofte Juniormester
01. december 2004 - 16:49 #7
databasen er nødt til at have et felt at tælle på, så jeg valgte at den skal tælle på navnet, men jeg kunne også have valgt et andet felt eller *.

Jeg skal lige høre, der står
set result = my_conn.execute(sSQL), altså sSQL, men du referer til strSQL i din sidste kommentar, har du husket at ændre det, så det er den rigtige SQL den kører?
Avatar billede lllund Nybegynder
01. december 2004 - 16:53 #8
ja ...det er ændret
Avatar billede lllund Nybegynder
01. december 2004 - 17:19 #9
hvis du evt. har lidt kode der kan oprette en Messagebox hvis der er for mange på en dag? ville det være helt perfekt!
Avatar billede tofte Juniormester
01. december 2004 - 18:56 #10
men virker ovenstående? Altså sådan at den kun opretter hvis der er mindre end 8?
Avatar billede lllund Nybegynder
01. december 2004 - 19:05 #11
nej det gør det ikke:

Den giver en fejl her:
35:set result = my_conn.execute(sSQL)
36:if result("antal")<8 then

FEJL:

error '80020009'
/test2/add_date.asp, line 36
Avatar billede lllund Nybegynder
01. december 2004 - 20:02 #12
Hvad med den her linje, kan der være noget galt med den???

sSQL = "Select Count(navn) as antal FROM yearlycal GROUP by dte HAVING dte=#"& request("view_date") &"#"
Avatar billede tofte Juniormester
01. december 2004 - 20:13 #13
følgende virker hos mig
<%


if Request.Form("pword") <> "" then 'the password
    Response.AddHeader "401.1 Unauthorized: ", "401.1"
    Response.Write "<H2>HTTP Error 401</H2><P><STRONG>401.1 Unauthorized: Logon Failed</STRONG></P><P>This error indicates that the credentials passed to the server do not match the credentials required to log on to the server.</P>"
    Response.Write "<center><a href='index.asp'>Back to Calendar</a> </center>"
    Response.End
End if

Function ChkString(string)
    if string = "" then string = " "
    ChkString = Replace(string, "'", "''")
End Function

set my_conn= Server.CreateObject("ADODB.Connection")
'my_Conn.Open "DSN=schedule2000"
cnpath="DBQ=" & server.mappath("webcalendar.mdb") 'or where ever you put the db.
my_conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & cnpath

'Check to see if it's a new record to be added or an old one to update
StrSql= "Select * from calendar where dte = #" & Request("view_Date") & "#"
strSql= "select * from calendar where month(dte) = " & month(Request("view_date")) & " AND day(dte) = "&day(request("view_date"))
set rs = my_conn.Execute (StrSql)

strSQL = "SELECT Count(navn) as antal from yearlycal GROUP by dte HAVING dte=#"&request("view_date")&"#"
set result = my_conn.execute(strSQL)
if result("antal")<3 then

StrSql2 ="INSERT INTO calendar (dte, text_field) values (#" & request("view_date") & "#, '" & chkString(request("navn")) & "')" 
my_conn.Execute (strSql2)
' SQL sætning opbygges
strSQL = "Insert into yearlycal (dte, navn, gruppe, email, initial) values (#" & Request("view_date") & "#, '" &chkString(Request.Form("navn")) & "' , '" &chkString(Request.Form("gruppe")) & "' , '" &chkString(Request.Form("email")) & "' , '" &chkString(Request.Form("initial")) & "' )"
my_conn.execute(strSQL)
else%>
<script>
    alert("Fy kun 8 pr dag");
    location.href="index.asp?view_date=<%=request("view_date")%>";
   
</script>
<%
Response.end
end if




my_Conn.Close
set my_conn = nothing
'response.write strsql2 &"<br>"
'response.write yearlysql

Response.Redirect ("index.asp?view_date=" & request("view_date"))

%>
Avatar billede lllund Nybegynder
01. december 2004 - 20:19 #14
Jeg får denne meddelelse på ovenstående:

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

[Microsoft][ODBC Microsoft Access Driver] Syntax error in date in query expression 'dte = ##'.

/test2/index.asp, line 106

ANYONE CAN HELLPPP????
Avatar billede lllund Nybegynder
01. december 2004 - 20:22 #15
sorry havde ikke lige set du havde svaret prøver det lige!!

5 min!!
Avatar billede lllund Nybegynder
01. december 2004 - 20:29 #16
jeg får denne fejl:

error '80020009'
/test2/add_date.asp, line 28
Avatar billede lllund Nybegynder
01. december 2004 - 20:34 #17
hvis du vil se Databasen ligger den her:
http://roskildebus.dk/test/webcalendar.mdb
Avatar billede lllund Nybegynder
01. december 2004 - 20:39 #18
Hvis du selv har adgang til en asp understøttet server kan du da lige prøve at kigge på filerne her:

http://roskildebus.dk/test/kalender.zip
Avatar billede tofte Juniormester
01. december 2004 - 21:12 #19
min fejl. Byt linien

if result("antal")<8 then
ud med
if rs.eof then antal = 0 else antal = result("antal")

if antal<8 then

Jeg troede ikke databasen var tom :-)
Avatar billede tofte Juniormester
01. december 2004 - 21:12 #20
altså en til 2 linier
Avatar billede tofte Juniormester
01. december 2004 - 21:13 #21
ellers tager den ikke højde for, at der ingen er på dagen.
Avatar billede lllund Nybegynder
01. december 2004 - 21:29 #22
OKay ...så virker det.

Næste problem... opretter lige en ny tråd så du kan få flere point ;)
Avatar billede lllund Nybegynder
01. december 2004 - 21:29 #23
Ind til videre Tak for hjælpen
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