Laden...

Access kardinalitäten auslesen

Erstellt von Robin0 vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.489 Views
R
Robin0 Themenstarter:in
212 Beiträge seit 2012
vor 11 Jahren
Access kardinalitäten auslesen

verwendetes Datenbanksystem: <Access>

Wie kann man die kardinalitäten in access auslesen

Ist es möglich, die Tabellen und Spalten auszugeben die einer Tabelle in beziehung stehen?

1.696 Beiträge seit 2006
vor 11 Jahren

Hallo,

schaue dir die Tabelle MSysRelationships mal an.

Grüße

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

R
Robin0 Themenstarter:in
212 Beiträge seit 2012
vor 11 Jahren

Das klingt nach einem guten ansatz, aber ich habe keine ahnung wo ich in der tabele nachgucken soll.

währe nett wenn mir da jemand helfen könnte.

(Auf die tabelle ist kein zugriff per sql möglich)

1.696 Beiträge seit 2006
vor 11 Jahren

Hallo,

du musst den Zugriff auf die Systemtabelle gewähren. Das kannst du mit MS Access erledigen.

Grüße

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

R
Robin0 Themenstarter:in
212 Beiträge seit 2012
vor 11 Jahren

Ich habs nach langem suchen gelöst bekommen hier meine lösung

// Con ist die OleDbConnection
// Tabellenauflistung ist eine Combobox

DataTable dataTable = Con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { });

                Tabellenauflistung.Items.Clear();  

                for (int i = 0; i &lt; dataTable.Rows.Count; i++)  
                {  
                    if (dataTable.Rows_[&quot;TABLE_TYPE&quot;].ToString() == &quot;TABLE&quot;)  
                        Tabellenauflistung.Items.Add(dataTable.Rows_[&quot;TABLE_NAME&quot;].ToString());  
                }  

                dataTable = Con.GetOleDbSchemaTable(OleDbSchemaGuid.Constraint_Column_Usage, new object[] { });  
				  
                for (int i = 0; i &lt; dataTable.Rows.Count; i++)  
                {  
                    foreach (var item in Tabellenauflistung.Items)  
                    {  
                        if (dataTable.Rows_[&quot;TABLE_NAME&quot;].ToString() == item.ToString() &amp;&amp;  
                            dataTable.Rows_[&quot;CONSTRAINT_NAME&quot;].ToString() != &quot;PrimaryKey&quot;)  
                        {  
                            // in h steht der verweisende schlüssel &quot;COLUMN_NAME&quot;  
                            object n = dataTable.Rows_[&quot;COLUMN_NAME&quot;];  
                            // in c steht der name der constraint &quot;CONSTRAINT_NAME&quot;  
                            object c = dataTable.Rows_[&quot;CONSTRAINT_NAME&quot;];               
                        }  
                    }  
                      
                }