---
title: "INSERT i två tabeller?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/10775-insert-i-två-tabeller"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Mattias"
published: "2001-07-25T12:17:00.000Z"
updated: "2001-07-25T14:37:00.000Z"
replies: 5
views: 312
page: 1
pages: 1
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/10775-insert-i-två-tabeller"
---

# INSERT i två tabeller?

## #1 — Mattias, 2001-07-25T12:17Z

Skall lägga in värden från ett antal formulärfält i en databas med två olika tabeller ihopkopplade med fältet "StugID". Får dock inte koden att fungera och undrar därför om ni snabbt kan kolla över den? Jag är ganska ny på ASP, så frågan är säkert trivial för merparten.

```
<%
StugID = Request.Form("StugID")
omrade= Request.Form("omrade")
kategori =  Request.Form("kategori")
rum = Request.Form("rum")
	  
xbaddar = Request.Form("xbaddar")
pris_ls = Request.Form("pris_ls")
pris_ms = Request.Form("pris_ms")

Set Connection = Server.CreateObject("ADODB.Connection")
cnpath="DBQ=" & server.mappath("\mapp\databas.mdb")
connection.open "DRIVER={Microsoft Access Driver (*.mdb)}; " & cnpath
 
 
SQL = "INSERT INTO TblStuginfo_1 (StugID, Område, Kategori, Rum) VALUES ('stugID', 'omrade', 'kategori', 'rum')"

Connection.Execute(SQL)
	
SQL2 = "INSERT INTO TblStuginfo_2 (StugID, Extra bäddar, Pris Lågsäsong) VALUES ('StugID', 'xbaddar', 'pris_ls')"

Connection.Execute(SQL2)

Connection.Close
%>
```

Jag får följande felmeddelande:

```
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
/test/add.asp, line 53
```

Rad 53 är den första "Connection.Execute(SQL)"-raden.

Tacksam för svar!

// Mattias

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

## #2 — @nders, 2001-07-25T12:22Z

enligt din kod försöker du stoppa in ordet StugID i kolumnen StugID, osv. det är inte helt rätt.

nu vet jag inte vad du har för typer på dina fält, men jag gissar att stugID och rum är av typen tal. Extra bäddar och Pris lågsäsong bör också vara av typen tal? Dessutom måste dessa klamras, då du har mellanslag i fältnamnen (vilket jag inte rekommenderar.)

pröva med följande så får vi se om vi kommer vidare:

```
SQL = "INSERT INTO TblStuginfo_1 (StugID, Område, Kategori, Rum) VALUES (" & stugID & ", '" & omrade & "', '" & kategori & "', " & rum & ")"

Connection.Execute(SQL)

SQL2 = "INSERT INTO TblStuginfo_2 (StugID, [Extra bäddar], [Pris Lågsäsong]) VALUES (" & StugID & ", " & xbaddar & ", " & pris_ls & ")"
```

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

## #3 — LarsG, 2001-07-25T12:26Z

Felet beror nog på att någon av kolumnerna, t.ex stugId, är av typen tal och inte text.

Om du vill ha in värdena från ditt formulär i SQL-satsen så får du skriva

```

SQL = "INSERT INTO TblStuginfo_1 (StugID, Område, Kategori, Rum) VALUES (" & stugID & ",'" & omrade " &"','" & kategori & "','" & rum & "')"
```

Nu tog jag bort apostroferna kring stugId.

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

## #4 — Mattias, 2001-07-25T12:51Z

Tack för svaren! Jag håller på o mata in ytterligare en del fält som måste infogas från formuläret till databasen så jag kan inte svara på om det fungerar ännu. Jag tänkte dock ställa en fråga till dig @nders. Varför använder du hakparenteser på ett par av fälten i tblStuginfo_2 ("Extra bäddar" och "Pris Lågsäsong") när sådana ej används till fälten i tblStuginfo_1? 

```
SQL2 = "INSERT INTO TblStuginfo_2 (StugID, [Extra bäddar], [Pris Lågsäsong]) VALUES (" & StugID & ", " & xbaddar & ", " & pris_ls & ")"
```

// Mattias

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

## #5 — @nders, 2001-07-25T12:54Z

> Extra bäddar och Pris lågsäsong bör också vara av typen tal? **dessutom måste dessa klamras, *då du har mellanslag i fältnamnen***

mvh,

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

## #6 — Mattias, 2001-07-25T14:37Z

Jag missade att du redan förklarat anlendingen till hakparanteserna. Slarvigt av mig! Angående att det figurerar mellanslag (och åäö) i databasen så försvarar jag mig med att det inte är jag som gjort den. :)

Hur som helst så fungerar det fortfarandet inte. Här är min nuvarande kod:

```
<%
Set Connection = Server.CreateObject("ADODB.Connection")
cnpath="DBQ=" & server.mappath("\stugbilder\stugcentralen.mdb")
connection.open "DRIVER={Microsoft Access Driver (*.mdb)}; " & cnpath
 
SQL = "INSERT INTO tblStuginfo_1 (StugID, Område, Kategori, Rum, Bäddar, Hav, Boyta, Golf) VALUES ('" & stugID & "', '" & omrade & "', '" & kategori & "', " & rum & ", " & baddar &", " & hav & ", " & boyta & ", " & golf &")"

Connection.Execute(SQL)
	
SQL2 = "INSERT INTO tblStuginfo_2 (StugID, [Extra bäddar], [Pris Lågsäsong], [Pris Mellansäsong], [Pris Högsäsong], Kyl, Frys, Spis, Wc, Dusch, [Öppen spis], TV, Restaurang, Affär, Cykel, Husdjur, Kaffebryggare, Tvättmaskin, Diskmaskin, Grill, Bastu, [Avstånd Centrum], Övrigt, Engelska)) VALUES ('" & StugID & "', " & xbaddar & ", " & pris_ls & ", " & pris_ms &", " & pris_hs & ", " '& kyl & "', '" & frys & "', '" & spis & "', '" & wc & "', '" & dusch & "', '" & oppenspis & "', '" & tv & "', " & rest & ", " & affar & ", '" & cykel & "', '" & husdjur & "', '" & kaffe & "', '" & tvatt & "', '" & disk & "', '" & grill & "', '" & bastu & "', " & centrum & ", '" & ovrigt & "', '" & engelska &"')"	

Connection.Execute(SQL2)
	
Connection.Close
%>
```

Jag får följande felmeddelande:

```
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] You cannot add or change a record because a related record is required in table 'tblStuginfo_2'.
/test/add.asp, line 51
```

Beträffande fältet "stugID" som binder ihop de båda tabellerna i databasen, så är de faktikst inte "tal" utan av typen "X-123". Därför har jag lagt till apostrofer vid dessa fält. Rad 51 är fortfarande "Connection.Execute(SQL)". Jag undrar förresten oxå om det är rätt att hämta upp ALLA fältnamn från forumlärsidan genom:

```
stugID = Request.Form("stugID")
```

Antar alltså att man inte behöver tänka på apostrofer här, lr?

// Mattias

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/10775-insert-i-två-tabeller
