---
title: "Sätta in i tabell"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/42180-sätta-in-i-tabell"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Rinaldo"
published: "2002-04-21T18:00:53.000Z"
updated: "2002-04-22T10:00:02.000Z"
replies: 17
views: 389
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/42180-sätta-in-i-tabell"
---

# Sätta in i tabell

## #1 — Rinaldo, 2002-04-21T18:00Z

Skulle man på något sätt kunna hämta alla värden från ett formulär och sätta in dem i en tabell där fältet heter samma sak som namnet på det speciella fältet i forumuläret

tex

\<form method="post" action="bla.asp"\>
Namn \<input type="text" "name="namn"\>
Efternamn \<input type="text" "name="efternamn"\>
\</form\>

Sedan ska värdet ur "namn" in i fältet namn och värder ur "efternamn" in i fältet efternamn.

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

## #2 — Jörgen HP, 2002-04-21T18:07Z

```

Function FixaTecken(sText)
sText = replace(sText,"'","''")
FixaTecken = sText
End Function

sql ="INSERT INTO tabellen (namn, efternamn) VALUES( '" & FixaTecken(request.form("namn")) &"', '" & FixaTecken(request.form("efternamn")) &"')"

connect.execute sql,,128
```

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

## #3 — trexter.com, 2002-04-21T18:08Z

Re: Sätta in i tabell

> *Ursprungligen av Rinaldo*  **Skulle man på något sätt kunna hämta alla värden från ett formulär och sätta in dem i en tabell där fältet heter samma sak som namnet på det speciella fältet i forumuläret
> 
> tex
> 
> \<form method="post" action="bla.asp"\>
> Namn \<input type="text" "name="namn"\>
> Efternamn \<input type="text" "name="efternamn"\>
> \</form\>
> 
> Sedan ska värdet ur "namn" in i fältet namn och värder ur "efternamn" in i fältet efternamn.**

Lätt som en plätt! (Jag förutsätter att du redan kan lite ASP. Gör du inte det - Säg till.)

\<%

	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (\*.mdb)};dbq=c:\\sökväg\\main.mdb" 

	Set RecSet = Server.CreateObject("ADODB.Recordset")

   Addera = "SELECT \* FROM tabell"

   RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
if Request.Form("namn")\<\>"" then 
RecSet.AddNew

Recset("namn") = Request.Form("namn")
Recset("efternamn") = Request.Form("efternamn")
end if

	RecSet.Update
	RecSet.Close
	Connect.Close %\>

Undrar du något så är det bara att fråga!
Lycka till!
//trexter.com

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

## #4 — icaaq, 2002-04-21T18:12Z

Jag hade nog kört på Jörgen HP variant.........

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

## #5 — Rinaldo, 2002-04-21T18:26Z

hmm... blev nog lite missförstådd...  Jag vet alltså inte hur många fält det kommer finnas i formuläret. 

```
<form method="post" action="bla.asp"> 
x <input type="text" "name="x">
y <input type="text" "name="y">
</form> 

Function FixaTecken(sText)
sText = replace(sText,"'","''")
FixaTecken = sText
End Function

sql ="INSERT INTO tabellen (x, y) VALUES( '" & FixaTecken(request.form("x")) &"', '" & FixaTecken(request.form("y")) &"')"

connect.execute sql,,128
```

I formuläret radas bara alla inmatningsfält upp genom en for loop ifrån databasen....

ex: <http://www.webforum.nu/showthread.php?s=&threadid=37466>   kopliks funktion. Där vet han inte hur många fält som ska in i databasen eller vad dom heter.... Fast jag förstår mig inte på hur jag ska göra...

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

## #6 — SPiN, 2002-04-21T18:46Z

Testa:

```
<%
Dim strFields, strValues

For Each reqItem In Request.Form
     If strFields <> "" Then
          strFields = strFields & ", "
          strValues = strValues & "', '"
     End If

     strFields = strFields & Replace ( Request.Form ( reqItem ), "'", "&#39;" )
     strValues = strValues & Replace ( Request.Form ( reqItem ), "'", "&#39;" )
Next

strSQL = "INSERT INTO tbl (" & strFields & ") VALUES('" & strValues & "')"
...
```

Förutsätter att du endast har textfält i tabellen tbl.

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

## #7 — Rinaldo, 2002-04-21T18:48Z

har pm fält och ja/nej också.... hur ska jag göra då?

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

## #8 — SPiN, 2002-04-21T18:54Z

PM-fält är ju text, men med Ja/Nej blir det svårare att lösa än med min simpla metod. Du får helt enkelt kolla genom varje fälttyp med ett recordset, och använda andra delimiters än "', '" som jag använde. Bör inte vara några problem. :)

Kan ge dig ett hantag när jag är tillbaka om en halvtimme, hinner inte just nu. :)

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

## #9 — Rinaldo, 2002-04-21T18:57Z

probs... den sätter just nu inte in någoting i databasen men inget felmeddelande visas heller....

Jag har 12 fält fast fyller bara i tre stycken av dom (typ:text)....

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

## #10 — SPiN, 2002-04-21T19:53Z

That's odd. Hur ser SQL-frågan ut om du skriver ut den med Response.Write?

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

## #11 — SPiN, 2002-04-21T21:02Z

Här kommer ett sätt att lägga till data, oavsett fälttyp:

```
<%
Function SQL_Creator ( ByRef objRS )
     Dim strCurrentDelimiter, strCurrentField, strCurrentValue
     Dim strFields, strValues, strSQL
     Dim objField

     For Each objField In objRS.Fields
          strCurrentDelimiter = ""
          strCurrentField = ""
          strCurrentValue = ""

          Select Case objField.Type
               Case 202
                    strCurrentDelimiter = "'"
               Case 203
                    strCurrentDelimiter = "'"
               Case 3
                    strCurrentDelimiter = ""
               Case 135
                    strCurrentDelimiter = "#"
               Case 11
                    strCurrentDelimiter = ""
           End Select

           For Each reqItem In Request.Form
                If reqItem = objField.Name Then
                     strCurrentField = reqItem
                     strCurrentValue = strCurrentDelimiter & Request.Form ( reqItem ) & strCurrentDelimiter
                End If
           Next

           If strCurrentField <> "" Then
                If strFields <> "" Then
                     strCurrentField = ", " & strCurrentField
                     strCurrentValue = ", " & strCurrentValue
                End If

                strFields = strFields & strCurrentField
                strValues = strValues & strCurrentValue
           End If
      Next

      strSQL = "INSERT INTO tbl (" & strFields & ") VALUES(" & strValues & ")"
      SQL_Creator = strSQL
End Function

Dim objC, objRS

set objC = Server.CreateObject ( "ADODB.Connection" )
objC.Open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ( "/yaDB.mdb" )

set objRS = objC.Execute ( "SELECT * FROM tbl" )

objC.Execute ( SQL_Creator ( objRS ) )

objRS.Close
objC.Close
set objRS = Nothing
set objC = Nothing
%>
```

Fungerar förhoppningsvis som den ska, har ju inte testat. :)

Fungerar endast för fält med typerna:
Tal, Text, PM, Datum och Boolean

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

## #12 — Rinaldo, 2002-04-22T04:41Z

hmm...

```
Feltyp:
Request-objekt, ASP 0102 (0x80004005)
Funktionen förväntar sig en sträng som inmatning.
/applications/eget_forum/register_execute.asp, line 30

POST Data:
username=aaaa&password=aaaa&first_name=aaaa&sur_name=aaaa&email=aaaa&homepage=aaaa&location=aaaa&signature=aaaa&show_email=on&show_signature=on&auto_login=on
```

Detta felmeddelande uppkommer när jag använder scriptet...

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

## #13 — SPiN, 2002-04-22T08:52Z

Vilken rad är rad 30?

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

## #14 — Rinaldo, 2002-04-22T09:22Z

denna

strCurrentValue = strCurrentDelimiter & Request.Form ( reqName ) & strCurrentDelimiter

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

## #15 — SPiN, 2002-04-22T09:26Z

Det var ju lite dumt, helt enkelt en felskrivning. Det står reqName istället för reqItem. :)

Glöm inte att ändra på raden ovanför också, det är felskrivning där också.

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

## #16 — Rinaldo, 2002-04-22T09:32Z

nu funkar det fint...

Tack för koden :)

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

## #17 — Rinaldo, 2002-04-22T09:37Z

En sak till... om jag nu vill sätta in några bestämda värden i tabellen samtidigt hur gör jag då?

```
strSQL = "INSERT INTO tblAuthor (" & strFields & ",registration_date) VALUES(" & strValues & ",#now#)"
SQL_Creator = strSQL
```

??

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

## #18 — SPiN, 2002-04-22T10:00Z

Jäpp, det där borde funka tip-top. Vassego, förresten. :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/42180-sätta-in-i-tabell
