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?
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.
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
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
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
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
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 ******
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
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
Warfox Geschrieben 28. Juni 2005 Autor Geschrieben 28. Juni 2005 Jap hab ich...bin auf dao umgestiegen....
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden