j'essaie de créer un lien d'intégrité référentielle par macro (exécuter
code
SQL)
une intégrité référentielle qui ferait ON DELETE CASCADE
je buche depuis 4 jours , à s'en rendre folle
pourriez-vous m'aider ?
d'avance merci
si vous me répondez en VB merci d'expliquer avec précision où on met que
champ, de quelle table avec précision parceque je ne comprends rien au vb.
Access 2000
j'essaie de créer un lien d'intégrité référentielle par macro (exécuter
code
SQL)
une intégrité référentielle qui ferait ON DELETE CASCADE
je buche depuis 4 jours , à s'en rendre folle
pourriez-vous m'aider ?
d'avance merci
si vous me répondez en VB merci d'expliquer avec précision où on met que
champ, de quelle table avec précision parceque je ne comprends rien au vb.
Access 2000
j'essaie de créer un lien d'intégrité référentielle par macro (exécuter
code
SQL)
une intégrité référentielle qui ferait ON DELETE CASCADE
je buche depuis 4 jours , à s'en rendre folle
pourriez-vous m'aider ?
d'avance merci
si vous me répondez en VB merci d'expliquer avec précision où on met que
champ, de quelle table avec précision parceque je ne comprends rien au vb.
Access 2000
Bonjour,
j'essaie de créer un lien d'intégrité référentielle par macro
(exécuter code SQL)
si vous me répondez en VB merci d'expliquer avec précision où on met
que champ, de quelle table avec précision parceque je ne comprends
rien au vb.
Bonjour,
j'essaie de créer un lien d'intégrité référentielle par macro
(exécuter code SQL)
si vous me répondez en VB merci d'expliquer avec précision où on met
que champ, de quelle table avec précision parceque je ne comprends
rien au vb.
Bonjour,
j'essaie de créer un lien d'intégrité référentielle par macro
(exécuter code SQL)
si vous me répondez en VB merci d'expliquer avec précision où on met
que champ, de quelle table avec précision parceque je ne comprends
rien au vb.
-----Message d'origine-----
Bonjour,
"ran" <duchemin@(nospam)ibelgique.com> a écrit dans le
message de news:
co9f1j$1qic$j'essaie de créer un lien d'intégrité référentielle
par macro (exécuter
code
SQL)
une intégrité référentielle qui ferait ON DELETE
CASCADE
je buche depuis 4 jours , à s'en rendre folle
pourriez-vous m'aider ?
d'avance merci
si vous me répondez en VB merci d'expliquer avec
précision où on met que
champ, de quelle table avec précision parceque je ne
comprends rien au vb.
Access 2000
En SQL je ne sais pas faire, mais voici deux fonctions
VBA, la première
récupérée sur le site de Raymond et adaptée supprime une
relation.
Public Function Suppr_Relation(nTable As String,
nForeignTable As String) As
Boolean
On Error GoTo Err_Func
Dim db As DAO.Database, ix As Integer
Set db = CurrentDB()
Suppr_Relation = False
For ix = 0 To db.Relations.Count - 1
If db.Relations(ix).Table = nTable And
db.Relations(ix).ForeignTable
= nForeignTable Then
db.Relations.Delete db.Relations(ix).Name
Suppr_Relation = True
End If
Next ix
Set db = Nothing
Exit Function
Err_Func:
Suppr_Relation = False
End Function
Public Function Cre_Relation(dbName As String, nRelation
As String, nTable
As String, nForeignTable As String, lngAttrib As Long,
nField1 As String,
nForeignField1 As String, Optional nField2 As String,
Optional
nForeignField2 As String, Optional nField3 As String,
Optional
nForeignField3 As String)
'On crée une relation et définit ses propriétés.
Dim rel As DAO.Relation, chp1 As DAO.Field, chp2 As
DAO.Field, chp3 As
DAO.Field
Dim db As DAO.Database
Set db = DBEngine.Workspaces(0).OpenDatabase
(dbName) ' Autre base de
données ou bien
Set db = CurrentDB ' Autre base de données ou bien
Set rel = db.CreateRelation(nRelation, nTable,
nForeignTable, lngAttrib)
' On crée un champ dans la collection Fields de l'objet
Relation
' rel.Attributes = lngAttrib '
dbRelationUpdateCascade +
dbRelationDeleteCascade
' On ajoute le champ à l'objet Relation et l'objet
Set chp1 = rel.CreateField(nField1)
chp1.ForeignName = nForeignField1
rel.Fields.Append chp1
' Stop
If Len(Nz(nField2)) > 0 Then
Set chp2 = rel.CreateField(nField2)
chp2.ForeignName = nForeignField2
rel.Fields.Append chp2
End If
If Len(Nz(nField3)) > 0 Then
Set chp3 = rel.CreateField(nField3)
chp3.ForeignName = nForeignField3
rel.Fields.Append chp3
End If
db.Relations.Append rel
End Function
Exemple d'utilisation :
boolVar = Cre_Relation
("C:MonCheminMaBase.mdb", "Client_Commande",
"T_Client", "T_Commande", dbRelationUpdateCascade +
dbRelationDeleteCascade, "IdClient", "IdClient")
.
-----Message d'origine-----
Bonjour,
"ran" <duchemin@(nospam)ibelgique.com> a écrit dans le
message de news:
co9f1j$1qic$1@news.equus.crt1.net...
j'essaie de créer un lien d'intégrité référentielle
par macro (exécuter
code
SQL)
une intégrité référentielle qui ferait ON DELETE
CASCADE
je buche depuis 4 jours , à s'en rendre folle
pourriez-vous m'aider ?
d'avance merci
si vous me répondez en VB merci d'expliquer avec
précision où on met que
champ, de quelle table avec précision parceque je ne
comprends rien au vb.
Access 2000
En SQL je ne sais pas faire, mais voici deux fonctions
VBA, la première
récupérée sur le site de Raymond et adaptée supprime une
relation.
Public Function Suppr_Relation(nTable As String,
nForeignTable As String) As
Boolean
On Error GoTo Err_Func
Dim db As DAO.Database, ix As Integer
Set db = CurrentDB()
Suppr_Relation = False
For ix = 0 To db.Relations.Count - 1
If db.Relations(ix).Table = nTable And
db.Relations(ix).ForeignTable
= nForeignTable Then
db.Relations.Delete db.Relations(ix).Name
Suppr_Relation = True
End If
Next ix
Set db = Nothing
Exit Function
Err_Func:
Suppr_Relation = False
End Function
Public Function Cre_Relation(dbName As String, nRelation
As String, nTable
As String, nForeignTable As String, lngAttrib As Long,
nField1 As String,
nForeignField1 As String, Optional nField2 As String,
Optional
nForeignField2 As String, Optional nField3 As String,
Optional
nForeignField3 As String)
'On crée une relation et définit ses propriétés.
Dim rel As DAO.Relation, chp1 As DAO.Field, chp2 As
DAO.Field, chp3 As
DAO.Field
Dim db As DAO.Database
Set db = DBEngine.Workspaces(0).OpenDatabase
(dbName) ' Autre base de
données ou bien
Set db = CurrentDB ' Autre base de données ou bien
Set rel = db.CreateRelation(nRelation, nTable,
nForeignTable, lngAttrib)
' On crée un champ dans la collection Fields de l'objet
Relation
' rel.Attributes = lngAttrib '
dbRelationUpdateCascade +
dbRelationDeleteCascade
' On ajoute le champ à l'objet Relation et l'objet
Set chp1 = rel.CreateField(nField1)
chp1.ForeignName = nForeignField1
rel.Fields.Append chp1
' Stop
If Len(Nz(nField2)) > 0 Then
Set chp2 = rel.CreateField(nField2)
chp2.ForeignName = nForeignField2
rel.Fields.Append chp2
End If
If Len(Nz(nField3)) > 0 Then
Set chp3 = rel.CreateField(nField3)
chp3.ForeignName = nForeignField3
rel.Fields.Append chp3
End If
db.Relations.Append rel
End Function
Exemple d'utilisation :
boolVar = Cre_Relation
("C:MonCheminMaBase.mdb", "Client_Commande",
"T_Client", "T_Commande", dbRelationUpdateCascade +
dbRelationDeleteCascade, "IdClient", "IdClient")
.
-----Message d'origine-----
Bonjour,
"ran" <duchemin@(nospam)ibelgique.com> a écrit dans le
message de news:
co9f1j$1qic$j'essaie de créer un lien d'intégrité référentielle
par macro (exécuter
code
SQL)
une intégrité référentielle qui ferait ON DELETE
CASCADE
je buche depuis 4 jours , à s'en rendre folle
pourriez-vous m'aider ?
d'avance merci
si vous me répondez en VB merci d'expliquer avec
précision où on met que
champ, de quelle table avec précision parceque je ne
comprends rien au vb.
Access 2000
En SQL je ne sais pas faire, mais voici deux fonctions
VBA, la première
récupérée sur le site de Raymond et adaptée supprime une
relation.
Public Function Suppr_Relation(nTable As String,
nForeignTable As String) As
Boolean
On Error GoTo Err_Func
Dim db As DAO.Database, ix As Integer
Set db = CurrentDB()
Suppr_Relation = False
For ix = 0 To db.Relations.Count - 1
If db.Relations(ix).Table = nTable And
db.Relations(ix).ForeignTable
= nForeignTable Then
db.Relations.Delete db.Relations(ix).Name
Suppr_Relation = True
End If
Next ix
Set db = Nothing
Exit Function
Err_Func:
Suppr_Relation = False
End Function
Public Function Cre_Relation(dbName As String, nRelation
As String, nTable
As String, nForeignTable As String, lngAttrib As Long,
nField1 As String,
nForeignField1 As String, Optional nField2 As String,
Optional
nForeignField2 As String, Optional nField3 As String,
Optional
nForeignField3 As String)
'On crée une relation et définit ses propriétés.
Dim rel As DAO.Relation, chp1 As DAO.Field, chp2 As
DAO.Field, chp3 As
DAO.Field
Dim db As DAO.Database
Set db = DBEngine.Workspaces(0).OpenDatabase
(dbName) ' Autre base de
données ou bien
Set db = CurrentDB ' Autre base de données ou bien
Set rel = db.CreateRelation(nRelation, nTable,
nForeignTable, lngAttrib)
' On crée un champ dans la collection Fields de l'objet
Relation
' rel.Attributes = lngAttrib '
dbRelationUpdateCascade +
dbRelationDeleteCascade
' On ajoute le champ à l'objet Relation et l'objet
Set chp1 = rel.CreateField(nField1)
chp1.ForeignName = nForeignField1
rel.Fields.Append chp1
' Stop
If Len(Nz(nField2)) > 0 Then
Set chp2 = rel.CreateField(nField2)
chp2.ForeignName = nForeignField2
rel.Fields.Append chp2
End If
If Len(Nz(nField3)) > 0 Then
Set chp3 = rel.CreateField(nField3)
chp3.ForeignName = nForeignField3
rel.Fields.Append chp3
End If
db.Relations.Append rel
End Function
Exemple d'utilisation :
boolVar = Cre_Relation
("C:MonCheminMaBase.mdb", "Client_Commande",
"T_Client", "T_Commande", dbRelationUpdateCascade +
dbRelationDeleteCascade, "IdClient", "IdClient")
.
Depuis ton environnement VBA, va dans le menu Outils / Références et vérifie
Depuis ton environnement VBA, va dans le menu Outils / Références et vérifie
Depuis ton environnement VBA, va dans le menu Outils / Références et vérifie
-----Message d'origine-----
Bonjour,
"ran" a écrit dans
le message de news:
a9e801c4d6bb$f4291ce0$
ça ne fonctionne pas
access me dit qu'il ne reconnait pas la fonction
dbRelationUpdateCascade
Ce n'est pas une fonction, c'est une constante qui
appartient à la
bibliothèque DAO. Elle vaut 256 et
dbRelationDeleteCascade vaut 4096.
tu pourrais remplacer la constante par sa valeur, mais
ton code sera moins
lisible et moins portable.
Depuis ton environnement VBA, va dans le menu Outils /
Références et vérifie
que "Microsoft DAO 3.6 Object Library est cochée", sinon
recherche cette
référence et coche la.
et je ne comprends pas ce que représente nRelation
C'est le nom de la relation ; on ne le voit pas dans
l'interface Access mais
il existe et n'est accessible qu'en VBA .
Tus peux concatémer tes deux noms de tables, par exemple
"T_Client_T_Commandes"
@ +
Etienne
.
-----Message d'origine-----
Bonjour,
"ran" <anonymous@discussions.microsoft.com> a écrit dans
le message de news:
a9e801c4d6bb$f4291ce0$a601280a@phx.gbl...
ça ne fonctionne pas
access me dit qu'il ne reconnait pas la fonction
dbRelationUpdateCascade
Ce n'est pas une fonction, c'est une constante qui
appartient à la
bibliothèque DAO. Elle vaut 256 et
dbRelationDeleteCascade vaut 4096.
tu pourrais remplacer la constante par sa valeur, mais
ton code sera moins
lisible et moins portable.
Depuis ton environnement VBA, va dans le menu Outils /
Références et vérifie
que "Microsoft DAO 3.6 Object Library est cochée", sinon
recherche cette
référence et coche la.
et je ne comprends pas ce que représente nRelation
C'est le nom de la relation ; on ne le voit pas dans
l'interface Access mais
il existe et n'est accessible qu'en VBA .
Tus peux concatémer tes deux noms de tables, par exemple
"T_Client_T_Commandes"
@ +
Etienne
.
-----Message d'origine-----
Bonjour,
"ran" a écrit dans
le message de news:
a9e801c4d6bb$f4291ce0$
ça ne fonctionne pas
access me dit qu'il ne reconnait pas la fonction
dbRelationUpdateCascade
Ce n'est pas une fonction, c'est une constante qui
appartient à la
bibliothèque DAO. Elle vaut 256 et
dbRelationDeleteCascade vaut 4096.
tu pourrais remplacer la constante par sa valeur, mais
ton code sera moins
lisible et moins portable.
Depuis ton environnement VBA, va dans le menu Outils /
Références et vérifie
que "Microsoft DAO 3.6 Object Library est cochée", sinon
recherche cette
référence et coche la.
et je ne comprends pas ce que représente nRelation
C'est le nom de la relation ; on ne le voit pas dans
l'interface Access mais
il existe et n'est accessible qu'en VBA .
Tus peux concatémer tes deux noms de tables, par exemple
"T_Client_T_Commandes"
@ +
Etienne
.
As-tu esssayé de remplacer dbRelationDeleteCascade par 4096 ?
As-tu esssayé de remplacer dbRelationDeleteCascade par 4096 ?
As-tu esssayé de remplacer dbRelationDeleteCascade par 4096 ?
Essaye de lancer le code :
BoolVar = Cre_Relation.... avec le générateur de code et
non le générateur
d'expression.
Essaye de lancer le code :
BoolVar = Cre_Relation.... avec le générateur de code et
non le générateur
d'expression.
Essaye de lancer le code :
BoolVar = Cre_Relation.... avec le générateur de code et
non le générateur
d'expression.