Avatar billede killstun Nybegynder
28. december 2004 - 23:03 Der 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)?
Avatar billede ellebaek Nybegynder
28. december 2004 - 23:13 #1
du henter dem blot ud som du plejer med en anden connection..
fx.

<%
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 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"
Avatar billede killstun Nybegynder
29. december 2004 - 02:46 #2
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.

/ny/afstemningsql.asp, line 50

NB. Line 50 er denne linie: if not rs.eof then
Avatar billede ellebaek Nybegynder
30. december 2004 - 21:17 #3
denne linie:
userConn.open DSN
skal være:

userConn.open DSNuser
Avatar billede killstun Nybegynder
05. maj 2006 - 14:26 #4
lukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester