Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Access 2002] - Analyse des tables

5 réponses
Avatar
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

5 réponses

Avatar
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" a écrit dans le message de news:
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




Avatar
Jeff
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" a écrit dans le message de news:

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" a écrit dans le message de news:
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








Avatar
Eric
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" a écrit dans le message de news:

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" a écrit dans le message de news:
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



Avatar
Jeff
Bonjour

Merci pour la réponse.

Cette procédure fonctionne parfaitement.

Cordialement

Jeff

"Eric" a écrit dans le message de news:
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" a écrit dans le message de news:

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" a écrit dans le message de news:
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





Avatar
Jeff
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" a écrit dans le message de news:
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