Database - Crea Una Relazione




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











( databasecreaunarelazione.html )- by Paolo Puglisi - Modifica del 17/12/2023