/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Opret en Relation via VB6
Fra : Steen Alcor


Dato : 02-05-01 11:04

Er der en som kender en metode, hvorpå man kan oprette en 1-mange relation i
en access-database via VB

Jeg har lavet et program som på grundlag af en databasestruktur, går ind og
retter en anden database til at have samme databasestruktur.
Når jeg så komme til relationerne har jeg et problem ved de relationer som
er sat til "Gennemtving referentiel integritet" i Access, dvs en relation
som er 1 til mange.

Først fjerne jeg alle relationerne, derefter alle index'er, derefter
opretter jeg alle index'er og til sidst opretter jeg alle relationerne.

Koden hertil er:

Dim TD as TableDef, Rl as Relation, DB as Database DB2 as Database
Dim Temp as String, X as Integer, Y as Integer

'Genoprette alle Relationer
For X = DB.Relations.Count - 1 To 0 Step -1
If DB.Relations(X).Attributes = 0 Then
Set Rl = DB2.CreateRelation(DB.Relations(X).Name, _
DB.Relations(X).Table, _
DB.Relations(X).ForeignTable, _
2) 'HER ER PROBLEMMET. DEN VIL IKKE
ACCEPTERE EN 0-VÆRDI
Else
Set Rl = DB2.CreateRelation(DB.Relations(X).Name, _
DB.Relations(X).Table, _
DB.Relations(X).ForeignTable, _
DB.Relations(X).Attributes)
End If
Temp = ""
Set TD = DB.TableDefs(DB.Relations(X).Table)
'Her findes den primanøgle som brugers
For Y = 0 To TD.Indexes.Count - 1
If TD.Indexes(Y).Primary Then Temp = Mid(TD.Indexes(Y).Fields, 2,
100)
Next Y
Debug.Print DB.Relations(X).Table & " + " &
DB.Relations(X).ForeignTable & " = " & Temp
DoEvents
Rl.Fields.Append Rl.CreateField(Temp)
Rl.Fields(Temp).ForeignName = Temp
DoEvents
DB2.Relations.Append Rl
Next X

Hvis man kigger i Access-databasen i systemfilen MSysRelationships er
værdien i en 1-mange relation = 0 (grbit)

Steen Alcor



 
 
Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste