Hej! Prova att ta ut den post du skall ha ffrån produkter först, sedan bygger du en INSERT INTO jag provade att göra som Ulf E sa, men jag fick det ialla fall inte att fungera. Testa: När jag körde koden som Andreas sa så fick jag det här felet: Kan vara att jag hade nr två gånger i selectsattsen. Testa med: nu var det felet av klarat, men nu fick jag ett nytt istället: Om nr är ett tal ska du testa: Det är ju bara för härligt..fel med INSERT INTO.... SELECT??
Varför fungerar inte den här databas kopplingen?
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databas.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "INSERT INTO temp SELECT ruber, prova, nr FROM produkter WHERE nr = '" & nr & "' "
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
RecSet.AddNew
RecSet("sid") = sid
RecSet("nr") = RecSet("nr")
RecSet("antal") = antal
RecSet("ruber") = RecSet("ruber")
RecSet("prova") = RecSet("prova")
RecSet.Update
RecSet.Close
Connect.Close
Om vi kan någon bättre lösning så är jag öppen för förslag.
/DanneSv: fel med INSERT INTO.... SELECT??
---------
rs = "SELECT ruber, prova, nr FROM produkter WHERE nr = '" & nr & "' "
Addera = "INSERT INTO temp (sid, nr, antal, ruber, prova) "
Addera = Addera & "Values("
Addera = Addera & sid & ", "
Addera = Addera & rs("nr") & ", "
Addera = Addera & antal & ", "
Addera = Addera & rs("ruber") & ", "
Addera = Addera & rs("prova") & ") "
Connect.Execute Addera
--------
(Jag vet inte vilka fält du har som strängar, men i detta har jag satt alla värden till numeriska, de som är strängar måste du inrama med ' (enkelfnutt) i INSERT-satsenSv: fel med INSERT INTO.... SELECT??
så här gjorde jag ialla fall..
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databas.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
rs = "SELECT ruber, prova, nr FROM protest WHERE nr ='" & nr & "' "
Addera = "INSERT INTO temp (sid, nr, antal, ruber, prova) "
Addera = Addera & "Values("
Addera = Addera & sid & ", "
Addera = Addera & rs("nr") & ", "
Addera = Addera & antal & ", "
Addera = Addera & rs("ruber") & ", "
Addera = Addera & rs("prova") & ") "
Connect.Execute Addera
så här blir felet:
Feltyp:
Körningsfel i Microsoft VBScript (0x800A000D)
Inkompatibla typer: 'rs'
vad gjorde jag för fel?
/DanielSv: fel med INSERT INTO.... SELECT??
<code>
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databas.mdb")
strSQL = "INSERT INTO temp (sid, nr, antal, ruber, prova)" & vbCrLf & _
"SELECT " & sid & ", nr, " & antal & ", ruber, prova, nr FROM produkter" & vbCrLf & _
"WHERE nr = '" & nr & "' "
Connect.Execute strSQL
Connect.Close
Set Connect = Nothing
</code>Sv: fel med INSERT INTO.... SELECT??
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
Jag hoppas att någon vet vad som är fel.
/DanielSv: fel med INSERT INTO.... SELECT??
<code>
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databas.mdb")
strSQL = "INSERT INTO temp (sid, nr, antal, ruber, prova)" & vbCrLf & _
"SELECT " & sid & ", nr, " & antal & ", ruber, prova" & vbCrLf & _
"FROM produkter" & vbCrLf & _
"WHERE nr = '" & nr & "'"
Connect.Execute strSQL
Connect.Close
Set Connect = Nothing
</code>
Annars är det antagligen jag som stavat fel på något fält. Eller har ett fält för mycket.
Kolla mot tabellerna. DEt är du som vet hur det ska se ut.Sv: fel med INSERT INTO.... SELECT??
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i villkorsuttryck.
/danneSv: fel med INSERT INTO.... SELECT??
<code>
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databas.mdb")
strSQL = "INSERT INTO temp (sid, nr, antal, ruber, prova)" & vbCrLf & _
"SELECT " & sid & ", nr, " & antal & ", ruber, prova" & vbCrLf & _
"FROM produkter" & vbCrLf & _
"WHERE nr = " & nr
Connect.Execute strSQL
Connect.Close
Set Connect = Nothing
</code>Sv: fel med INSERT INTO.... SELECT??
Det fungerar, perfekt!
Jag vet inte hur länge jag har grubblat för den här kopplingen.
Det där sista kanske jag borde ha fattat själv.
jag tack så mycket för all hjälp.
/Daniel