Bonsoir,
Je voudrais à partir de la base Frontale rétablir les relations de la
base Dorsale,
Mais le code ne me rétablie que les relations de la base Frontale, et
rien sur la
Dorsale.
Ou se trouve mon erreur ?
Pour cerner plus facilement le problème le joins une base allégée.
http://cjoint.com/?0bgmWQXLXZa
Sub RetablirRelations(ByVal strChemin As String)
'Cette fonction rétablie les relations entre les tables
Set WS = DBEngine.CreateWorkspace("Nouveau", "Admin", "",
dbUseJet)
Set dbDorsale = WS.OpenDatabase(strChemin)
cpt = 0
strsql = "Select * from [tbl Relations]"
Set rs = dbDorsale.OpenRecordset(strsql)
If Not rs.EOF Then
cpt = cpt + 1
rs.MoveFirst
'Do Until rs.EOF
While Not rs.EOF
Set rel > dbDorsale.CreateRelation(rs.Fields("NomRelation"),
rs.Fields("TablePrincipale"), rs.Fields("TableSecondaire"),
rs.Fields("relAttributes"))
Set myField > rel.CreateField(rs.Fields("ChampPrincipal"))
myField.ForeignName = rs.Fields("ChampSecondaire")
rel.Fields.Append myField
dbDorsale.Relations.Append rel
rs.MoveNext
Wend
'Loop
End If
dbDorsale.Close: Set dbDorsale = Nothing
WS.Close: Set WS = Nothing
End Sub
Merci pour votre aide.
Salutations
Bonsoir,
Je voudrais à partir de la base Frontale rétablir les relations de la
base Dorsale,
Mais le code ne me rétablie que les relations de la base Frontale, et
rien sur la
Dorsale.
Ou se trouve mon erreur ?
Pour cerner plus facilement le problème le joins une base allégée.
http://cjoint.com/?0bgmWQXLXZa
Sub RetablirRelations(ByVal strChemin As String)
'Cette fonction rétablie les relations entre les tables
Set WS = DBEngine.CreateWorkspace("Nouveau", "Admin", "",
dbUseJet)
Set dbDorsale = WS.OpenDatabase(strChemin)
cpt = 0
strsql = "Select * from [tbl Relations]"
Set rs = dbDorsale.OpenRecordset(strsql)
If Not rs.EOF Then
cpt = cpt + 1
rs.MoveFirst
'Do Until rs.EOF
While Not rs.EOF
Set rel > dbDorsale.CreateRelation(rs.Fields("NomRelation"),
rs.Fields("TablePrincipale"), rs.Fields("TableSecondaire"),
rs.Fields("relAttributes"))
Set myField > rel.CreateField(rs.Fields("ChampPrincipal"))
myField.ForeignName = rs.Fields("ChampSecondaire")
rel.Fields.Append myField
dbDorsale.Relations.Append rel
rs.MoveNext
Wend
'Loop
End If
dbDorsale.Close: Set dbDorsale = Nothing
WS.Close: Set WS = Nothing
End Sub
Merci pour votre aide.
Salutations
Bonsoir,
Je voudrais à partir de la base Frontale rétablir les relations de la
base Dorsale,
Mais le code ne me rétablie que les relations de la base Frontale, et
rien sur la
Dorsale.
Ou se trouve mon erreur ?
Pour cerner plus facilement le problème le joins une base allégée.
http://cjoint.com/?0bgmWQXLXZa
Sub RetablirRelations(ByVal strChemin As String)
'Cette fonction rétablie les relations entre les tables
Set WS = DBEngine.CreateWorkspace("Nouveau", "Admin", "",
dbUseJet)
Set dbDorsale = WS.OpenDatabase(strChemin)
cpt = 0
strsql = "Select * from [tbl Relations]"
Set rs = dbDorsale.OpenRecordset(strsql)
If Not rs.EOF Then
cpt = cpt + 1
rs.MoveFirst
'Do Until rs.EOF
While Not rs.EOF
Set rel > dbDorsale.CreateRelation(rs.Fields("NomRelation"),
rs.Fields("TablePrincipale"), rs.Fields("TableSecondaire"),
rs.Fields("relAttributes"))
Set myField > rel.CreateField(rs.Fields("ChampPrincipal"))
myField.ForeignName = rs.Fields("ChampSecondaire")
rel.Fields.Append myField
dbDorsale.Relations.Append rel
rs.MoveNext
Wend
'Loop
End If
dbDorsale.Close: Set dbDorsale = Nothing
WS.Close: Set WS = Nothing
End Sub
Merci pour votre aide.
Salutations
Je voudrais à partir de la base Frontale rétablir les relations de la
base Dorsale,
Mais le code ne me rétablie que les relations de la base Frontale, et
rien sur la
Dorsale.
Ou se trouve mon erreur ?
Je voudrais à partir de la base Frontale rétablir les relations de la
base Dorsale,
Mais le code ne me rétablie que les relations de la base Frontale, et
rien sur la
Dorsale.
Ou se trouve mon erreur ?
Je voudrais à partir de la base Frontale rétablir les relations de la
base Dorsale,
Mais le code ne me rétablie que les relations de la base Frontale, et
rien sur la
Dorsale.
Ou se trouve mon erreur ?
Salut,
Je n'ai pas regarder ta base, mais pour relier les tables apr s
un d placement de la base dorsale, tu peux utiliser ceci:http://www.3ston e.be/access/articles.php?lng=fr&pg(
--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos g n rales)
Jacques wrote:
> Bonsoir,
> Je voudrais partir de la base Frontale r tablir les relations de la
> base Dorsale,
> Mais le code ne me r tablie que les relations de la base Frontale, et
> rien sur la
> Dorsale.
> Ou se trouve mon erreur ?
> Pour cerner plus facilement le probl me le joins une base all g e.
>http://cjoint.com/?0bgmWQXLXZa
> Sub RetablirRelations(ByVal strChemin As String)
> 'Cette fonction r tablie les relations entre les tables
> Set WS = DBEngine.CreateWorkspace("Nouveau", "Admin", "",
> dbUseJet)
> Set dbDorsale = WS.OpenDatabase(strChemin)
> cpt = 0
> strsql = "Select * from [tbl Relations]"
> Set rs = dbDorsale.OpenRecordset(strsql)
> If Not rs.EOF Then
> cpt = cpt + 1
> rs.MoveFirst
> 'Do Until rs.EOF
> While Not rs.EOF
> Set rel =
> dbDorsale.CreateRelation(rs.Fields("NomRelation"),
> rs.Fields("TablePrincipale"), rs.Fields("TableSecondaire"),
> rs.Fields("relAttributes"))
> Set myField =
> rel.CreateField(rs.Fields("ChampPrincipal"))
> myField.ForeignName = rs.Fields("C hampSecondaire")
> rel.Fields.Append myField
> dbDorsale.Relations.Append rel
> rs.MoveNext
> Wend
> 'Loop
> End If
> dbDorsale.Close: Set dbDorsale = Nothing
> WS.Close: Set WS = Nothing
> End Sub
> Merci pour votre aide.
> Salutations- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Salut,
Je n'ai pas regarder ta base, mais pour relier les tables apr s
un d placement de la base dorsale, tu peux utiliser ceci:http://www.3ston e.be/access/articles.php?lng=fr&pg=28
--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos g n rales)
Jacques wrote:
> Bonsoir,
> Je voudrais partir de la base Frontale r tablir les relations de la
> base Dorsale,
> Mais le code ne me r tablie que les relations de la base Frontale, et
> rien sur la
> Dorsale.
> Ou se trouve mon erreur ?
> Pour cerner plus facilement le probl me le joins une base all g e.
>http://cjoint.com/?0bgmWQXLXZa
> Sub RetablirRelations(ByVal strChemin As String)
> 'Cette fonction r tablie les relations entre les tables
> Set WS = DBEngine.CreateWorkspace("Nouveau", "Admin", "",
> dbUseJet)
> Set dbDorsale = WS.OpenDatabase(strChemin)
> cpt = 0
> strsql = "Select * from [tbl Relations]"
> Set rs = dbDorsale.OpenRecordset(strsql)
> If Not rs.EOF Then
> cpt = cpt + 1
> rs.MoveFirst
> 'Do Until rs.EOF
> While Not rs.EOF
> Set rel =
> dbDorsale.CreateRelation(rs.Fields("NomRelation"),
> rs.Fields("TablePrincipale"), rs.Fields("TableSecondaire"),
> rs.Fields("relAttributes"))
> Set myField =
> rel.CreateField(rs.Fields("ChampPrincipal"))
> myField.ForeignName = rs.Fields("C hampSecondaire")
> rel.Fields.Append myField
> dbDorsale.Relations.Append rel
> rs.MoveNext
> Wend
> 'Loop
> End If
> dbDorsale.Close: Set dbDorsale = Nothing
> WS.Close: Set WS = Nothing
> End Sub
> Merci pour votre aide.
> Salutations- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Salut,
Je n'ai pas regarder ta base, mais pour relier les tables apr s
un d placement de la base dorsale, tu peux utiliser ceci:http://www.3ston e.be/access/articles.php?lng=fr&pg(
--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos g n rales)
Jacques wrote:
> Bonsoir,
> Je voudrais partir de la base Frontale r tablir les relations de la
> base Dorsale,
> Mais le code ne me r tablie que les relations de la base Frontale, et
> rien sur la
> Dorsale.
> Ou se trouve mon erreur ?
> Pour cerner plus facilement le probl me le joins une base all g e.
>http://cjoint.com/?0bgmWQXLXZa
> Sub RetablirRelations(ByVal strChemin As String)
> 'Cette fonction r tablie les relations entre les tables
> Set WS = DBEngine.CreateWorkspace("Nouveau", "Admin", "",
> dbUseJet)
> Set dbDorsale = WS.OpenDatabase(strChemin)
> cpt = 0
> strsql = "Select * from [tbl Relations]"
> Set rs = dbDorsale.OpenRecordset(strsql)
> If Not rs.EOF Then
> cpt = cpt + 1
> rs.MoveFirst
> 'Do Until rs.EOF
> While Not rs.EOF
> Set rel =
> dbDorsale.CreateRelation(rs.Fields("NomRelation"),
> rs.Fields("TablePrincipale"), rs.Fields("TableSecondaire"),
> rs.Fields("relAttributes"))
> Set myField =
> rel.CreateField(rs.Fields("ChampPrincipal"))
> myField.ForeignName = rs.Fields("C hampSecondaire")
> rel.Fields.Append myField
> dbDorsale.Relations.Append rel
> rs.MoveNext
> Wend
> 'Loop
> End If
> dbDorsale.Close: Set dbDorsale = Nothing
> WS.Close: Set WS = Nothing
> End Sub
> Merci pour votre aide.
> Salutations- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
On 6 jan, 23:24, "3stone" wrote:
> Salut,
> Je n'ai pas regarder ta base, mais pour relier les tables apr s
> un d placement de la base dorsale, tu peux utiliser ceci:http://www.3st one.be/access/articles.php?lng=fr&pg(
> --
> A+
> Pierre (3stone) Access MVP
> Perso:http://www.3stone.be/
> MPFA:http://www.mpfa.info/ (infos g n rales)
> Jacques wrote:
> > Bonsoir,
> > Je voudrais partir de la base Frontale r tablir les relations de la
> > base Dorsale,
> > Mais le code ne me r tablie que les relations de la base Frontale, et
> > rien sur la
> > Dorsale.
> > Ou se trouve mon erreur ?
> > Pour cerner plus facilement le probl me le joins une base all g e.
> >http://cjoint.com/?0bgmWQXLXZa
> > Sub RetablirRelations(ByVal strChemin As String)
> > 'Cette fonction r tablie les relations entre les tables
> > Set WS = DBEngine.CreateWorkspace("Nouveau", "Admin", "",
> > dbUseJet)
> > Set dbDorsale = WS.OpenDatabase(strChemin)
> > cpt = 0
> > strsql = "Select * from [tbl Relations]"
> > Set rs = dbDorsale.OpenRecordset(strsql)
> > If Not rs.EOF Then
> > cpt = cpt + 1
> > rs.MoveFirst
> > 'Do Until rs.EOF
> > While Not rs.EOF
> > Set rel =
> > dbDorsale.CreateRelation(rs.Fields("NomRelation"),
> > rs.Fields("TablePrincipale"), rs.Fields("TableSecondaire"),
> > rs.Fields("relAttributes"))
> > Set myField =
> > rel.CreateField(rs.Fields("ChampPrincipal"))
> > myField.ForeignName = rs.Fields( "ChampSecondaire")
> > rel.Fields.Append myField
> > dbDorsale.Relations.Append rel
> > rs.MoveNext
> > Wend
> > 'Loop
> > End If
> > dbDorsale.Close: Set dbDorsale = Nothing
> > WS.Close: Set WS = Nothing
> > End Sub
> > Merci pour votre aide.
> > Salutations- Masquer le texte des messages précédents -
> - Afficher le texte des messages précédents -
Bonsoir 3stone et bonne année 2011,
Merci pour ta réponse, mais je penses qu'il y à une petite erreur.
Dans mon cas je voudrais rétablir les relations Un à plusieurs ou
autres
de la base Dorsale et mon exemple montre que je n'y arrive pas.
Salutations- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
On 6 jan, 23:24, "3stone" <sw...@home.be> wrote:
> Salut,
> Je n'ai pas regarder ta base, mais pour relier les tables apr s
> un d placement de la base dorsale, tu peux utiliser ceci:http://www.3st one.be/access/articles.php?lng=fr&pg=28
> --
> A+
> Pierre (3stone) Access MVP
> Perso:http://www.3stone.be/
> MPFA:http://www.mpfa.info/ (infos g n rales)
> Jacques wrote:
> > Bonsoir,
> > Je voudrais partir de la base Frontale r tablir les relations de la
> > base Dorsale,
> > Mais le code ne me r tablie que les relations de la base Frontale, et
> > rien sur la
> > Dorsale.
> > Ou se trouve mon erreur ?
> > Pour cerner plus facilement le probl me le joins une base all g e.
> >http://cjoint.com/?0bgmWQXLXZa
> > Sub RetablirRelations(ByVal strChemin As String)
> > 'Cette fonction r tablie les relations entre les tables
> > Set WS = DBEngine.CreateWorkspace("Nouveau", "Admin", "",
> > dbUseJet)
> > Set dbDorsale = WS.OpenDatabase(strChemin)
> > cpt = 0
> > strsql = "Select * from [tbl Relations]"
> > Set rs = dbDorsale.OpenRecordset(strsql)
> > If Not rs.EOF Then
> > cpt = cpt + 1
> > rs.MoveFirst
> > 'Do Until rs.EOF
> > While Not rs.EOF
> > Set rel =
> > dbDorsale.CreateRelation(rs.Fields("NomRelation"),
> > rs.Fields("TablePrincipale"), rs.Fields("TableSecondaire"),
> > rs.Fields("relAttributes"))
> > Set myField =
> > rel.CreateField(rs.Fields("ChampPrincipal"))
> > myField.ForeignName = rs.Fields( "ChampSecondaire")
> > rel.Fields.Append myField
> > dbDorsale.Relations.Append rel
> > rs.MoveNext
> > Wend
> > 'Loop
> > End If
> > dbDorsale.Close: Set dbDorsale = Nothing
> > WS.Close: Set WS = Nothing
> > End Sub
> > Merci pour votre aide.
> > Salutations- Masquer le texte des messages précédents -
> - Afficher le texte des messages précédents -
Bonsoir 3stone et bonne année 2011,
Merci pour ta réponse, mais je penses qu'il y à une petite erreur.
Dans mon cas je voudrais rétablir les relations Un à plusieurs ou
autres
de la base Dorsale et mon exemple montre que je n'y arrive pas.
Salutations- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
On 6 jan, 23:24, "3stone" wrote:
> Salut,
> Je n'ai pas regarder ta base, mais pour relier les tables apr s
> un d placement de la base dorsale, tu peux utiliser ceci:http://www.3st one.be/access/articles.php?lng=fr&pg(
> --
> A+
> Pierre (3stone) Access MVP
> Perso:http://www.3stone.be/
> MPFA:http://www.mpfa.info/ (infos g n rales)
> Jacques wrote:
> > Bonsoir,
> > Je voudrais partir de la base Frontale r tablir les relations de la
> > base Dorsale,
> > Mais le code ne me r tablie que les relations de la base Frontale, et
> > rien sur la
> > Dorsale.
> > Ou se trouve mon erreur ?
> > Pour cerner plus facilement le probl me le joins une base all g e.
> >http://cjoint.com/?0bgmWQXLXZa
> > Sub RetablirRelations(ByVal strChemin As String)
> > 'Cette fonction r tablie les relations entre les tables
> > Set WS = DBEngine.CreateWorkspace("Nouveau", "Admin", "",
> > dbUseJet)
> > Set dbDorsale = WS.OpenDatabase(strChemin)
> > cpt = 0
> > strsql = "Select * from [tbl Relations]"
> > Set rs = dbDorsale.OpenRecordset(strsql)
> > If Not rs.EOF Then
> > cpt = cpt + 1
> > rs.MoveFirst
> > 'Do Until rs.EOF
> > While Not rs.EOF
> > Set rel =
> > dbDorsale.CreateRelation(rs.Fields("NomRelation"),
> > rs.Fields("TablePrincipale"), rs.Fields("TableSecondaire"),
> > rs.Fields("relAttributes"))
> > Set myField =
> > rel.CreateField(rs.Fields("ChampPrincipal"))
> > myField.ForeignName = rs.Fields( "ChampSecondaire")
> > rel.Fields.Append myField
> > dbDorsale.Relations.Append rel
> > rs.MoveNext
> > Wend
> > 'Loop
> > End If
> > dbDorsale.Close: Set dbDorsale = Nothing
> > WS.Close: Set WS = Nothing
> > End Sub
> > Merci pour votre aide.
> > Salutations- Masquer le texte des messages précédents -
> - Afficher le texte des messages précédents -
Bonsoir 3stone et bonne année 2011,
Merci pour ta réponse, mais je penses qu'il y à une petite erreur.
Dans mon cas je voudrais rétablir les relations Un à plusieurs ou
autres
de la base Dorsale et mon exemple montre que je n'y arrive pas.
Salutations- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Pourquoi, n'a ton pas besion parfois de supprimer des relations pour
intervenir sur une
table, ou bien rétablir une relation qui pour une raison quelconque
n'est pas faite.
Pourquoi, n'a ton pas besion parfois de supprimer des relations pour
intervenir sur une
table, ou bien rétablir une relation qui pour une raison quelconque
n'est pas faite.
Pourquoi, n'a ton pas besion parfois de supprimer des relations pour
intervenir sur une
table, ou bien rétablir une relation qui pour une raison quelconque
n'est pas faite.
Salut,
Jacques wrote:
[...]
> Pourquoi, n'a ton pas besion parfois de supprimer des relations pour
> intervenir sur une
> table, ou bien r tablir une relation qui pour une raison quelconque
> n'est pas faite.
Si, cela peut se justifier lorsque l'on pas acc s la base,
que l'on envoie une modification de la partie frontale.
On adapte ainsi la dorsale au nouveaux besoins, mais...
Exemple tir de l'aide en ligne:
Cet exemple utilise la m thode CreateRelation pour cr er un objet Relatio n entre l'objet TableDef
Employ s et un nouvel objet TableDef nomm D partements. Il illustre galem ent la mani re dont la
cr ation d'un nouvel objet Relation cr e les objets Indexes n cessaires d ans la table externe (Index
D partements Employ s dans la table Employ s).
Sub CreateRelationX()
Dim dbsNorthwind As Database
Dim tdfEmployees As TableDef
Dim tdfNew As TableDef
Dim idxNew As Index
Dim relNew As Relation
Dim idxLoop As Index
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
With dbsNorthwind
' Add new field to Employees table.
Set tdfEmployees = .TableDefs!Employees
tdfEmployees.Fields.Append _
tdfEmployees.CreateField("DeptID", dbInteger, 2)
' Create new Departments table.
Set tdfNew = .CreateTableDef("Departments")
With tdfNew
' Create and append Field objects to Fields
' collection of the new TableDef object.
.Fields.Append .CreateField("DeptID", dbInteger, 2)
.Fields.Append .CreateField("DeptName", dbText, 20)
' Create Index object for Departments table.
Set idxNew = .CreateIndex("DeptIDIndex")
' Create and append Field object to Fields
' collection of the new Index object.
idxNew.Fields.Append idxNew.CreateField("DeptID")
' The index in the primary table must be Unique in
' order to be part of a Relation.
idxNew.Unique = True
.Indexes.Append idxNew
End With
.TableDefs.Append tdfNew
' Create EmployeesDepartments Relation object, using
' the names of the two tables in the relation.
Set relNew = .CreateRelation("EmployeesDepartments", _
tdfNew.Name, tdfEmployees.Name, _
dbRelationUpdateCascade)
' Create Field object for the Fields collection of the
' new Relation object. Set the Name and ForeignName
' properties based on the fields to be used for the
' relation.
relNew.Fields.Append relNew.CreateField("DeptID")
relNew.Fields!DeptID.ForeignName = "DeptID"
.Relations.Append relNew
' Print report.
Debug.Print "Properties of " & relNew.Name & _
" Relation"
Debug.Print " Table = " & relNew.Table
Debug.Print " ForeignTable = " & _
relNew.ForeignTable
Debug.Print "Fields of " & relNew.Name & " Relation"
With relNew.Fields!DeptID
Debug.Print " " & .Name
Debug.Print " Name = " & .Name
Debug.Print " ForeignName = " & .ForeignName
End With
Debug.Print "Indexes in " & tdfEmployees.Name & _
" TableDef"
For Each idxLoop In tdfEmployees.Indexes
Debug.Print " " & idxLoop.Name & _
", Foreign = " & idxLoop.Foreign
Next idxLoop
' Delete new objects because this is a demonstration.
.Relations.Delete relNew.Name
.TableDefs.Delete tdfNew.Name
tdfEmployees.Fields.Delete "DeptID"
.Close
End With
End Sub-- A+Pierre (3stone) Access MVPPerso:http://www.3stone.be/MPFA:htt p://www.mpfa.info/
(infos g n rales)
Salut,
Jacques wrote:
[...]
> Pourquoi, n'a ton pas besion parfois de supprimer des relations pour
> intervenir sur une
> table, ou bien r tablir une relation qui pour une raison quelconque
> n'est pas faite.
Si, cela peut se justifier lorsque l'on pas acc s la base,
que l'on envoie une modification de la partie frontale.
On adapte ainsi la dorsale au nouveaux besoins, mais...
Exemple tir de l'aide en ligne:
Cet exemple utilise la m thode CreateRelation pour cr er un objet Relatio n entre l'objet TableDef
Employ s et un nouvel objet TableDef nomm D partements. Il illustre galem ent la mani re dont la
cr ation d'un nouvel objet Relation cr e les objets Indexes n cessaires d ans la table externe (Index
D partements Employ s dans la table Employ s).
Sub CreateRelationX()
Dim dbsNorthwind As Database
Dim tdfEmployees As TableDef
Dim tdfNew As TableDef
Dim idxNew As Index
Dim relNew As Relation
Dim idxLoop As Index
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
With dbsNorthwind
' Add new field to Employees table.
Set tdfEmployees = .TableDefs!Employees
tdfEmployees.Fields.Append _
tdfEmployees.CreateField("DeptID", dbInteger, 2)
' Create new Departments table.
Set tdfNew = .CreateTableDef("Departments")
With tdfNew
' Create and append Field objects to Fields
' collection of the new TableDef object.
.Fields.Append .CreateField("DeptID", dbInteger, 2)
.Fields.Append .CreateField("DeptName", dbText, 20)
' Create Index object for Departments table.
Set idxNew = .CreateIndex("DeptIDIndex")
' Create and append Field object to Fields
' collection of the new Index object.
idxNew.Fields.Append idxNew.CreateField("DeptID")
' The index in the primary table must be Unique in
' order to be part of a Relation.
idxNew.Unique = True
.Indexes.Append idxNew
End With
.TableDefs.Append tdfNew
' Create EmployeesDepartments Relation object, using
' the names of the two tables in the relation.
Set relNew = .CreateRelation("EmployeesDepartments", _
tdfNew.Name, tdfEmployees.Name, _
dbRelationUpdateCascade)
' Create Field object for the Fields collection of the
' new Relation object. Set the Name and ForeignName
' properties based on the fields to be used for the
' relation.
relNew.Fields.Append relNew.CreateField("DeptID")
relNew.Fields!DeptID.ForeignName = "DeptID"
.Relations.Append relNew
' Print report.
Debug.Print "Properties of " & relNew.Name & _
" Relation"
Debug.Print " Table = " & relNew.Table
Debug.Print " ForeignTable = " & _
relNew.ForeignTable
Debug.Print "Fields of " & relNew.Name & " Relation"
With relNew.Fields!DeptID
Debug.Print " " & .Name
Debug.Print " Name = " & .Name
Debug.Print " ForeignName = " & .ForeignName
End With
Debug.Print "Indexes in " & tdfEmployees.Name & _
" TableDef"
For Each idxLoop In tdfEmployees.Indexes
Debug.Print " " & idxLoop.Name & _
", Foreign = " & idxLoop.Foreign
Next idxLoop
' Delete new objects because this is a demonstration.
.Relations.Delete relNew.Name
.TableDefs.Delete tdfNew.Name
tdfEmployees.Fields.Delete "DeptID"
.Close
End With
End Sub-- A+Pierre (3stone) Access MVPPerso:http://www.3stone.be/MPFA:htt p://www.mpfa.info/
(infos g n rales)
Salut,
Jacques wrote:
[...]
> Pourquoi, n'a ton pas besion parfois de supprimer des relations pour
> intervenir sur une
> table, ou bien r tablir une relation qui pour une raison quelconque
> n'est pas faite.
Si, cela peut se justifier lorsque l'on pas acc s la base,
que l'on envoie une modification de la partie frontale.
On adapte ainsi la dorsale au nouveaux besoins, mais...
Exemple tir de l'aide en ligne:
Cet exemple utilise la m thode CreateRelation pour cr er un objet Relatio n entre l'objet TableDef
Employ s et un nouvel objet TableDef nomm D partements. Il illustre galem ent la mani re dont la
cr ation d'un nouvel objet Relation cr e les objets Indexes n cessaires d ans la table externe (Index
D partements Employ s dans la table Employ s).
Sub CreateRelationX()
Dim dbsNorthwind As Database
Dim tdfEmployees As TableDef
Dim tdfNew As TableDef
Dim idxNew As Index
Dim relNew As Relation
Dim idxLoop As Index
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
With dbsNorthwind
' Add new field to Employees table.
Set tdfEmployees = .TableDefs!Employees
tdfEmployees.Fields.Append _
tdfEmployees.CreateField("DeptID", dbInteger, 2)
' Create new Departments table.
Set tdfNew = .CreateTableDef("Departments")
With tdfNew
' Create and append Field objects to Fields
' collection of the new TableDef object.
.Fields.Append .CreateField("DeptID", dbInteger, 2)
.Fields.Append .CreateField("DeptName", dbText, 20)
' Create Index object for Departments table.
Set idxNew = .CreateIndex("DeptIDIndex")
' Create and append Field object to Fields
' collection of the new Index object.
idxNew.Fields.Append idxNew.CreateField("DeptID")
' The index in the primary table must be Unique in
' order to be part of a Relation.
idxNew.Unique = True
.Indexes.Append idxNew
End With
.TableDefs.Append tdfNew
' Create EmployeesDepartments Relation object, using
' the names of the two tables in the relation.
Set relNew = .CreateRelation("EmployeesDepartments", _
tdfNew.Name, tdfEmployees.Name, _
dbRelationUpdateCascade)
' Create Field object for the Fields collection of the
' new Relation object. Set the Name and ForeignName
' properties based on the fields to be used for the
' relation.
relNew.Fields.Append relNew.CreateField("DeptID")
relNew.Fields!DeptID.ForeignName = "DeptID"
.Relations.Append relNew
' Print report.
Debug.Print "Properties of " & relNew.Name & _
" Relation"
Debug.Print " Table = " & relNew.Table
Debug.Print " ForeignTable = " & _
relNew.ForeignTable
Debug.Print "Fields of " & relNew.Name & " Relation"
With relNew.Fields!DeptID
Debug.Print " " & .Name
Debug.Print " Name = " & .Name
Debug.Print " ForeignName = " & .ForeignName
End With
Debug.Print "Indexes in " & tdfEmployees.Name & _
" TableDef"
For Each idxLoop In tdfEmployees.Indexes
Debug.Print " " & idxLoop.Name & _
", Foreign = " & idxLoop.Foreign
Next idxLoop
' Delete new objects because this is a demonstration.
.Relations.Delete relNew.Name
.TableDefs.Delete tdfNew.Name
tdfEmployees.Fields.Delete "DeptID"
.Close
End With
End Sub-- A+Pierre (3stone) Access MVPPerso:http://www.3stone.be/MPFA:htt p://www.mpfa.info/
(infos g n rales)
On 7 jan, 22:57, "3stone" wrote:
> Salut,
> Jacques wrote:
> [...]
> > Pourquoi, n'a ton pas besion parfois de supprimer des relations pour
> > intervenir sur une
> > table, ou bien r tablir une relation qui pour une raison quelconque
> > n'est pas faite.
> Si, cela peut se justifier lorsque l'on pas acc s la base,
> que l'on envoie une modification de la partie frontale.
> On adapte ainsi la dorsale au nouveaux besoins, mais...
> Exemple tir de l'aide en ligne:
> Cet exemple utilise la m thode CreateRelation pour cr er un objet Relat ion entre l'objet TableDef
> Employ s et un nouvel objet TableDef nomm D partements. Il illustre gal ement la mani re dont la
> cr ation d'un nouvel objet Relation cr e les objets Indexes n cessaires dans la table externe (Index
> D partements Employ s dans la table Employ s).
> Sub CreateRelationX()
> Dim dbsNorthwind As Database
> Dim tdfEmployees As TableDef
> Dim tdfNew As TableDef
> Dim idxNew As Index
> Dim relNew As Relation
> Dim idxLoop As Index
> Set dbsNorthwind = OpenDatabase("Northwind.mdb")
> With dbsNorthwind
> ' Add new field to Employees table.
> Set tdfEmployees = .TableDefs!Employees
> tdfEmployees.Fields.Append _
> tdfEmployees.CreateField("DeptID", dbInteger, 2)
> ' Create new Departments table.
> Set tdfNew = .CreateTableDef("Departments")
> With tdfNew
> ' Create and append Field objects to Fields
> ' collection of the new TableDef object.
> .Fields.Append .CreateField("DeptID", dbInteger, 2)
> .Fields.Append .CreateField("DeptName", dbText, 20)
> ' Create Index object for Departments table.
> Set idxNew = .CreateIndex("DeptIDIndex")
> ' Create and append Field object to Fields
> ' collection of the new Index object.
> idxNew.Fields.Append idxNew.CreateField("DeptID")
> ' The index in the primary table must be Unique in
> ' order to be part of a Relation.
> idxNew.Unique = True
> .Indexes.Append idxNew
> End With
> .TableDefs.Append tdfNew
> ' Create EmployeesDepartments Relation object, using
> ' the names of the two tables in the relation.
> Set relNew = .CreateRelation("EmployeesDepartments", _
> tdfNew.Name, tdfEmployees.Name, _
> dbRelationUpdateCascade)
> ' Create Field object for the Fields collection of the
> ' new Relation object. Set the Name and ForeignName
> ' properties based on the fields to be used for the
> ' relation.
> relNew.Fields.Append relNew.CreateField("DeptID")
> relNew.Fields!DeptID.ForeignName = "DeptID"
> .Relations.Append relNew
> ' Print report.
> Debug.Print "Properties of " & relNew.Name & _
> " Relation"
> Debug.Print " Table = " & relNew.Table
> Debug.Print " ForeignTable = " & _
> relNew.ForeignTable
> Debug.Print "Fields of " & relNew.Name & " Relation"
> With relNew.Fields!DeptID
> Debug.Print " " & .Name
> Debug.Print " Name = " & .Name
> Debug.Print " ForeignName = " & .ForeignNam e
> End With
> Debug.Print "Indexes in " & tdfEmployees.Name & _
> " TableDef"
> For Each idxLoop In tdfEmployees.Indexes
> Debug.Print " " & idxLoop.Name & _
> ", Foreign = " & idxLoop.Foreign
> Next idxLoop
> ' Delete new objects because this is a demonstration.
> .Relations.Delete relNew.Name
> .TableDefs.Delete tdfNew.Name
> tdfEmployees.Fields.Delete "DeptID"
> .Close
> End With
> End Sub-- A+Pierre (3stone) Access MVPPerso:http://www.3stone.be/MPFA:h ttp://www.mpfa.info/
> (infos g n rales)
Bonsoir 3stone,
Merci pour ce code, maintenant il me reste plus qu'à le comprendre
et le mettre en place.
Salutations- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
On 7 jan, 22:57, "3stone" <sw...@home.be> wrote:
> Salut,
> Jacques wrote:
> [...]
> > Pourquoi, n'a ton pas besion parfois de supprimer des relations pour
> > intervenir sur une
> > table, ou bien r tablir une relation qui pour une raison quelconque
> > n'est pas faite.
> Si, cela peut se justifier lorsque l'on pas acc s la base,
> que l'on envoie une modification de la partie frontale.
> On adapte ainsi la dorsale au nouveaux besoins, mais...
> Exemple tir de l'aide en ligne:
> Cet exemple utilise la m thode CreateRelation pour cr er un objet Relat ion entre l'objet TableDef
> Employ s et un nouvel objet TableDef nomm D partements. Il illustre gal ement la mani re dont la
> cr ation d'un nouvel objet Relation cr e les objets Indexes n cessaires dans la table externe (Index
> D partements Employ s dans la table Employ s).
> Sub CreateRelationX()
> Dim dbsNorthwind As Database
> Dim tdfEmployees As TableDef
> Dim tdfNew As TableDef
> Dim idxNew As Index
> Dim relNew As Relation
> Dim idxLoop As Index
> Set dbsNorthwind = OpenDatabase("Northwind.mdb")
> With dbsNorthwind
> ' Add new field to Employees table.
> Set tdfEmployees = .TableDefs!Employees
> tdfEmployees.Fields.Append _
> tdfEmployees.CreateField("DeptID", dbInteger, 2)
> ' Create new Departments table.
> Set tdfNew = .CreateTableDef("Departments")
> With tdfNew
> ' Create and append Field objects to Fields
> ' collection of the new TableDef object.
> .Fields.Append .CreateField("DeptID", dbInteger, 2)
> .Fields.Append .CreateField("DeptName", dbText, 20)
> ' Create Index object for Departments table.
> Set idxNew = .CreateIndex("DeptIDIndex")
> ' Create and append Field object to Fields
> ' collection of the new Index object.
> idxNew.Fields.Append idxNew.CreateField("DeptID")
> ' The index in the primary table must be Unique in
> ' order to be part of a Relation.
> idxNew.Unique = True
> .Indexes.Append idxNew
> End With
> .TableDefs.Append tdfNew
> ' Create EmployeesDepartments Relation object, using
> ' the names of the two tables in the relation.
> Set relNew = .CreateRelation("EmployeesDepartments", _
> tdfNew.Name, tdfEmployees.Name, _
> dbRelationUpdateCascade)
> ' Create Field object for the Fields collection of the
> ' new Relation object. Set the Name and ForeignName
> ' properties based on the fields to be used for the
> ' relation.
> relNew.Fields.Append relNew.CreateField("DeptID")
> relNew.Fields!DeptID.ForeignName = "DeptID"
> .Relations.Append relNew
> ' Print report.
> Debug.Print "Properties of " & relNew.Name & _
> " Relation"
> Debug.Print " Table = " & relNew.Table
> Debug.Print " ForeignTable = " & _
> relNew.ForeignTable
> Debug.Print "Fields of " & relNew.Name & " Relation"
> With relNew.Fields!DeptID
> Debug.Print " " & .Name
> Debug.Print " Name = " & .Name
> Debug.Print " ForeignName = " & .ForeignNam e
> End With
> Debug.Print "Indexes in " & tdfEmployees.Name & _
> " TableDef"
> For Each idxLoop In tdfEmployees.Indexes
> Debug.Print " " & idxLoop.Name & _
> ", Foreign = " & idxLoop.Foreign
> Next idxLoop
> ' Delete new objects because this is a demonstration.
> .Relations.Delete relNew.Name
> .TableDefs.Delete tdfNew.Name
> tdfEmployees.Fields.Delete "DeptID"
> .Close
> End With
> End Sub-- A+Pierre (3stone) Access MVPPerso:http://www.3stone.be/MPFA:h ttp://www.mpfa.info/
> (infos g n rales)
Bonsoir 3stone,
Merci pour ce code, maintenant il me reste plus qu'à le comprendre
et le mettre en place.
Salutations- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
On 7 jan, 22:57, "3stone" wrote:
> Salut,
> Jacques wrote:
> [...]
> > Pourquoi, n'a ton pas besion parfois de supprimer des relations pour
> > intervenir sur une
> > table, ou bien r tablir une relation qui pour une raison quelconque
> > n'est pas faite.
> Si, cela peut se justifier lorsque l'on pas acc s la base,
> que l'on envoie une modification de la partie frontale.
> On adapte ainsi la dorsale au nouveaux besoins, mais...
> Exemple tir de l'aide en ligne:
> Cet exemple utilise la m thode CreateRelation pour cr er un objet Relat ion entre l'objet TableDef
> Employ s et un nouvel objet TableDef nomm D partements. Il illustre gal ement la mani re dont la
> cr ation d'un nouvel objet Relation cr e les objets Indexes n cessaires dans la table externe (Index
> D partements Employ s dans la table Employ s).
> Sub CreateRelationX()
> Dim dbsNorthwind As Database
> Dim tdfEmployees As TableDef
> Dim tdfNew As TableDef
> Dim idxNew As Index
> Dim relNew As Relation
> Dim idxLoop As Index
> Set dbsNorthwind = OpenDatabase("Northwind.mdb")
> With dbsNorthwind
> ' Add new field to Employees table.
> Set tdfEmployees = .TableDefs!Employees
> tdfEmployees.Fields.Append _
> tdfEmployees.CreateField("DeptID", dbInteger, 2)
> ' Create new Departments table.
> Set tdfNew = .CreateTableDef("Departments")
> With tdfNew
> ' Create and append Field objects to Fields
> ' collection of the new TableDef object.
> .Fields.Append .CreateField("DeptID", dbInteger, 2)
> .Fields.Append .CreateField("DeptName", dbText, 20)
> ' Create Index object for Departments table.
> Set idxNew = .CreateIndex("DeptIDIndex")
> ' Create and append Field object to Fields
> ' collection of the new Index object.
> idxNew.Fields.Append idxNew.CreateField("DeptID")
> ' The index in the primary table must be Unique in
> ' order to be part of a Relation.
> idxNew.Unique = True
> .Indexes.Append idxNew
> End With
> .TableDefs.Append tdfNew
> ' Create EmployeesDepartments Relation object, using
> ' the names of the two tables in the relation.
> Set relNew = .CreateRelation("EmployeesDepartments", _
> tdfNew.Name, tdfEmployees.Name, _
> dbRelationUpdateCascade)
> ' Create Field object for the Fields collection of the
> ' new Relation object. Set the Name and ForeignName
> ' properties based on the fields to be used for the
> ' relation.
> relNew.Fields.Append relNew.CreateField("DeptID")
> relNew.Fields!DeptID.ForeignName = "DeptID"
> .Relations.Append relNew
> ' Print report.
> Debug.Print "Properties of " & relNew.Name & _
> " Relation"
> Debug.Print " Table = " & relNew.Table
> Debug.Print " ForeignTable = " & _
> relNew.ForeignTable
> Debug.Print "Fields of " & relNew.Name & " Relation"
> With relNew.Fields!DeptID
> Debug.Print " " & .Name
> Debug.Print " Name = " & .Name
> Debug.Print " ForeignName = " & .ForeignNam e
> End With
> Debug.Print "Indexes in " & tdfEmployees.Name & _
> " TableDef"
> For Each idxLoop In tdfEmployees.Indexes
> Debug.Print " " & idxLoop.Name & _
> ", Foreign = " & idxLoop.Foreign
> Next idxLoop
> ' Delete new objects because this is a demonstration.
> .Relations.Delete relNew.Name
> .TableDefs.Delete tdfNew.Name
> tdfEmployees.Fields.Delete "DeptID"
> .Close
> End With
> End Sub-- A+Pierre (3stone) Access MVPPerso:http://www.3stone.be/MPFA:h ttp://www.mpfa.info/
> (infos g n rales)
Bonsoir 3stone,
Merci pour ce code, maintenant il me reste plus qu'à le comprendre
et le mettre en place.
Salutations- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Est-ce que quelqu'un pourrait essayer mon exemple dont le lien se
trouve plus haut
et me dire si les relations se font bien sur les deux bases.
On me dit que le code fonctionne (ce que je crois) mais pas chez-moi.
Est-ce que quelqu'un pourrait essayer mon exemple dont le lien se
trouve plus haut
et me dire si les relations se font bien sur les deux bases.
On me dit que le code fonctionne (ce que je crois) mais pas chez-moi.
Est-ce que quelqu'un pourrait essayer mon exemple dont le lien se
trouve plus haut
et me dire si les relations se font bien sur les deux bases.
On me dit que le code fonctionne (ce que je crois) mais pas chez-moi.
Salut,
Jacques wrote:
[...]
> Est-ce que quelqu'un pourrait essayer mon exemple dont le lien se
> trouve plus haut
> et me dire si les relations se font bien sur les deux bases.
> On me dit que le code fonctionne (ce que je crois) mais pas chez-moi.
Oui, il fonctionne...
Etant donné que les fichiers ne sont pas au même endroit que lorsque
les tables de la dorsale ont été liés à la fontale, j'ai dû ref aire la
première liaison avec l'assistant...
--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos générales)
Salut,
Jacques wrote:
[...]
> Est-ce que quelqu'un pourrait essayer mon exemple dont le lien se
> trouve plus haut
> et me dire si les relations se font bien sur les deux bases.
> On me dit que le code fonctionne (ce que je crois) mais pas chez-moi.
Oui, il fonctionne...
Etant donné que les fichiers ne sont pas au même endroit que lorsque
les tables de la dorsale ont été liés à la fontale, j'ai dû ref aire la
première liaison avec l'assistant...
--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos générales)
Salut,
Jacques wrote:
[...]
> Est-ce que quelqu'un pourrait essayer mon exemple dont le lien se
> trouve plus haut
> et me dire si les relations se font bien sur les deux bases.
> On me dit que le code fonctionne (ce que je crois) mais pas chez-moi.
Oui, il fonctionne...
Etant donné que les fichiers ne sont pas au même endroit que lorsque
les tables de la dorsale ont été liés à la fontale, j'ai dû ref aire la
première liaison avec l'assistant...
--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos générales)
Pour moi c'est l'incompréhension totale, j'ai essayé sur un portable,
puis sur une
autre machine fixe, est imposible de faire fonctionner ce code.
Suite à ton experience A-tu une idée du problème, ou une piste de
recherche à me donner.
Pour moi c'est l'incompréhension totale, j'ai essayé sur un portable,
puis sur une
autre machine fixe, est imposible de faire fonctionner ce code.
Suite à ton experience A-tu une idée du problème, ou une piste de
recherche à me donner.
Pour moi c'est l'incompréhension totale, j'ai essayé sur un portable,
puis sur une
autre machine fixe, est imposible de faire fonctionner ce code.
Suite à ton experience A-tu une idée du problème, ou une piste de
recherche à me donner.