/ 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 1 til mange relation i MS Access i V~
Fra : Alcor


Dato : 27-05-03 09:32

Hej

Jeg har et problem, når jeg i VB rette en access database, som skal
indeholder tabeller med en "1-til-Manger-relation"

Jeg har en brugerdatabase (DB2) som skal ændres til samme struktur som en
skabelondatabase (DB)

Koden for relationer-oprettelse er her:
'Først slettes alle relationer og indexer i DB2

'Genoprette alle indexer i DB2
For X = 0 To DB.TableDefs.Count - 1
If Left(DB.TableDefs(X).Name, 4) <> "MSys" Then
Set TD = DB2.TableDefs(DB.TableDefs(X).Name)
For Y = DB.TableDefs(X).Indexes.Count - 1 To 0 Step -1
Set Idx = TD.CreateIndex(DB.TableDefs(X).Indexes(Y).Name)
With Idx
.Fields = DB.TableDefs(X).Indexes(Y).Fields
.Unique = DB.TableDefs(X).Indexes(Y).Unique
.Primary = DB.TableDefs(X).Indexes(Y).Primary
.IgnoreNulls = DB.TableDefs(X).Indexes(Y).IgnoreNulls
End With
TD.Indexes.Append Idx
Next Y
End If
Next X

'Genoprette alle Relationer i DB2
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, 0)
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)
For Y = 0 To TD.Indexes.Count - 1
If TD.Indexes(Y).Primary Then Temp = Mid(TD.Indexes(Y).Fields, 2,
100)
Next Y
Rl.Fields.Append Rl.CreateField(Temp)
Rl.Fields(Temp).ForeignName = Temp
DB2.Relations.Append Rl
Next X

Hvis man kigger i MsysRelationships i Access (Funktioner/Indstillinger..,
Vis systemobjekter) på en "1-til-Manger-relation", så har den værdien 0 i
grbit, det vil sige den 4. værdi i CreateRelation-funktion skal være 0, men
den melder fejl, hvis værdien er 0.

Fejlen er: 3284. Index findes akkerede.
Men hvis jeg ikke laver afsnittet 'Genoprette alle indexer i DB2', så melder
den:
3609. Der blev ikke fundet et unik indeks for det felt, der refereres til, i
den primære tabel.

Hvis jeg i stedet sætter et 2 i CreateRelation-funktion, og derved opretter
en almindelig relation, er der ingen problemmer.

HVAD SKAL MAN GØRE FOR AT OPRETTE EN "1-TIL-MANGER-RELATION" I EN
ACCESS-DATABASE VIA VB.

Tak på forhånd for hjælpen



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

Månedens bedste
Årets bedste
Sidste års bedste