28. december 2004 - 23:03Der er
3 kommentarer og 1 løsning
Indsætte data i access database fra en anden database
Jeg har en .asp side hvor jeg indsætter noget data fra en formular på den foregående side.
<% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/afstemning.mdb") Conn.Open DSN strSQL = "Insert into overskrifter (Forum, Titel) values('" & Request.Form("choice") & "', '" & Request.Form("emne") & "')" Conn.Execute(strSQL) Response.write "Tråden er nu blevet opsat i Afstemningens forum." Conn.Close Set Conn = Nothing %>
Dette virker fint. Men nu vil jeg gerne samtidig have indsat brugerens navn i denne "afstemning.mdb" database under en kolonne som hedder "Forfatter". Men problemet er nu at brugerens login navn findes i en anden database ved navn "databasen.mdb" under kolonnen "Login". Mit spørgsmål er så:
Hvordan hiver jeg brugerens logind navn ud fra "databasen.mdb" og indsætter den i afstemning.mdb sammen med de andre to informationer (Forum og Titel)?
userSQL = "SELECT Login FROM tabel WHERE userid = userid" set rs = userConn.execute(userSQL) if not rs.eof then strSQL = "Insert into overskrifter (Forum, Titel, Forfatter) values('" & Request.Form("choice") & "', '" & Request.Form("emne") & "', '"&rs("Login")&"')" Conn.Execute(strSQL) Response.write "Tråden er nu blevet opsat i Afstemningens forum." Conn.Close Set Conn = Nothing end if userConn.close set userConn = nothing %>
så skal du bare rette i denne linie: userSQL = "SELECT Login FROM tabel WHERE userid = userid"
Hmm, det virker ikke rigtigt. Jeg har inført dette:
<% Set Conn = Server.CreateObject("ADODB.Connection") set userConn = Server.createObject("adodb.connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/afstemning.mdb") DSNuser = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSNuser = DSNuser & "DBQ=" & Server.MapPath("/vti_log/databasen.mdb") Conn.Open DSN userConn.open DSN userSQL = "SELECT Login FROM bruger WHERE ID = ID" Set rs = userConn.Execute(userSQL) if not rs.eof then session.lcid=1030 strSQL = "Insert into overskrifter (Forum, Titel, Forfatter) values('" & Request.Form("choice") & "', '" & Request.Form("emne") & "', '" & rs(Login) & "')" Conn.Execute(strSQL) Response.write "Tråden er nu blevet opsat i Afstemningens forum." Conn.Close Set Conn = Nothing end if userConn.close set userConn = Nothing %>
Min "databasen.mdb" har tabel navnet "bruger" og brugernes ID findes i kolonnen "ID"...Kan sq ikke se hvad jeg gør galt. Har dobbelt tjekket flere gange nu. Fejl meddelelsen hedder:
Microsoft OLE DB Provider for ODBC Drivers error '80040e37'
[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot find the input table or query 'bruger'. Make sure it exists and that its name is spelled correctly.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.