PDA

Vollständige Version anzeigen : Beziehungen knüpfen mit ADOX?


dakilla
20.09.2001, 08:49
Hi!

Ich versuche gerade, in einer Access-DB mithilfe von ADOX und VBA Beziehungen zu knüpfen, was mir allerdings nicht bzw. nur eingeschränkt gelingt. Besonders 1:1-Beziehungen machen Probleme. Kann mir jemand weiterhelfen? Evtl. würde auch schon ein Link auf ein www-Dokument zu diesem Thema weiterhelfen, da mir die ADO-Dokumentation von Microsoft nicht viel weiterhilft.
Die Bücher, die ich benutze bieten nicht viel Info zu ADOX.

Manuela Kulpa
20.09.2001, 11:40
<font face="Verdana" size="2">Hallo dakilla!

Anbei ein kleines Beispiel für die Erstellung einer Beziehung. Wenn du magst. schicke dir mal eine kleine Beispie-DB rüber.</font>

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Sub</span> CreateRelationship(sDBPath <span class="TOKEN">As</span> String, _
sForeignTbl <span class="TOKEN">As</span> String, _
sRelName <span class="TOKEN">As</span> String, _
sFTKey <span class="TOKEN">As</span> String, _
sRelatedTbl <span class="TOKEN">As</span> String, _
sRTKey <span class="TOKEN">As</span> <span class="TOKEN">String</span>)

<span class="TOKEN">Dim</span> catDB <span class="TOKEN">As</span> ADOX.Catalog
<span class="TOKEN">Dim</span> tbl <span class="TOKEN">As</span> ADOX.Table
<span class="TOKEN">Dim</span> key <span class="TOKEN">As</span> ADOX.key

<span class="REM"> ' bitte beachten, dass VB die Kleinschreibung von</span>
<span class="REM"> ' "key" in ADOX.key "erzwingt".</span>

<span class="TOKEN">Set</span> catDB = <span class="TOKEN">New</span> ADOX.Catalog
<span class="REM"> ' Katalog öffnen.</span>
catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source =" & sDBPath

<span class="TOKEN">Set</span> key = <span class="TOKEN">New</span> ADOX.key
<span class="REM"> ' Fremdschlüssel erstellen, um die Beziehung zu definieren.</span>
<span class="TOKEN">With</span> key
<span class="REM"> ' Name der Beziehung in der Keys-Auflistung angeben.</span>
.Name = sRelName
<span class="REM"> ' Name der Detailtabelle angeben.</span>
.RelatedTable = sRelatedTbl
.Type = adKeyForeign
<span class="REM"> ' Fremdschlüsselfeld der Columns-Auflistung hinzufügen.</span>
.Columns.Append sFTKey
<span class="REM"> ' Feld angeben, auf das sich der Fremdschlüssel bezieht.</span>
.Columns(sFTKey).RelatedColumn = sRTKey
<span class="TOKEN">End</span> <span class="TOKEN">With</span>

<span class="TOKEN">Set</span> tbl = <span class="TOKEN">New</span> ADOX.Table
<span class="REM"> ' Tabelle öffnen und Fremdschlüssel hinzufügen.</span>
<span class="TOKEN">Set</span> tbl = catDB.Tables(sForeignTbl)
tbl.Keys.Append key

<span class="TOKEN">Set</span> catDB = <span class="TOKEN">Nothing</span>
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>