j'ai une table avec une clé primaire sur deux champs,
compte tenu de la modification du programme cette clé doit passer à
trois champs. les deux champs initiaux + un (ce champ existe déjà dans
la table)
il n'est pas possible de modifier manuellement la structure, fichier mde
distribué
à 200 exemplaires.
si une bonne âme avait sous le coude une fonction VBA pour effectuer
cette modification
je l'en remercie par avance
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
eric
J'ai fait un truc de ce genre pour que chaque champs d'une table accepte des chaines vides. Lis le script en dessous. Si ca t'éclaire pas envoie moi un mail.
@+
Option Compare Database
' Fonction pour vérifier que tous les champs Text de la base (sauf les INDEXES) autorisent les chaines vides ' 1 - copier le code ' 2 - ouvrir la base ' 3 - dans la groupe MODULE faire nouveau ' 4 - coller le code ' 5 - exécuter le code
Sub autorise_chaine_vide()
Set Mabase = DBEngine.Workspaces(0).Databases(0)
For Each table In Mabase.TableDefs
' vérifie que la table n'est pas une table système
' verifie si le champ fait partie d'un index d'une clé primaire
indexe = False For Each idx In table.Indexes If idx.Primary Then For Each colonne In idx.Fields If colonne.Name Like champ.Name Then 'MsgBox "primaire" indexe = True Exit For End If Next End If If indexe Then Exit For End If Next
For i = 0 To champ.Properties.Count - 1 'MsgBox champ.Properties(i).Name
' modifie la propriété du champs si nécessaire
If champ.Properties(i).Name Like "AllowZeroLength" And Not indexe And champ.Type = 10 Then If Not champ.Properties(i).Value Then champ.Properties(i).Value = True 'MsgBox table.Name 'MsgBox champ.Properties(i).Value & "changé " End If End If Next i Next End If
Next MsgBox "Vérification des champs terminée !" Set champ = Nothing Set Mabase = Nothing
End Sub
J'ai fait un truc de ce genre pour que chaque champs d'une
table accepte des chaines vides.
Lis le script en dessous. Si ca t'éclaire pas envoie moi
un mail.
@+
Option Compare Database
' Fonction pour vérifier que tous les champs Text de la
base (sauf les INDEXES) autorisent les chaines vides
' 1 - copier le code
' 2 - ouvrir la base
' 3 - dans la groupe MODULE faire nouveau
' 4 - coller le code
' 5 - exécuter le code
Sub autorise_chaine_vide()
Set Mabase = DBEngine.Workspaces(0).Databases(0)
For Each table In Mabase.TableDefs
' vérifie que la table n'est pas une table système
' verifie si le champ fait partie d'un index d'une clé
primaire
indexe = False
For Each idx In table.Indexes
If idx.Primary Then
For Each colonne In idx.Fields
If colonne.Name Like champ.Name
Then
'MsgBox "primaire"
indexe = True
Exit For
End If
Next
End If
If indexe Then
Exit For
End If
Next
For i = 0 To champ.Properties.Count - 1
'MsgBox champ.Properties(i).Name
' modifie la propriété du champs si nécessaire
If champ.Properties(i).Name
Like "AllowZeroLength" And Not indexe And champ.Type = 10
Then
If Not champ.Properties(i).Value Then
champ.Properties(i).Value = True
'MsgBox table.Name
'MsgBox champ.Properties(i).Value
& "changé "
End If
End If
Next i
Next
End If
Next
MsgBox "Vérification des champs terminée !"
Set champ = Nothing
Set Mabase = Nothing
J'ai fait un truc de ce genre pour que chaque champs d'une table accepte des chaines vides. Lis le script en dessous. Si ca t'éclaire pas envoie moi un mail.
@+
Option Compare Database
' Fonction pour vérifier que tous les champs Text de la base (sauf les INDEXES) autorisent les chaines vides ' 1 - copier le code ' 2 - ouvrir la base ' 3 - dans la groupe MODULE faire nouveau ' 4 - coller le code ' 5 - exécuter le code
Sub autorise_chaine_vide()
Set Mabase = DBEngine.Workspaces(0).Databases(0)
For Each table In Mabase.TableDefs
' vérifie que la table n'est pas une table système
' verifie si le champ fait partie d'un index d'une clé primaire
indexe = False For Each idx In table.Indexes If idx.Primary Then For Each colonne In idx.Fields If colonne.Name Like champ.Name Then 'MsgBox "primaire" indexe = True Exit For End If Next End If If indexe Then Exit For End If Next
For i = 0 To champ.Properties.Count - 1 'MsgBox champ.Properties(i).Name
' modifie la propriété du champs si nécessaire
If champ.Properties(i).Name Like "AllowZeroLength" And Not indexe And champ.Type = 10 Then If Not champ.Properties(i).Value Then champ.Properties(i).Value = True 'MsgBox table.Name 'MsgBox champ.Properties(i).Value & "changé " End If End If Next i Next End If
Next MsgBox "Vérification des champs terminée !" Set champ = Nothing Set Mabase = Nothing