---
title: "Databaskoppling och IF!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/125614-databaskoppling-och-if"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Coccozz"
published: "2005-04-02T09:59:22.000Z"
updated: "2005-04-04T18:15:19.000Z"
replies: 41
views: 877
page: 1
pages: 3
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/125614-databaskoppling-och-if"
---

# Databaskoppling och IF!

_Sida 1 av 3._

## #1 — Coccozz, 2005-04-02T09:59Z

Hej!
Vore vänligt om någon kunde ta sig an och titta på vad jag har gjort för något fel här. Jag får inget felmeddelande men det händer ingenting.

```
<%
Set Databas = Server.CreateObject( "Adodb.Connection" )
Databas.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath( "db/bio.mdb" )
Databas.ConnectionString = "Data Source='" & MdbFilePath & "'"
Databas.open

X = DatePart("WW", now)
%>   

<FORM METHOD=POST ACTION="bio1.asp?do=check">
<p align="center"><font face="Verdana"><font size="1">Välj vecka:
<select size="1" name="vecka" style="margin:0; border:1px solid #000000; font-family:verdana; font-size:8pt; color:#000000; word-spacing:0; text-align:left">
<option value="<%=x%>" selected>vecka <%=x%></option>
<option value="<%=x+1%>">vecka <%=x+1%></option>
<option value="<%=x+2%>">vecka <%=x+2%></option>
</option>
</select></font><span style="font-size: 8pt"><font size="1"></font></b></font></span></font>
<input type="submit" value="Välj" name="B1" style="font-family: verdana; font-size: 8pt; word-spacing: 0; text-indent: 0; text-align: center; line-height: 100%; border-style: solid; border-width: 1; margin: 0"></p>
</p>
      	 <% 
      	 If Request.QueryString("do") = "check" Then
      	 vecka = Request.Form("vecka")
     	 
         IF vecka = " & = DatePart('WW', now) & " THEN 
         strSQL = "SELECT * FROM bio WHERE vecka = '& = DatePart('WW', now) &'"
         
		 Set objRS = objCon.Execute(strSQL)

		 Do Until objRS.EOF

		 Response.Write(objRS("titel")) & "<br>"
		 objRS.MoveNext

	     Loop
	 	 Set objRS = Nothing
	 	 END IF
		 If vecka = " & = DatePart('WW', now) & " Then response.write "X+1"
		 If vecka = " & = DatePart('WW', now) & " Then response.write "X+2"
         End IF
         %>
</form>
```

Tack på förhand//

r// Uppdaterade koden. Nu händer det en del. Får dock felmeddelandet:

```
Feltyp:
Körningsfel i Microsoft VBScript (0x800A01A8)
Objekt krävs.: ''
/bio1.asp, line 44
```

Vad kan det vara?

r2// Återigen uppdaterat koden. Renderar nu inga felmeddelande men det händer heller inget.

Permalänk: https://www.webforum.nu/p/125614

## #2 — Coccozz, 2005-04-02T11:47Z

Har nu lagt upp den på webben. Ni hittar sidan [här](http://www.frip.dk/coccozz/bio1.asp).
Snälla, hjälp mig nu, jag vet att ni kan, nån av er.

Permalänk: https://www.webforum.nu/p/1583339

## #3 — solbulle, 2005-04-02T12:05Z

Först kallar du ditt objekt för Databas, senare kallar du det för objCon..

Permalänk: https://www.webforum.nu/p/1583347

## #4 — solbulle, 2005-04-02T12:09Z

Denna rad:

```
IF vecka = " & = DatePart('WW', now) & " THEN
```

Borde vara:

```
IF vecka = " & = DatePart("WW", now) & " THEN
```

Även denna är fel:

```
strSQL = "SELECT * FROM bio WHERE vecka = '& = DatePart('WW', now) &'"
```

Vad är det för format på vecka i din db?

/red. Hupp, pinsamt att jag missade det övriga som var fel i den översta raden, jaja man kan inte tänka på allt.

Permalänk: https://www.webforum.nu/p/1583348

## #5 — Coccozz, 2005-04-02T12:38Z

Solbulle, såhär?

```
.........
Set objRS = Databas.Execute(strSQL)
.........
```

Efter att ha ändrat IF-satsen med DatePart så får jag felmeddelandet:

```
Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A03F9)
'Then' förväntas.
/bio1.asp, line 25, column 27
IF vecka = " & = DatePart("WW", now) & " THEN
--------------------------^
```

Vecka är i sifferform i tabellen

Permalänk: https://www.webforum.nu/p/1583359

## #6 — LarsG, 2005-04-02T12:43Z

```
IF cint(vecka) = DatePart("WW", date()) THEN
```

Permalänk: https://www.webforum.nu/p/1583362

## #7 — Coccozz, 2005-04-02T13:19Z

LarsG, nu fungerar sidan och när jag trycker välj så gör den också ett hopp och så får jag felmeddelandet:

```
Feltyp:
Microsoft JET Database Engine (0x80040E14)
Syntaxfel (operator saknas) i frågeuttrycket 'vecka = '& = DatePart('WW', now) &''.
/bio1.asp, line 29
```

Lägger upp sidan igen på frip, så kan ni via länken längre upp, eller [här](http://www.frip.dk/coccozz/bio1.asp) se det själva ;).
Vad jag kan förstå är det fel på den här raden:

```
         strSQL = "SELECT * FROM bio WHERE vecka = '& = DatePart('WW', now) &'"
```

Anar också att det har något att göra med, precis som solbulle sa, vilket slag kolumnen VECKA är av i tabellen BIO i BIO.mdb.
Kan någon förklara så är jag tacksam, är ganska n00b på att skriva egna sådana här grejjer ;)

Permalänk: https://www.webforum.nu/p/1583376

## #8 — LarsG, 2005-04-02T13:26Z

```
strSQL = "SELECT * FROM bio WHERE vecka = " & vecka
```

Permalänk: https://www.webforum.nu/p/1583378

## #9 — Poffe, 2005-04-02T13:27Z

```
strSQL = "SELECT * FROM bio WHERE vecka = " & DatePart('WW', now)
```

EDIT // LarsG's förslag skulle jag också köra på om vecka redan är definerad.

Permalänk: https://www.webforum.nu/p/1583379

## #10 — Coccozz, 2005-04-02T13:35Z

Gracias Por Favor :D
Då skall jag ordna lite.
Någon som vet hur man får en auto-submit? Alltså så att jag inte behöver trycka välj för att det skall "hända något".
För exempel se återigen länken längre upp eller [här](http://www.frip.dk/coccozz/bio1.asp).

Permalänk: https://www.webforum.nu/p/1583381

## #11 — @nders, 2005-04-02T14:57Z

> **Coccozz skrev:**
>
> Någon som vet hur man får en auto-submit? Alltså så att jag inte behöver trycka välj för att det skall "hända något".

```
<select onchange="this.form.submit();">
```

Permalänk: https://www.webforum.nu/p/1583406

## #12 — Coccozz, 2005-04-02T19:02Z

@nders, tack för autoupdaten.
Nu ser IF-koden ut såhär, och jag har säkert gjort någon liten tabbe, men jag har stirrat mig helt blind :r
Skickar den här så kanske ni kan upptäcka den om ni har tid och lust:

```
      	 <% 
      	 If Request.QueryString("do") = "check" Then
      	 vecka = Request.Form("vecka")
     	 
         IF cint(vecka) = DatePart("WW", date()) THEN 
 
		 strSQL = "SELECT * FROM bio WHERE vecka = " & vecka
         
		 Set objRS = Databas.Execute(strSQL)

		 Do Until objRS.EOF

		 Response.Write(objRS("titel")) & "<br>"
		 Response.Write(objRS("text")) & "<br>"
		 objRS.MoveNext

	     Loop
	 	 Set objRS = Nothing
	 	 END IF
	 	 	 	 
	 	 	ELSE IF Request.QueryString("do") = "check" Then
		   	vecka = Request.Form("vecka")
     	 
         	IF cint(vecka) = DatePart("WW", date()+1) THEN 
 
		 	strSQL = "SELECT * FROM bio WHERE vecka = " & vecka
         
		 	Set objRS = Databas.Execute(strSQL)

		 	Do Until objRS.EOF

		 	Response.Write(objRS("titel")) & "<br>"
		 	Response.Write(objRS("text")) & "<br>"
		 	objRS.MoveNext
         	END IF
         	
         	               	 
         ELSE IF Request.QueryString("do") = "check" Then
      	 vecka = Request.Form("vecka")
     	 
         IF cint(vecka) = DatePart("WW", date()+2) THEN 
 
		 strSQL = "SELECT * FROM bio WHERE vecka = " & vecka
         
		 Set objRS = Databas.Execute(strSQL)

		 Do Until objRS.EOF

		 Response.Write(objRS("titel")) & "<br>"
		 Response.Write(objRS("text")) & "<br>"
		 objRS.MoveNext
		 END IF
		 END IF
         	%>
```

Tackar//

Permalänk: https://www.webforum.nu/p/1583479

## #13 — @nders, 2005-04-02T19:16Z

Hmm, vad är det egentligen koden ska göra? Du har tre kodstycken som är mer eller mindre identiska, dessutom har du en if-sats om är konstig:

"Om variabeln do innehåller "check", gör detta. Annars, om det är "check" den innehåller; gör detta. Om det inte är "check" eller "check", utan "check" variabeln innehåller, gör detta."

Om du indenterar din kod ordentligt så man ser vad som hör till vad är det lättare för dig att se vad du gjort för fel, och då förstår du kanske också vad jag menar ovan.

Permalänk: https://www.webforum.nu/p/1583482

## #14 — Coccozz, 2005-04-02T19:44Z

Ojsan. Som sagt en aning förblindad och kanske ännu mer, trött. Har nu tagit bort en del av det, borde nog kika på det imorrn om ni inte hjälper mig, e lite snurrig nu :S
Såhär får jag iaf. ihop koden

```
<% 
      	 If Request.QueryString("do") = "check" Then
      	 vecka = Request.Form("vecka")
     	 
            IF cint(vecka) = DatePart("WW", date()) THEN 
 
		    strSQL = "SELECT * FROM bio WHERE vecka = " & vecka
         
		    Set objRS = Databas.Execute(strSQL)

		    Do Until objRS.EOF

		    Response.Write(objRS("titel")) & "<br>"
		    Response.Write(objRS("text")) & "<br>"
		    objRS.MoveNext

	        Loop
	 	    Set objRS = Nothing
	 	    END IF
	 	 	 	 
	    IF cint(vecka) = DatePart("WW", date()+1) THEN
      
		strSQL = "SELECT * FROM bio WHERE vecka = " & vecka
         
		Set objRS = Databas.Execute(strSQL)

	 	Do Until objRS.EOF

	 	Response.Write(objRS("titel")) & "<br>"
	 	Response.Write(objRS("text")) & "<br>"
	 	objRS.MoveNext
       	END IF
         	         	               	 
            IF cint(vecka) = DatePart("WW", date()+2) THEN 
 
		    strSQL = "SELECT * FROM bio WHERE vecka = " & vecka
         
		    Set objRS = Databas.Execute(strSQL)

		    Do Until objRS.EOF

		    Response.Write(objRS("titel")) & "<br>"
		    Response.Write(objRS("text")) & "<br>"
		    objRS.MoveNext
		    END IF
		    END IF
         	%>
```

@nders har du kollat länken i tidigare inlägg? Om inte, gör så så tror jag att du förstår vad IFsatserna skall göra. De skall visa info om filmer som går i den valda veckan.

Permalänk: https://www.webforum.nu/p/1583487

## #15 — Poffe, 2005-04-02T20:33Z

Koden är ju lika dan i alla dina if-satser. Det spelar ju ingen roll om vecka är DatePart("WW", date()) eller DatePart("WW", date()+1) eller DatePart("WW", date()+2), den skriver ju ut samma sak, alltså kan du skippa if-satserna.

Permalänk: https://www.webforum.nu/p/1583511

## #16 — Coccozz, 2005-04-02T21:04Z

Hehe, är som sagt trög. tack för att du öppnade ögonen på mig Poffe. 
Ang. @nders kodsnutt till autosub. Den fungerar superbra till de två nedersta/sista alternativen men inte till det översta. Varför inte?
Selectbox kod:

```
<select size="1" name="vecka" style="margin:0; border:1px solid #000000; font-family:verdana; font-size:8pt; color:#000000; word-spacing:0; text-align:left" onchange="this.form.submit();">
<option value="<%=x%>">vecka <%=x%></option>
<option value="<%=x+1%>">vecka <%=x+1%></option>
<option value="<%=x+2%>">vecka <%=x+2%></option>
</option>
</select>
```

Tackar//

Permalänk: https://www.webforum.nu/p/1583523

## #17 — Poffe, 2005-04-02T21:23Z

Det fungerar inte på översta eftersom det redan är valt, sätt en tom rad överst så ska det nog fungera.

Permalänk: https://www.webforum.nu/p/1583528

## #18 — Coccozz, 2005-04-02T21:31Z

Ajaj, skall bli kapten Poffe :e
Då kanske du kan hjälpa mig lite snabbt med adminsidan jag skall ha till också när du ändå är i tagen :p.
Använder den här koden till Insert Into:

```
If Request.QueryString("do") = "add" Then

	titel	= Request.Form("titel")
	text	= Request.Form("text")
	vecka	= Request.Form("vecka")
	dag		= Request.Form("dag")
	bild	= Request.Form("bild")
	starttid= Request.Form("tid")
	pris	= Request.Form("pris")
	
'	SQL = "Insert Into bio(titel) Values('" & titel & "')"

	SQL = "Insert Into bio(titel, [text], vecka, dag, bild, starttid, pris) Values('" & titel & "', '" & text & "',"_
		& vecka & ", " & dag & ", " & bild & ", " & starttid &", " & pris & ")"
		
	Con.Execute(SQL)
	
	Session("mess") = "Händelsen är nu inlagd i databasen"
	Con.Close
	Set Con = nothing
	
	Response.Redirect "admin.asp"
End If
```

Får detta felmeddelandeT:

```
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i INSERT INTO-uttryck.
/bio/admin.asp, line 37
```

Tackar//

R// Jodå, att bara stoppa in en tom ruta fungerar superbt :D
Kan man inte få så att rutan stannar kvar på markerad vecka efteråt? Eller är det krångligt. Nu laddar den om sidan och så blir den åter blank, listrutan. Kolla länken [här](http://www.frip.dk/coccozz/bio1.asp) så förstår ni nog ;).

Permalänk: https://www.webforum.nu/p/1583535

## #19 — Poffe, 2005-04-02T21:36Z

Vilken databas använder du?

Antar att starttid är satt som datum i databasen.

```
SQL = "Insert Into bio(titel, [text], vecka, dag, bild, starttid, pris) Values('" & titel & "', '" & text & "',"_
		& vecka & ", " & dag & ", " & bild & ", '" & starttid &"', " & pris & ")"
```

eller om det är Access

```
SQL = "Insert Into bio(titel, [text], vecka, dag, bild, starttid, pris) Values('" & titel & "', '" & text & "',"_
		& vecka & ", " & dag & ", " & bild & ", #" & starttid &"#, " & pris & ")"
```

Permalänk: https://www.webforum.nu/p/1583537

## #20 — Poffe, 2005-04-02T21:38Z

> **Coccozz skrev:**
>
> Jodå, att bara stoppa in en tom ruta fungerar superbt :D
> Kan man inte få så att rutan stannar kvar på markerad vecka efteråt? Eller är det krångligt. Nu laddar den om sidan och så blir den åter blank, listrutan. Kolla länken [här](http://www.frip.dk/coccozz/bio1.asp) så förstår ni nog ;).

Du får ha en if-sats som kollar om Request.Form("vecka") har ett värde och jämföra mot listan, om det matchar så får du sätta dit "selected".

Permalänk: https://www.webforum.nu/p/1583538

---

Tråden på webben: https://www.webforum.nu/amne/asp/125614-databaskoppling-och-if  
Nästa sida: https://www.webforum.nu/amne/asp/125614-databaskoppling-och-if/page2.md
