Warfox Geschrieben 21. Juni 2005 Geschrieben 21. Juni 2005 Hi Leute, hab da mal ne fraaaage: Ich greife über eine ADO Verbindung auf eine Datenbank zu. Wie kann ich nun eine Abfrage machen oder eine Interne Funktion verwenden mit der ich rausfinden kann ob ein bestimmtes Feld in einer Bestimmten Tabelle ein teil des Primärschlüssels ist? Zitieren
TheyCallMeGeek Geschrieben 21. Juni 2005 Geschrieben 21. Juni 2005 Jedes Feld hat Attribute (eine Collection von > 90 Werten), musst dir die wohl mal durchgucken (Überwachung). Sollte dabei sein, bin aber nicht 100% sicher, hab auch grad kein VS hier. Zitieren
Amstelchen Geschrieben 21. Juni 2005 Geschrieben 21. Juni 2005 die methode OpenSchema des Connection-objekts liefert dir eine vielzahl von infos, darunter auch adSchemaKeyColumnUsage und adSchemaPrimaryKeys - in dieser ergebnisliste sollten die definierten schlüsselspalten zu fidnen sein. s'Amstel Zitieren
Warfox Geschrieben 21. Juni 2005 Autor Geschrieben 21. Juni 2005 weeil ich hier algemeine infos zu der db bekomme und nicht zu einer spezifischen tabelle Zitieren
Amstelchen Geschrieben 21. Juni 2005 Geschrieben 21. Juni 2005 Set Rs = Cn.OpenSchema(adSchemaKeyColumnUsage) For i = 0 To Rs.RecordCount - 1 For j = 0 To Rs.Fields.Count Me.List2.AddItem Rs.Fields("TABLE_NAME") Debug.Print Rs.Fields(j) Rs.MoveNext Next j Next i in Rs.Fields(2).value steht PRIMARY, das ist in meiner zugrundeliegenden tabelle (hier testhalber mysql) eine primärschlüsselspalte. auf welche datenbank greifst du denn mit ADO zu? s'Amstel Zitieren
Amstelchen Geschrieben 21. Juni 2005 Geschrieben 21. Juni 2005 könntest du dich ein wenig präzisieren - 7.0, 2000, 2005? weil ab 2000 gibts die schema views in information_schema das kannte sql server 7.0 noch nicht, darum wird auch adSchemaKeyColumnUsage nichts ausspucken Zitieren
Warfox Geschrieben 21. Juni 2005 Autor Geschrieben 21. Juni 2005 sooo jetzt hat sich alles geändert, ich soll das nun in access machen :-((( da geht jetzt garnix mehr :-((( son ****** Zitieren
Amstelchen Geschrieben 22. Juni 2005 Geschrieben 22. Juni 2005 die meines wissens einzige möglichkeit, die dir mit access bleibt, ist die TableDef und deren Indexes zu durchforsten. andere möglichkeiten gibts nicht, weder mit ADO noch mit MSysObjects. For Each tbl In db.TableDefs sIndex$ = "" For Each idx In tbl.Indexes If idx.Primary Then For Each fld In idx.Fields sIndex$ = sIndex$ & " & ' & ' & [" & fld.Name & "]" Next fld End If Next idx Next tbl HTH, s'Amstel Zitieren
Amstelchen Geschrieben 28. Juni 2005 Geschrieben 28. Juni 2005 hast du in der zwischenzeit eine lösung gefunden? 'n bisschen feedback wär hilfreich. s'Amstel Zitieren
Warfox Geschrieben 28. Juni 2005 Autor Geschrieben 28. Juni 2005 Jap hab ich...bin auf dao umgestiegen.... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.