[Access 2002] - Analyse des tables

Le
Jeff
Bonjour

Je souhaiterais analyser toutes les tables de ma base à recherche
des champs numéroauto pour effectuer la "remise en état"
des ces champs.

Je n'arrive pour ma part qu'à avoir le type du champ (Entier Long)
et pas NuméroAuto.

Si quelqu'un à une information sur le sujet, je suis preneur.

Merci d'avance

Cordialement

Jeff
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacques
Le #6284731
Bonjour,

Pour les chmaps NumAuto , il faut vider les tables. Et demander un
compactage de la bd
la fermeture. Cela remet le champ NumAuto à zéro.

Jacques(BE)

"Jeff" 464ad6c4$0$5072$
Bonjour

Je souhaiterais analyser toutes les tables de ma base à recherche
des champs numéroauto pour effectuer la "remise en état"
des ces champs.

Je n'arrive pour ma part qu'à avoir le type du champ (Entier Long)
et pas NuméroAuto.

Si quelqu'un à une information sur le sujet, je suis preneur.

Merci d'avance

Cordialement

Jeff




Jeff
Le #6284711
Bonjour

Merci pour la réponse.

Le but n'est pas de remettre les champs à zéro
mais corriger une erreur survenue aprés la conversion
Access 2.0 -> Access 2002.

je souhaite simplement pour gagner du temps faire
une fonction pour détecter dans l'ensemble des tables de
la base les champs de type NuméroAuto pour corriger
leur valeur à la main (cf message précédent dans le groupe).

Cordialement

Jeff

"Jacques"
Bonjour,

Pour les chmaps NumAuto , il faut vider les tables. Et demander un
compactage de la bd
la fermeture. Cela remet le champ NumAuto à zéro.

Jacques(BE)

"Jeff" 464ad6c4$0$5072$
Bonjour

Je souhaiterais analyser toutes les tables de ma base à recherche
des champs numéroauto pour effectuer la "remise en état"
des ces champs.

Je n'arrive pour ma part qu'à avoir le type du champ (Entier Long)
et pas NuméroAuto.

Si quelqu'un à une information sur le sujet, je suis preneur.

Merci d'avance

Cordialement

Jeff








Eric
Le #6284551
Bonjour,

A tester:

Sub ChercherChampNumAuto()
'Charger la référence Microsoft DAO 3.x Object Library
Dim bd As DAO.Database
Dim t As DAO.TableDef
Dim fld As DAO.Field
Set bd = CurrentDb
For Each t In bd.TableDefs
' Elimination des tables-système
If Left(t.Name, 4) <> "MSys" Then
For Each fld In t.Fields
If (fld.Attributes And dbAutoIncrField) = _
dbAutoIncrField Then
MsgBox fld.Name & _
" est de type AutoIncrement dans la table " & _
t.Name
Exit For 'un seul NumAuto par table
End If
Next fld
End If
Next t
Set fld = Nothing
Set t = Nothing
Set bd = Nothing
End Sub

Bonjour

Merci pour la réponse.

Le but n'est pas de remettre les champs à zéro
mais corriger une erreur survenue aprés la conversion
Access 2.0 -> Access 2002.

je souhaite simplement pour gagner du temps faire
une fonction pour détecter dans l'ensemble des tables de
la base les champs de type NuméroAuto pour corriger
leur valeur à la main (cf message précédent dans le groupe).

Cordialement

Jeff

"Jacques"
Bonjour,

Pour les chmaps NumAuto , il faut vider les tables. Et demander un
compactage de la bd
la fermeture. Cela remet le champ NumAuto à zéro.

Jacques(BE)

"Jeff" 464ad6c4$0$5072$
Bonjour

Je souhaiterais analyser toutes les tables de ma base à recherche
des champs numéroauto pour effectuer la "remise en état"
des ces champs.

Je n'arrive pour ma part qu'à avoir le type du champ (Entier Long)
et pas NuméroAuto.

Si quelqu'un à une information sur le sujet, je suis preneur.

Merci d'avance

Cordialement

Jeff









--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Jeff
Le #6284521
Bonjour

Merci pour la réponse.

Cette procédure fonctionne parfaitement.

Cordialement

Jeff

"Eric" ur%
Bonjour,

A tester:

Sub ChercherChampNumAuto()
'Charger la référence Microsoft DAO 3.x Object Library
Dim bd As DAO.Database
Dim t As DAO.TableDef
Dim fld As DAO.Field
Set bd = CurrentDb
For Each t In bd.TableDefs
' Elimination des tables-système
If Left(t.Name, 4) <> "MSys" Then
For Each fld In t.Fields
If (fld.Attributes And dbAutoIncrField) = _
dbAutoIncrField Then
MsgBox fld.Name & _
" est de type AutoIncrement dans la table " & _
t.Name
Exit For 'un seul NumAuto par table
End If
Next fld
End If
Next t
Set fld = Nothing
Set t = Nothing
Set bd = Nothing
End Sub

Bonjour

Merci pour la réponse.

Le but n'est pas de remettre les champs à zéro
mais corriger une erreur survenue aprés la conversion
Access 2.0 -> Access 2002.

je souhaite simplement pour gagner du temps faire
une fonction pour détecter dans l'ensemble des tables de
la base les champs de type NuméroAuto pour corriger
leur valeur à la main (cf message précédent dans le groupe).

Cordialement

Jeff

"Jacques"
Bonjour,

Pour les chmaps NumAuto , il faut vider les tables. Et demander un
compactage de la bd
la fermeture. Cela remet le champ NumAuto à zéro.

Jacques(BE)

"Jeff" 464ad6c4$0$5072$
Bonjour

Je souhaiterais analyser toutes les tables de ma base à recherche
des champs numéroauto pour effectuer la "remise en état"
des ces champs.

Je n'arrive pour ma part qu'à avoir le type du champ (Entier Long)
et pas NuméroAuto.

Si quelqu'un à une information sur le sujet, je suis preneur.

Merci d'avance

Cordialement

Jeff









--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr





Jeff
Le #6281751
Bonjour à tous

Avec l'aide d'Eric (merci !!), voici les procédures pour remettre en état
les numéroautos aprés conversion Access 2.0 -> Access 2002

1 formulaire, un bouton de commande (Commande0), une liste (Liste1)

Option Compare Database
Option Explicit

Sub ChercherChampNumAuto()

Dim bd As DAO.Database
Dim t As DAO.TableDef
Dim fld As DAO.Field
Set bd = CurrentDb
For Each t In bd.TableDefs
' Elimination des tables-système
If Left(t.Name, 4) <> "MSys" Then
For Each fld In t.Fields
If (fld.Attributes And dbAutoIncrField) = dbAutoIncrField
Then
Arrange t.Name, fld.Name
Liste1.AddItem t.Name & ";" & fld.Name
Exit For 'un seul NumAuto par table
End If
Next fld
End If
Next t
Set fld = Nothing
Set t = Nothing
Set bd = Nothing

End Sub

Private Sub Commande0_Click()

ChercherChampNumAuto

End Sub

Private Sub Arrange(strTable As String, strChamp As String)

Dim db As DAO.Database, mj As DAO.Recordset
Dim lngCpte As Long

lngCpte = Nz(DMax("[" & strChamp & "]", "[" & strTable & "]"), 0) + 1
Set db = CurrentDb
Set mj = db.OpenRecordset(strTable)
mj.AddNew
mj(strChamp) = lngCpte
mj.Update
mj.Close
Set mj = Nothing
db.Execute ("DELETE * FROM [" & strTable & "] WHERE [" & strChamp & "]="
& lngCpte)
db.Close
Set db = Nothing

End Sub

Cordialement

Jeff

"Jeff" 464ad6c4$0$5072$
Bonjour

Je souhaiterais analyser toutes les tables de ma base à recherche
des champs numéroauto pour effectuer la "remise en état"
des ces champs.

Je n'arrive pour ma part qu'à avoir le type du champ (Entier Long)
et pas NuméroAuto.

Si quelqu'un à une information sur le sujet, je suis preneur.

Merci d'avance

Cordialement

Jeff



Publicité
Poster une réponse
Anonyme