---
title: "Lite mer add to mdb.."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/171628-lite-mer-add-to-mdb"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Biasse"
published: "2008-05-19T11:54:46.000Z"
updated: "2008-05-20T11:15:42.000Z"
replies: 14
views: 876
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/171628-lite-mer-add-to-mdb"
---

# Lite mer add to mdb..

## #1 — Biasse, 2008-05-19T11:54Z

Hur får jag detta rätt?

Ska försöka spara info om artikelnummer, produktnamn, pris samt antal.

Men hur skriver man?

```
RecSet("Artnr") = Request.Form("????")
RecSet("Produkt") = Request.Form("????")
RecSet("Antal") = Request.Form("????")
RecSet("Pris") = Request.Form("????")
```

Jag har alldrig plockat ut nått från en session så måste ha lite hjälp.  Har detta att gå på.

```
varde = Request.Cookies(""& Session.SessionID &"")
hamta = Split(varde,"&")
ReDim MyArray(4,Ubound(hamta))
for x = 0 to ubound(hamta)
hamta2 = Split(hamta(x),"=")
IF Len(hamta2(0)) > 0 AND len(hamta2(1)) > 0 then
SQL = "SELECT * FROM produkter WHERE id =" & int(hamta2(0))
Set RecSet = Connect.Execute(SQL)
MyArray(0,x) = hamta2(0)
MyArray(1,x) = hamta2(1)
MyArray(2,x) = RecSet("artnr")
MyArray(3,x) = RecSet("namn")
MyArray(4,x) = RecSet("pris")

RecSet.Close
Set RecSet = nothing
```

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

## #2 — Biasse, 2008-05-19T14:26Z

hm

Kan man inte använda samma värden som jmail gör i detta för att spara det i en databas?    :q 

Den klarar inte att hämta:

```
RecSet("Artnr") = Request.Form("MyArray(2,i)")
RecSet("Produkt") = Request.Form("MyArray(3,i)")
RecSet("Antal") = Request.Form("MyArray(1,i)")
```

Koden:

```
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("webshop.mdb")
Session.Lcid = 1053

varde = Request.Cookies(""& Session.SessionID &"")
hamta = Split(varde,"&")
ReDim MyArray(4,Ubound(hamta))
for x = 0 to ubound(hamta)
hamta2 = Split(hamta(x),"=")
IF Len(hamta2(0)) > 0 AND len(hamta2(1)) > 0 then
SQL = "SELECT * FROM produkter WHERE id =" & int(hamta2(0))
Set RecSet = Connect.Execute(SQL)
MyArray(0,x) = hamta2(0)
MyArray(1,x) = hamta2(1)
MyArray(2,x) = RecSet("artnr")
MyArray(3,x) = RecSet("namn")
MyArray(4,x) = RecSet("pris")

RecSet.Close
Set RecSet = nothing
END IF

next
%>

<!-- #include file = "adovbs.inc" -->

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

Addera = "Select * From bestall" 
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

  RecSet.AddNew
  
  RecSet("Artnr") = Request.Form("MyArray(2,i)")
  RecSet("Produkt") = Request.Form("MyArray(3,i)")
  RecSet("Antal") = Request.Form("MyArray(1,i)")
      
  RecSet.Update
	
  RecSet.Close
  Connect.Close
  Set RecSet = nothing
  Set Connect = nothing
```

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

## #3 — voigtann1, 2008-05-19T14:33Z

Forfarande:
Heter dina html forms "MyArray(2,i)"?

```
RecSet("Artnr") = MyArray(2,i)
RecSet("Produkt") = MyArray(3,i)
RecSet("Antal") = MyArray(1,i)
```

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

## #4 — Biasse, 2008-05-19T14:47Z

Är det detta du undrar om?  

Det är en enkel webshop jag försöker ändra i så att jag får beställning i mdb istället för i ett mail.

```
Set jmail = Server.CreateObject("JMail.Message")
 
jmail.AddRecipient ""& eposten &"", ""& eposten &""
jmail.From = "" & info(7) & ""
jmail.Subject = "Beställning"
jmail.appendHTML "<font face=verdana size=1>"
For i = 0 To Ubound(myArray,2)
IF Len(MyArray(0,i)) > 0 then
jmail.appendHTML "<b>Art.nr: </b>" & MyArray(2,i) & "<br>"
jmail.AppendHTML "<b>Produkt: </b>" & MyArray(3,i) & "<br>"
jmail.AppendHTML "<b>Antal: </b>" & MyArray(1,i) & "<br>"
jmail.AppendHTML "-------------------------------------------<br>"
IF i = Ubound(myArray,2) then
jmail.AppendHTML "&nbsp;<br>"
END IF
```

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

## #5 — voigtann1, 2008-05-19T15:45Z

Ja... du kan använda samma array av data som du använder dig av i dina jmail (om dom är i samma dokument). Sök lite om vad jag menar med dina Request.form():

```
Request.Form("namn på formuläret som du postar ifrån")
```

Så min fråga är:
Använder du verkligen ett formulär med namnet "MyArray(2,i)"?

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

## #6 — Fredde Mannen, 2008-05-19T15:58Z

verkar som att hans kaka innehåller värdet från formuläret, kan hända att de postats från en sida till en annan. 

```
varde = Request.Cookies(""& Session.SessionID &"")
hamta = Split(varde,"&")
ReDim MyArray(4,Ubound(hamta))

For i = 0 To Ubound(myArray,2)
' ... 
Next
```

Då innehåller MyArray värdena från kakans hans. 

Det är väl i stort sett bara att byta ut jmail delen till en insättning i en databas... 

Antingen via RecSet eller via Insert i sql. :)

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

## #7 — Biasse, 2008-05-19T16:17Z

Jag har provat detta utan att få in nått av de 3 första..  Resten kommer ju från formuläret som du säger men Artnr, Produkt samt Antal ligger väl i själva kakan.

```
<%
Response.Buffer = true

namn = Request.Form("namn")
adress = Request.Form("adress")
postnr1 = Request.Form("postnr1")
postnr2 = Request.Form("postnr2")
padress = Request.Form("postadress")
tfn1 = Request.Form("tfn1")
tfn2 = Request.Form("tfn2")
epost = Request.Form("epost")
ovrigt = Request.Form("ovrigt")
info = Array(namn,adress,postnr1,postnr2,padress,tfn1,tfn2,epost,ovrigt)
info2 = ""
For i = 0 to 8
info2 = info2 & info(i)
IF Not i = 8 then 
info2 = info2 & "|"
END IF
Next
For i = 0 to 7
IF NOT len(info(i)) <> 0 then
Session("webshopfel") = "Du glömde att fylla i något fält"
session("falt") = info2
Response.Redirect Request.ServerVariables("HTTP_REFERER")
END IF
Next

IF len(info(2)) > 5 then
Session("webshopfel") = "Felaktigt postnummer"
Session("falt") = info2
Response.Redirect Request.ServerVariables("HTTP_REFERER")
END IF

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("webshop.mdb")
Session.Lcid = 1053

varde = Request.Cookies(""& Session.SessionID &"")
hamta = Split(varde,"&")
ReDim MyArray(4,Ubound(hamta))
for x = 0 to ubound(hamta)
hamta2 = Split(hamta(x),"=")
IF Len(hamta2(0)) > 0 AND len(hamta2(1)) > 0 then
SQL = "SELECT * FROM produkter WHERE id =" & int(hamta2(0))
Set RecSet = Connect.Execute(SQL)
MyArray(0,x) = hamta2(0)
MyArray(1,x) = hamta2(1)
MyArray(2,x) = RecSet("artnr")
MyArray(3,x) = RecSet("namn")
MyArray(4,x) = RecSet("pris")

RecSet.Close
Set RecSet = nothing
END IF

next
%>

<!-- #include file = "adovbs.inc" -->

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

Addera = "Select * From bestall" 
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

  RecSet.AddNew
  
  RecSet("Artnr") = Request.Form("MyArray(2,i)")
  RecSet("Produkt") = Request.Form("MyArray(3,i)")
  RecSet("Antal") = Request.Form("MyArray(1,i)")
  RecSet("Namn") = Request.Form("namn")
  RecSet("Adress") = Request.Form("adress")
  RecSet("Postnr1") = Request.Form("postnr1")
  RecSet("Postnr2") = Request.Form("postnr2")
  RecSet("Ort") = Request.Form("postadress")
  RecSet("Tele1") = Request.Form("tfn1")
  RecSet("Tele2") = Request.Form("tfn2")
  RecSet("Mail") = Request.Form("epost")
  RecSet("Ovrigt") = Request.Form("ovrigt")
  RecSet("Datum") = Now()
    
  RecSet.Update
	
  RecSet.Close
  Connect.Close
  Set RecSet = nothing
  Set Connect = nothing
    
sida = Request.ServerVariables("HTTP_REFERER") & "&skickad=ja"
Response.Redirect sida
%>
```

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

## #8 — voigtann1, 2008-05-19T16:59Z

Fortfarande: En array är inte en Formulär.
Du har ingen:

\<input type="text" name="MyArray(3,i)"\> i dina html dokument hoppas jag?
Det du är ute efter är din array MyArray och din variabel i vet jagi nte vad du är ute efter.. ersätt den med en loop?

Jag har försökt rensar upp din kod + fixar till på ett ungefär vad jag tror du är ute efter:

```
<%
Response.Buffer = true

'Forms data
namn = Request.Form("namn")
adress = Request.Form("adress")
postnr1 = Request.Form("postnr1")
postnr2 = Request.Form("postnr2")
padress = Request.Form("postadress")
tfn1 = Request.Form("tfn1")
tfn2 = Request.Form("tfn2")
epost = Request.Form("epost")
ovrigt = Request.Form("ovrigt")

info = Array(namn,adress,postnr1,postnr2,padress,tfn1,tfn2,epost,ovrigt)
info2 = join(info,"|")

For i = 0 to 7
	If i = 2 And len(info(2)) > 5 Then
		Session("webshopfel") = "Felaktigt postnummer"
		Session("falt") = info2
		Response.Redirect Request.ServerVariables("HTTP_REFERER")
	ElseIf Not len(info(i)) <> 0 then
		Session("webshopfel") = "Du glömde att fylla i något fält"
		session("falt") = info2
		Response.Redirect Request.ServerVariables("HTTP_REFERER")
	End If
Next

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("webshop.mdb")
Session.Lcid = 1053

varde = Request.Cookies(Session.SessionID)
hamta = Split(varde,"&")

ReDim MyArray(4,Ubound(hamta))

for x = 0 to ubound(hamta)
	hamta2 = Split(hamta(x),"=")
	IF Len(hamta2(0)) > 0 AND len(hamta2(1)) > 0 then
		SQL = "SELECT * FROM produkter WHERE id =" & int(hamta2(0))
		Set RecSet = Connect.Execute(SQL)
		MyArray(0,x) = hamta2(0)
		MyArray(1,x) = hamta2(1)
		MyArray(2,x) = RecSet("artnr")
		MyArray(3,x) = RecSet("namn")
		MyArray(4,x) = RecSet("pris")
		RecSet.Close
		Set RecSet = nothing
	END IF
Next
%>

<!-- #include file = "adovbs.inc" -->

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

Addera = "Select * From bestall" 
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

For i = 0 To UBound(MyArray,2)
  RecSet.AddNew
  
  RecSet("Artnr") = MyArray(2,i)
  RecSet("Produkt") = MyArray(3,i)
  RecSet("Antal") = MyArray(1,i)
  RecSet("Namn") = Request.Form("namn")
  RecSet("Adress") = Request.Form("adress")
  RecSet("Postnr1") = Request.Form("postnr1")
  RecSet("Postnr2") = Request.Form("postnr2")
  RecSet("Ort") = Request.Form("postadress")
  RecSet("Tele1") = Request.Form("tfn1")
  RecSet("Tele2") = Request.Form("tfn2")
  RecSet("Mail") = Request.Form("epost")
  RecSet("Ovrigt") = Request.Form("ovrigt")
  RecSet("Datum") = Now()
    
  RecSet.Update
Next
  RecSet.Close
  Connect.Close
  Set RecSet = nothing
  Set Connect = nothing
    
sida = Request.ServerVariables("HTTP_REFERER") & "&skickad=ja"
Response.Redirect sida
%>
```

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

## #9 — Biasse, 2008-05-19T17:21Z

Feltyp:
ADODB.Recordset (0x800A0CC1)
Objektet kunde inte hittas i mängden med det begärda namnet eller numret.

Det gäller:  RecSet("Artnr") = MyArray(2,i)

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

## #10 — Biasse, 2008-05-20T08:48Z

Fick det att funka nu med lite pill...   Det är som du sa voigtann1 :)

Om man nu kör detta fungerar det helt rätt med 1 produkt.

Om man köper 3 olika saker så skriver den bara in den 1:a i databasen.  Man kan loopa ur en mdb men går det på nått sätt att skriva in alla 3 produkterna i mdb?

```
<%
Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From bestall" 
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

  For i = 0 To Ubound(myArray,2)

  RecSet.AddNew
    
  RecSet("Artnr") = MyArray(2,i)
  RecSet("Produkt") = MyArray(3,i)
  RecSet("Antal") = MyArray(1,i)
  RecSet("Namn") = Request.Form("namn")
  RecSet("Adress") = Request.Form("adress")
  RecSet("Postnr1") = Request.Form("postnr1")
  RecSet("Postnr2") = Request.Form("postnr2")
  RecSet("Ort") = Request.Form("postadress")
  RecSet("Tele1") = Request.Form("tfn1")
  RecSet("Tele2") = Request.Form("tfn2")
  RecSet("Mail") = Request.Form("epost")
  RecSet("Ovrigt") = Request.Form("ovrigt")
  RecSet("Datum") = Now()
   
  RecSet.Update
  
  RecSet.Close
  Connect.Close
  Set RecSet = nothing
  Set Connect = nothing
    
next
%>
```

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

## #11 — voigtann1, 2008-05-20T09:54Z

Det du gör är fel. Du har flyttat min Next så nästa gång du vill loopa ut det så har du kastat bort dina objekt.

```
Addera = "Select * From bestall" 
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

For i = 0 To Ubound(myArray,2)
	RecSet.AddNew

	RecSet("Artnr") = MyArray(2,i)
	RecSet("Produkt") = MyArray(3,i)
	RecSet("Antal") = MyArray(1,i)
	RecSet("Namn") = Request.Form("namn")
	RecSet("Adress") = Request.Form("adress")
	RecSet("Postnr1") = Request.Form("postnr1")
	RecSet("Postnr2") = Request.Form("postnr2")
	RecSet("Ort") = Request.Form("postadress")
	RecSet("Tele1") = Request.Form("tfn1")
	RecSet("Tele2") = Request.Form("tfn2")
	RecSet("Mail") = Request.Form("epost")
	RecSet("Ovrigt") = Request.Form("ovrigt")
	RecSet("Datum") = Now()

	RecSet.Update
Next

RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
```

Är rätt i mitt tycke... sen vet jag inte vad du har i din MyArray. Det kan innehålla tom data som du inte tillåter i din databas.

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

## #12 — Biasse, 2008-05-20T10:54Z

Jag får in allt från produkt 01 i databasen rätt.  Men beställer man 2 olika produkter kommer bara den första in i mdb. Jag vet inte om jag är ute efter nått omöjligt nu men undrar om man kan få in dom så här: 

Magnet_01,Magnet_02 

I mailet kommer det så här:

Art.nr: 1
Produkt: Magnet_01
Antal: 1
\-------------------------------------------
Art.nr: 2
Produkt: Magnet_02
Antal: 1
\-------------------------------------------

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

## #13 — voigtann1, 2008-05-20T11:01Z

Du skriver om två helt olika saker enligt min mening. Kolla vad du sparar ner i din databas, om den sparar ner fler produkter
Sen efter det så skapar du en funktion för att hämta ut alla produkter i din varukorg och skicka mailet. Det jag har kodat ovan har inget med mail mallen att göra alls.

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

## #14 — Biasse, 2008-05-20T11:10Z

Sorry.  Det du kodade ovan fungerar perfekt nu.  Detta blev en ny fråga om det går att spara flera produkter eftersom den förra lösta frågan bara sparade den först valda produkten och struntade i de andra.   Jag visade oxo hur det ser ut när man får bekräftelse mailet eftersom alla produkterna skrivs ut i det.

Jag kan bara erkänna att jag är helt novis på detta och försöker bara få ett färdigt skript att fungera annorlunda.

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

## #15 — voigtann1, 2008-05-20T11:15Z

Postar mer kod om dina e-post utsick
<http://www.webforum.nu/showthread.php?p=1413805#post1413805>

ser jag en början av en for-sats men ser inte var du loopar ut.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/171628-lite-mer-add-to-mdb
