20. april 2004 - 14:22Der er
8 kommentarer og 2 løsninger
Oprette Kaskadevis Sletning på relation vha VBA
jeps, lige præcis som overskriften beskriver:
Hvordan kan jeg eksekvere en VBA funktion, som sætter Kaskadevis sletning mellem 2 tabeller.
Jeg er selvfølgelig klar over, at der kan være nogle låsningsproblemer. Men dem skal jeg nok komme uden om.
Jeg har følgende DAO-metode til f.eks. at ændre en datatype i Backenden: Dim db As Database Dim tdef As TableDef Set db = OpenDatabase(GetStiTilBackend) db.Execute "Alter table [Min tabel] ALTER [Mit Felt] Text(10)
på tilsvarende måde vil jeg altså ændre relationen.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
hmm, jeg kan godt få slettet relationen (efter at have prøvet mig lidt frem med relationsnavnene - de er jo ikke lige så tilgængelige som på f.eks. SQL Server).
Men når jeg skal oprette igen får jeg en Syntaksfejl: db.Execute "alter table MinTabel1 add constraint xyz on ( ID ) references MinTabel2( ID ) on cascade delete"
alter table mintabel1 alter column col add constraint xyz references mintabel2(id) on cascade delete
I øvrigt - du kan få meta data ud ved at lave en
dim c, rs set c = createobject("adodb.connection") c.open "bla bla bla" set rs = c.openschema(N)
recordsættet indeholder så metadata. Du afprøver forskellige værdier for N (1-42) - kan ikke huske hvilken der giver relationer - men der er en. Du kan sikkert finde en oversigt på MSDN...
Nå, efter selv at have gransket MSDN fandt jeg dette eksempel (som minder meget om dit) ALTER TABLE tblShipping ADD CONSTRAINT FK_tblShipping FOREIGN KEY (CustomerID) REFERENCES tblCustomers (CustomerID) ON UPDATE CASCADE ON DELETE CASCADE
Men der var en lille bagatel af en notits, som jeg først fandt efter at have kigget 742 linier gennem og efter at have prøvet utallige gange at køre SQL'en fra en data definition-forespørgsel, som bare blev ved at melde syntaksfejl: "The statement can only be executed through the Jet OLE DB provider and ADO. It will return an error message if used through the Access SQL View user interface."
Smid et svar og de skal få point, selvom du ikke kom med det fulde svar. Du bragte mig dog på sporet og din sidste SQL var også tæt på at være rigtig (du havde byttet om på cascade og delete)
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.