Mi si è presentata l'esigenza di eliminare una relazione in un BE via
codice.
Navigando per il NG sono riuscito a reperite tutte le informazioni di
cui avevo bisogno.
Ho deciso di pubblicare la routine costruita per mia futura memoria e
sperando che possa tornare utile anche ad altri.
' ELIMINA RELAZIONI INUTILI
Dim RltXX As dao.Relation
Dim Parte1 As String
Dim ParteMolti As String
Dim NomeRelazione As String
' Individua il nome della relazione da eliminare
For Each RltXX In Dbs1.Relations
' Tabella parte 1
Parte1 = RltXX.Table
' Tabella parte molti
ParteMolti = RltXX.ForeignTable
If Parte1 = "tabella1" And ParteMolti = "tabella2" Then
NomeRelazione = RltXX.Name
' Elimina la relazione
Dbs1.Relations.Delete NomeRelazione
' Elimina il campo
Dbs1.Execute "ALTER TABLE tabella2 DROP COLUMN pippo"
End If
Next RltXX
Mirko scusami ma è una tua necessità cancellare anche un campo della
tabella?
Ciao
--
Roberto da Parma
Si, chiedo scusa. Ho dimenticato di eliminare quel rigo.
Se si vuole eliminare SOLO la relazione, quel rigo va omesso.
Mi si è presentata l'esigenza di eliminare una relazione in un BE via
codice.
Navigando per il NG sono riuscito a reperite tutte le informazioni di
cui avevo bisogno.
Ho deciso di pubblicare la routine costruita per mia futura memoria e
sperando che possa tornare utile anche ad altri.
' ELIMINA RELAZIONI INUTILI
[...]
Io uso questa da FE a BE (se non è zuppa è pan bagnato...)
=========================================
Private Sub Rel_FE_BE_Click()
Dim LocalDB As Database, ExternalDB As Database
Dim TableName As String, ForeignTableName As String
Dim i As Object
TableName = "T1"
ForeignTableName = "T2"
Set LocalDB = CurrentDb
Set ExternalDB = OpenDatabase("D:\Access\ProvaRel.mdb")
With ExternalDB
For Each i In .Relations
If i.Table = TableName And _
i.ForeignTable = ForeignTableName Then
.Relations.Delete i.Name
End If
Next
End With
End Sub
========================================
Bruno