Undrar hur jag ska få till min sql sats som ska lägga til en post i två tabeller som är relaterade till varandra. Enkelt upplag så är det
uppgift_id
kund_nr
och
fruit_id
uppgift_id
year
Uppgift_id i första är en räknare och när jag lägger till den så ska jag även lägga till year i andra tabellesn samt få med räknaren från första som uppgift_id i den andra tabellen. Där finns det en räknare som jag inte ännu har relaterat vidare.
Har läst runt på forumet men alla verkar dra sig för att svara just på denna enkla INSERT.
Måste jag separera min insert och blanda in en select emellan och ta ut det högsta värdet från min första tabell.?
Jag kör access
LarsGMedlem sedan dec. 200012 464 inlägg Just så, men du skall inte hämta högsta värdet utan använd
set rs = connect.execute("select @@identity")
nv = rs(0)
för att få fram det värde sopm skapades vid insert.
OK. Men det tycker jag verkar konstigt, varför ska man då man ngn form av relation mellan databaserna?
Jag vill lopa igenom mitt html formulär hämta de data som det finns ngt data i och bygga min INSERT av dessa. Det fungerar utmärkt på de data som ska in i tabellen men så fort jag vill blanda in en relations databas så fallerar hela min tanke.
For each item in request.form
If request.form(item) <> "" then
values = values & "'" & request.form(item) & "'" & ","
column = column & "[" & item & "]" & ","
end if
next
Sen så sätter jag in dem i min sqlsats.
tror inte riktigt jag förstod din lilla kodsnutt.
CatZMedlem sedan jan. 20022 440 inlägg Jag skulle kunna hjälpa dig med just detta eftersom jag precis lärt mig det hela, men jag förstår inte alls vad du menar :q
oki.. enkelt. Du har mina enkla upplägg till databas i första inlägget.
Nu vill jag lägga in en ny post och samtidigt uppdatera min relaterade i en INSERT sql sats.
[kod]
INSERT Into Uppgifter ([kundnr]) values ('888')
[kod]
Det fungerar ju fint.
Men jag vill ju även infoga en ny post i min andra tabell men då är min fråga måste jag göra det i två olika INSERT där jag då emellan har hämtat ut det senaste värdet av räknaren från min INSERT. Och sedan föra in det i min nya tabell. Vore ju snyggt om man fick till det i samma INSERT
Ungefär som att Insert INTO (tabel1, tabel2) SET VALUES ex1, ex2
eller ngt liknande.
Finns det ngn bra sida på nätet med SQL hittar bara grunder
CatZMedlem sedan jan. 20022 440 inlägg SQL = "INSERT INTO tabell1 (fält1, fält2) " & _
" VALUES('" & Request.Form("formvärde1") & "', " & _
" '" & Request.Form("formvärde2") & "'
connection.execute SQL,,128
Set rs2 = connection.execute("select @@identity")
SQL2 = "INSERT INTO tabell2 (fält1, fält2, tabell1's_räknare_ID_och_själva_relationen) " & _
" VALUES('" & Request.Form("formvärde3") & "', " & _
" '" & Request.Form("formvärde4") & "', " & _
" " & rs2(0) & ")"
connection.execute SQL2
solbulleMedlem sedan mars 20015 287 inlägg Eftersom du inte vet vilket värde uppgift_id kommer att få i den första tabellen måste du köra den först för att se vilket värde den får - se LarsGs svar.
Att du eventuellt har en relation i access spelar ingen roll i detta läge.
-Rätta mig om jag har fel.
Du kan även kika på denna fråga: http://www.webforum.nu/showthread.php?s=&threadid=48437 där ämnet diskuterades så sent som igår.
Tack.. den fungerade.. men jag får väl göra om min fina loop då som går igenom alla mina formulärrutor och bygger sqlsatsen så man slipper alla request.form har nämligen ca 90 st
CatZMedlem sedan jan. 20022 440 inlägg
solbulle skrev:
Att du eventuellt har en relation i access spelar ingen roll i detta läge.
-Rätta mig om jag har fel.
Precis rätt, relationen behöver du bara när du ska visa informationen som hänger ihop :)
solbulleMedlem sedan mars 20015 287 inlägg
KalsongCesar skrev:
Tack.. den fungerade.. men jag får väl göra om min fina loop då som går igenom alla mina formulärrutor och bygger sqlsatsen så man slipper alla request.form har nämligen ca 90 st
En smula sent kanske ;)
Men det behöver man ju inte. Det går ju att göra så på sql-sats nr2, bara att man exkluderar det fält som ska in i sql1.
(Detta skrev jag mest för min egen del...)
Men hur gör man om man nu har flera "fruit_id" tex som ska in i "fruit"-kolumnen.
Då måste jag ju göra en ny insert på ännu en rad i db. Hur gör jag det? Hur kan jag smidigt kolla om jag behöver lägga in en ny rad?