Avatar billede fomse Nybegynder
01. november 2003 - 23:24 Der er 7 kommentarer og
2 løsninger

Hvordan for jeg et ID tilføjet her?

Jeg har denne kode:

<%
On Error Resume Next
If Request("oprettet") <> "ok" Then
strNavn = Request.Form("brugernavn") 
strPass = Request.Form("pass") 
strKm = Request.Form("KM") 
strDato = Request.Form("Dato")
strDato = Year(strDato) & "-" & month(strDato) & "-" & Day(strDato)
strTraeningsform = Request.Form("Traeningsform")

' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("kmregnskab.mdb")
Conn.Open DSN

u = Conn.Execute("SELECT id FROM medlem WHERE Navn = '"& strNavn &"' AND pass = '"& strPass & "'")(0)
If NOT isEmpty(u) Then
SQL = "INSERT INTO KmData VALUES ("& u &", #" & strDato & "#, "& strKm &", '"& strTraeningsform &"')"

Conn.Execute(Sql)
Else
Response.write("Forkert brugernavn eller password")
End If

'Response.write(sql & "<hr>"& u &"<hr>")

If Err.Number <> 0 Then 
Response.write("Der opstod følgende fejl<br>" & Err.Description & "<br>") 
Else 

Response.Redirect "?oprettet=ok&strKm="& strKm & "&strNavn="& strNavn &"&strTraeningsform=" & strTraeningsform

End If 

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing

Else
Response.write(Request("strKm") & " km er blevet tilføjet til " & Request("strNavn") & "´s konto i regnskabet vedr. "& Request("strTraeningsform") &".<br><br>") 
End If
%>

Jeg vil også gerne ha' at de rudover de fire parametre som gemmes i databasen, derudover også tilføjes et unikt ID (autonumber) til et felt der hedder DID! Hvordan gør jeg det?

Fomse:-)
Avatar billede erikjacobsen Ekspert
01. november 2003 - 23:35 #1
Forstået det korrekt? Du vil gerne have trukket det id ud som du lige
har fået lavet automatisk i din insert?
Den er gammel, men bør virke hos dig: http://www.1script.com/asp0001.html
Avatar billede eagleeye Praktikant
01. november 2003 - 23:35 #2
Sådan her, lige efter du indsætter data laves en nye SQL som hedter sidte ID:


'Din SQL idag som indsætter
SQL = "INSERT INTO tabelNavn (kol1, kol2) VALUES('abc', 'xyz')"
Conn.Execute (SQL)

'Find sidste tilføjet ID
SQL = "SELECT @@IDENTITY FROM tabelNavn"
Set RS = Conn.Execute(SQL)
nytID = RS(0)
RS.Close
response.write nytID
Avatar billede fomse Nybegynder
01. november 2003 - 23:42 #3
eagleye>> Hvad skriver jeg så i INSERT sætningen?
Har skrevet:
SQL = "INSERT INTO KmData VALUES (" & nytID &", "& u &", #" & strDato & "#, "& strKm &", '"& strTraeningsform &"')"

Men den siger syntax error i INSERT INTO....
Avatar billede erikjacobsen Ekspert
01. november 2003 - 23:43 #4
eagleeye: virker @@identity ikke kun med en JET-driver?
Avatar billede eagleeye Praktikant
01. november 2003 - 23:49 #5
det skal laves sådan har efter du har indsat disse to linjer hender du idet:
SQL = "INSERT INTO KmData VALUES ("& u &", #" & strDato & "#, "& strKm &", '"& strTraeningsform &"')"

Conn.Execute(Sql)

'Hendt ID
SQL = "SELECT @@IDENTITY FROM KmData"
Set RS = Conn.Execute(SQL)
nytID = RS(0)


men erikjacobsen er vist inde på noget at den @@identity ikke er med i Access driveren, hvis ikke giver den 0 i nytID så kan du prøve det link som erikjacobsen har vist eller prøve en anden driver.
Avatar billede fomse Nybegynder
01. november 2003 - 23:56 #6
Hmm Kan ikke lige finde ud af det! Kikker på det senere eller imorgen!
Vender tilbage....

fomse:-)
Avatar billede fomse Nybegynder
03. november 2003 - 11:12 #7
Hej igen!!

Det jeg mener er at "& u &" er et id som kommer fra en tabel som hedder medlemmer, og indsættet i tabelen KmData hvis medlemmet indtaster noget! Problemet er at jeg har en simpelt databaseadmin hvor det er muligt at bla. slette poster i tabeler! Men hvis jeg sletter en post så sletter den alle poster som har id = U.... Derfor vil jeg gerne ved siden f have et unikt id for hver post!!!
Det er det jeg ikke kan finde ud af.....

Håber i blev klogere:-)

Fomse
Avatar billede fomse Nybegynder
03. november 2003 - 13:32 #8
Fik løst det! Var simpelthen så simpelt når det kom til stykket:-)

Gjorde således:
SQL = "INSERT INTO KmData (ID, Dato, KM, Træningsform) VALUES ("& u &", #" & strDato & "#, "& strKm &", '"& strTraeningsform &"')"

Og i tabelen KmData lavede jeg en kollonne som hedder UnikID og satte den til autonummerering! Og så sletter jeg fra min databaseadm. via dette unikke nummer... Ganske simpelt.

Fomse:-)
Avatar billede fomse Nybegynder
03. november 2003 - 13:33 #9
eagleeye>> Du får sku lige 10 point for besværet:-)
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