Hallo,
ich habe mit C# eine Access-DB erzeugt und möchte nun Beziehungen zu den einzelnen Tabellen herstellen. Leider kriege ich einen Absturz in der Zeile "rel.Fields.Append(fld);" mit der Meldung "Das Objekt ist ungültig, oder es ist nicht mehr festgelegt". Meine Internetsuche ergab leider keinen Erfolg.
Ist vielleicht die Datenbank (CurrentDB) nicht richtig da/verbunden?
Das ist übrigends der selbe Code, wie ich den auch in VBA habe, dort läuft es, mit C# aber nicht.
MOIA.ApplicationClass oAccess = new MOIA.ApplicationClass();
oAccess.OpenCurrentDatabase(_sOutputFilePath, true);
Database db = oAccess.CurrentDb();
for(int i = 0; i < db.TableDefs.Count; i++)
{
TableDef tblDef = db.TableDefs[i];
string sTableName = tblDef.Name;
string sPrimaryTableName = "eObj_Object";
string sForeignTable_Field = "eObj_Object_ID";
string sPrimaryTable_Field = "ID";
Relation rel = db.CreateRelation(sPrimaryTableName + sTableName, sPrimaryTableName, sTableName, RelationAttributeEnum.dbRelationDeleteCascade);
Field fld = new FieldClass();
fld.Name = sPrimaryTable_Field;
fld.ForeignName = sForeignTable_Field;
rel.Fields.Append(fld); //------------> Exception!!! <-------------------
db.Relations.Append(rel);
fld = null;
rel = null;
}
db.Close();
db = null;
Hat vielleicht jemand eine Idee, woran es liegen könnte?
Danke und Gruß
Lukas
Habe die Antwort selber gefunden:
Field fld = rel.CreateField(sPrimaryTable_Field);
anstatt
fld.Name = sPrimaryTable_Field;