CreateRelation # createrelation
nel seguente esempio viene utilizzato il metodo createrelation per creare un oggetto relation tra un oggetto tabledef impiegati ed un nuovo oggetto tabledef denominato reparti. nel seguente esempio viene mostrato il modo In cui la creazione di un nuovo oggetto relation crea anche tutti gli insiemi indexes necessari nella tabella esterna ( index repartiimpiegati nella tabella impiegati). Sub createrelationx() Dim dbsnorthwind As database Dim tdfimpiegati As tabledef Dim tdfnuovo As tabledef Dim idxnuovo As index Dim relnuovo As relation Dim idxciclo As index Set dbsnorthwind = opendatabase("northwind.mdb") With dbsnorthwind ' aggiunge un nuovo campo alla tabella impiegati. Set tdfimpiegati = .tabledefs!impiegati tdfimpiegati.fields.append _ tdfimpiegati.createfield("idrep", dbinteger, 2) ' crea una nuova tabella reparti. Set tdfnuovo = .createtabledef("reparti") With tdfnuovo ' crea e accoda oggetti field all'insieme ' fields del nuovo oggetto tabledef. .fields.append .createfield("idrep", dbinteger, 2) .fields.append .createfield("nomerep", dbtext, 20) ' crea l'oggetto index per la tabella reparti. Set idxnuovo = .createindex("indiceidrep") ' crea e accoda l'oggetto field ' all'insieme fields del nuovo oggetto index. idxnuovo.fields.append idxnuovo.createfield("idrep") ' l'indice nella tabella primaria deve essere ' univoco affinche' sia parte di un oggetto relation. idxnuovo.unique = True .indexes.append idxnuovo End With .tabledefs.append tdfnuovo ' crea un oggetto repartiimpiegati relation, ' con i nomi delle due tabelle nella relazione. Set relnuovo = .createrelation("repartiimpiegati", _ tdfnuovo.name, tdfimpiegati.name, _ dbrelationupdatecascade) ' crea un oggetto field per l'insieme fields ' del nuovo oggetto relation. imposta le ' proprieta' name e foreignname in base ai ' campi da utilizzare per la relazione. relnuovo.fields.append relnuovo.createfield("idrep") relnuovo.fields!idrep.foreignname = "idrep" .relations.append relnuovo ' stampa il report. debug.print "properties di " & relnuovo.name & _ " relation" debug.print " tabella = " & relnuovo.table debug.print " foreigntable = " & _ relnuovo.foreigntable debug.print "fields di " & relnuovo.name & " relation" With relnuovo.fields!idrep debug.print " " & .name debug.print " name = " & .name debug.print " foreignname = " & .foreignname End With debug.print "indexes in " & tdfimpiegati.name & _ " tabledef" For Each idxciclo In tdfimpiegati.indexes debug.print " " & idxciclo.name & _ ", foreign = " & idxciclo.foreign Next idxciclo ' elimina i nuovi oggetti perche' si tratta di un esempio. .relations.delete relnuovo.name .tabledefs.delete tdfnuovo.name tdfimpiegati.fields.delete "idrep" .close End With End Sub |