Håller på att knåpa ihop ett Intranet med olika behörighets nivåer. Har därför skapat access-databas med flertalet tabeller. Intressanta i detta problem är Tabellerna BEHORIGHET och MEDLEM där det råder en till många relation. Inga problem så här långt tror jag. Men jag får föjlande felmeddelande.
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
\[Microsoft\]\[ODBC Microsoft Access Driver\] You cannot add or change a record because a related record is required in table 'BEHORIGHET'.
/Project/Chili/Medlemsuppgift.asp, line 32
Koden ser ut som följer i relaterat område:
set conn=server.createobject("adodb.connection")
conn.open "driver={Microsoft Access Driver (*.mdb)};dbq="&server.mappath("Chili.mdb")
sql="select Anvandarnamn from MEDLEM where Anvandarnamn='"&AnvNamn&"';"
Set recordset = conn.execute(sql)
if recordset.EOF then
sql1="insert into MEDLEM(FNamn,ENamn,Alder,Anvandarnamn,Losen,Epost,Kon,RegDatum) values('"&FNamn&"','"&ENamn&"','"&Alder&"','"&AnvNamn&"','"&RegLosen&"','"&Epost&"','"&Kon&"','"&RegDatum&"');"
sql2="insert into BEHORIGHET(Behorighet) values('"&Behorighet&"');"
conn.execute(sql1)
---
Hoppas att någon orkar kolla på problemet för jag har totalt fastnat.
conn.execute(sql2)
conn.close
Att hjälpa dig med ett sånt här problem är ganska svårt, eftersom det med största sannorlikhet har att göra med hur du skapat dina relationer i databasen.
Vad felmeddelandet säger är att du inte uppfyller den referensintegritet som din relation kräver.
Jag misstänker att rad 32 är den raden som skapar en ny användare och om du skapar en ny användare så vill du säkert länka den nya posten till någon post i "behörighetstabellen".
Jag tror alltså att du har en relation med referensintegritet mellan "medlemstabellen" och "behörighetstabellen". Det betyder i sådanafall att du måste ange ett "behörighetsvärde"(som är länkat till behörighetstabellen) när du skapar en ny användare. Om du inte gör det så säger felmeddelandet att det saknas en relaterad post i tabellen "behörighet". Alltså precis ett sådant felmeddelande som du får nu.
Prova alltså att ange en behörighetsnivå i medlemstabellen när du skapar en ny användare.
(förutsatt att dina tabeller ser ut som jag tror)
/Andreas
------------------
"Life's a bitch who sucks... then you marry one who doesn't"
Tack, du antog rätt. Jag har en främmande nyckel i MEDLEM-tabellen som är densamma som nyckel i BEHORIGHET-tabellen.
Det är tänkt att medlemmar automatiskt ska tilldelas behörighet 1, men jag har antagligen inte skrivit SQL frågan på rätt sätt. Har nu två sql satser, en för Medlem och en för Behorighet.
Problemet var så enkelt som att Tabellen Behorighet var tom, det fanns således ingen behörighet att referrera till. Ibland är tunga problem lätta att lösa med lite eftertanke. Synd att eftertanken ofta är sen bara. :)
Hade kunnat skriva in som i koden ovan också, men jag exekverade sql satserna i fel ordning, plus att jag då fått massor av poster som sa samma sak, behörighet 1. =Inte optimalt.
------------------
/Wolf
250 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2