KundID i tabell 1 är en räknare
KundID i tabell 2 är enbart tal
KundID i de båda tabellerna har en relation till varandra.
Låt mig nu säga att datan i tabell 1 ser ut så här:
1 Patrik 031-111111
2 Birger 031-222222
3 Fredrik 031-333333
5 Robert 031-444444
Tabell 2 skall då se ut så här:
1 Valfri text
2 Annan text
3 Valfri text
5 Annan valfri text
Alltså vill jag när man gör en insert i tabell 1 så skall man även göra en insert i tabell 2 och den skall ju ha samma nummer som det tal som räknaren i tabell 1 har.
Går detta att lösa på något sätt?
I Access kan man ju tex lista båda tabellerna med tabell 1 som ID, och när man då gör ett tillägg i ett fält som tillhör tabell 2 så läggs det ju in med tabell 1´s ID nummer.
Hej, jag vet inte om jag har fattat det rätt, men du vill alltså först göra en insert i en tabell (där ena kolumnen är räknare) och sedan använda räknarens id i nästa insert.
Enklast att göra detta är nog i en stored procedure.
Du borde kunna använda följande kod:
CREATE PROCEDURE [min_sp]
@namn varchar(20),
@telefon varchar(20),
@valfritt varchar (200)
AS
INSERT INTO tabell1
(namn, telefon)
VALUES
(@namn,@telefon)
INSERT INTO tabell2
(kundID, valfritt)
VALUES
(@@IDENTITY, @valfritt)
@@identity innebär att den hämtar senast skapade Identity (i detta fallet räknaren)
Hej igen,
jag var kanske lite oklar innan.
koden till din stored procedure lägger du in som Ny under stored procedure i sql.
kontrollera även att du har rätt namn på dina tabeller och kolumner. detta kan du göra genom att klicka på check syntax.
I din asp-sida anropar du sedan din stored procedur så här:
Ett eller flera SQL-uttryck som accepterar egna variabler, villkorlig körning eller andra styrningar av programflödet. En lagrad procedur finns på en server.
En stored procedure kan du inte köra direkt i asp-sidan utan den lagras och körs i databasen, detta gör att det går mycket snabbare att köra sql-satserna (och även kraftfullare då du kan använda if-satser och variabler).
I access går det inte (vad jag vet) att köra stored procedures, men access kan ha andra motsvarigheter.
Har du inte tillgång till sql-server blir nog alternativet att köra olika sql-kommandon för att lägga in infon.
Det ska iof gå att köra flera sql-kommandon i varann.
Något i stil med:
sql="INSERT INTO tabell1 (namn, telefon) VALUES '"&namn&"','"&telefon&"');INSERT INTO tabell2 (KundID) SELECT kundID FROM tabell1 ORDER BY kundID DESC;INSERT INTO tabell2 (valfritt) VALUES ('"&valfritt&"')"
connection.execute(sql)
Detta borde funka...nu körs alla sql-insert (inklusive att du väljer det högsta kundId från tabell1 dvs det senaste och lägger in) det skulle kanske gå att göra det på ngt lättare sätt med...men detta är vad jag kan komma på nu...
Nej verkligen inte!
Nu känner jag lärolusten komma springades till mig som rinnande vatten i en bäck!
Jag förstår faktiskt precis vad du menar nu!
TACK för all hjälp, och med dessa ord tror jag att jag kan lösa det hela.
Jag har tillgång till SQL Server 7.0 men problemet ligger i att jag kör med formulär (Användar gränssnitt) i Access.
När folk kommer in i butiken så kan man välja paket eller enskilda komponenter som jobbar mot access databasen och allt i ett snyggt gränssnitt gjort i Access. Om du inte har jobbat i det kan jag tänka mig att det är svårt att föreställa sig.
Men det är ungefär som Visual Basic (väldigt ungefär)
Jag har funderat på att gå över till SQLServer 7 men då får jag kanske ta och bygga hela order systemet i ASP, vilket jag har funderat på starkt på senaste tiden men då tex sökfunktionerna fungerar mycket bättre i Access, den sorterar bort allt som inte tillhör i listan om man skriver in tex, så att drop-down listan blir kortare och kortare, ju mer man skriver in.
Eller när man skall skriva in kunder och veta om det redan finns kunder gör man detta med en gång istället för att ha ett formulär som sedan kollar mot databasen.. jobbigt!
Jag vet att Microsoft har någon komponent som kan kolla mot en databas ungefär som jag beskriver här och "uppdatera" drop-down listan med en gång utan att ladda om sidan, men jag vet inte någon som har använt den komponenten och jag tycker det står väldigt kort beskrivet och få exempel vilket gör att det är lite komplicerat just nu.
Återigen tack för all hjälp, skall prova detta på Måndag
Tack!