Avatar billede riishoj Nybegynder
29. november 2002 - 15:05 Der er 12 kommentarer og
2 løsninger

Undgå at indsætte record hvis denne eksisterer

Hvordan undgår jeg at nedenstående script indsætter en record i db'en hvis følgende er sandt:

Hvis uge, dag og lektion er ens, så må lokale ikke også være ens.
Evt. skrive en meddelelse, som siger at lokalet er optaget.

Håber nogen forstår hvad jeg mener!

<%
Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath ("/reservation/data.mdb")
    Conn.Open DSN


' SQL sætning opbygges
strSQL = "Insert into reserver (uge,dag,lektion,initialer,klasse,lokale) values('" & Request.Form("uge") & "','" & Request.Form("dag") & "','" & Request.Form("lektion") & "','" & Request.Form("initialer") & "','" & Request.Form("klasse") & "','" & Request.Form("lokale") & "')"
Conn.Execute(strSQL)
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede stormlic Nybegynder
29. november 2002 - 15:16 #1
lav en select for at se om der findes en kombination i basen med "uge, dag og lektion" som er lig den i din insert.
IF not, så insert, ellers giv brugeren en fejl meddelese.
Avatar billede riishoj Nybegynder
29. november 2002 - 15:21 #2
På almindelig dansk så betyder det jeg skrev, at det ikke må være muligt at booke det samme lokale på det samme tidspunkt. Dvs. uge, dag og lektion.
Kan du ikke give et eksempel på en sådan select?
Avatar billede stormlic Nybegynder
29. november 2002 - 15:27 #3
jeg går ud fra at brugeren har indtasted ønskede uge, dag og lektion.
HVIS det er tilfældet, så lav en SELECT der tjekker om denne kombination eksistere i basen.
HVIS denne kombination eksistere, giver du en besked til brugeren om at det ønskede valg ikke kan lade sig gøre. ELLERS sender du din INSERT til basen.
Avatar billede stormlic Nybegynder
29. november 2002 - 15:31 #4
SELECT uge, dag, lektion FROM reserver WHERE uge = " & request.form("uge") & " AND dag = " & request.form("dag") & " AND lektion = '" & request.form("lektion ") & "'"

Jeg går ud fra at "lektion" er en tekst streng der for er der ' '  omkring.
Avatar billede riishoj Nybegynder
29. november 2002 - 15:33 #5
Ja, brugeren vælger uge,dag,lektion,initialer,klasse,lokale, og uge, dag, lektion og lokale må ikke findes i forvejen i db'en.

Jeg ved ikke, hvordan man laver en sådan select? Hvis jeg lokker med lidt flere point, kan du så ikke lave den?
Avatar billede stormlic Nybegynder
29. november 2002 - 15:38 #6
SELECT uge, dag, lektion FROM reserver WHERE uge = " & request.form("uge") & " AND dag = " & request.form("dag") & " AND lektion = '" & request.form("lektion ") & "'"



;)
Avatar billede riishoj Nybegynder
29. november 2002 - 15:41 #7
Skal jeg ikke have lokale med? Det skal jo kunne lade sig gøre at vælge den samme uge, dag og lektion, blot ikke samme lokale?
Avatar billede stormlic Nybegynder
29. november 2002 - 15:45 #8
nej.
Avatar billede stormlic Nybegynder
29. november 2002 - 15:45 #9
For kombinationen må jo godt finde sted, med et andet lokale.
Avatar billede riishoj Nybegynder
29. november 2002 - 15:53 #10
Så forstår jeg det ikke helt. Gider du ikke putte Selecten ind i mit script, så jeg kan prøve det? Jeg er ikke særlig skrap til det her:(
Avatar billede chr.jorgensen Nybegynder
29. november 2002 - 16:07 #11
Jo, der skal være lokale med i SELECT'en. Ellers bliver brugeren blokeret, blot uge, dag og lektion er valgt af en enkelt anden bruger tidligere...
Avatar billede riishoj Nybegynder
29. november 2002 - 16:08 #12
Er du sprunget fra? Jeg smider gerne 70 point oveni, hvis du kan få det til at virke!!!
Avatar billede riishoj Nybegynder
29. november 2002 - 16:18 #13
chr.jorgensen>De 70 point er dine, hvis du kan få det til at virke!
Avatar billede chr.jorgensen Nybegynder
01. december 2002 - 21:48 #14
SltSQL = "SELECT uge, dag, lektion FROM reserver WHERE uge = '" & request.form("uge") & "' AND dag = '" & request.form("dag") & "' AND lektion = '" & request.form("lektion ") & "' AND lokale = " & request.form("lokale") & "'"

- uden videre kendskab til Access-programmering men med kendskab til SQL...
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