IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

convertir les codes de type en nom textuel. [AC-2003]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut convertir les codes de type en nom textuel.
    bonjour

    je suis un newbi en access et je voudrais savoir s'il existait quelque par une référence éditée par ms pour me dire quelle est le nom textuel (localisé) du fLoop.Type sachant que cet attribut retourne un entier. Est ce qu'il exite quelque chose tout fait.

    Question complémentaire, je cherche a éliminer de mon catalogue les tables systeme d'access, mais je ne sais pas sur quelle propriété les reconnaitre. vous avez une idée?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    Function action(catalogueName As String)
       Dim bdd As DAO.Database
        Dim tdfNew As DAO.TableDef
        Dim tdfLoop As DAO.TableDef
        Dim fLoop As DAO.Field
        Dim sql As String
        Dim count As Integer
     
     
        Set bdd = Application.CurrentDb
        count = 0
     
        If TableExists(catalogueName) Then
            sql = "DELETE * FROM " & catalogueName
            bdd.Execute sql
        Else
            sql = "CREATE TABLE " & catalogueName & _
                  " ( tableName  Text(64), fieldName Text(64), typeColumn Text(64), dateCreated Date, position integer, required text(10) )"
            bdd.Execute sql
            sql = "ALTER TABLE " & catalogueName & " ADD CONSTRAINT I_Tablefield PRIMARY KEY ( tableName, fieldName )"
             bdd.Execute sql    
        End If
     
     
     
       With bdd
            For Each tdfLoop In .TableDefs
               If tdfLoop.Name = catalogueName Then
                'Msgbox "skip " & tdfLoop.Name
     
               'help me!
               'if tdfLoop.Properties
                'MsgBox "skip " & tdfLoop.Name
     
     
               Else
                For Each fLoop In tdfLoop.Fields
                  sql = "insert into " & catalogueName & " ( tableName, fieldName, typeColumn, DateCreated, position, required ) " & _
                      " VALUES ( ' " & fLoop.SourceTable _
                        & "','" & fLoop.Name _
                        & "','" & fLoop.Type & " (" & fLoop.Size & ")" _
                        & "','" & tdfLoop.DateCreated _
                        & "','" & fLoop.OrdinalPosition _
                        & "','" & fLoop.Required _
                    & "')"
                    count = count + 1
                    .Execute sql
     
                    Next fLoop
                End If
            Next tdfLoop
        End With
        action = count
    End Function

  2. #2
    Membre confirmé
    Avatar de antoinev2
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 177
    Par défaut
    Bonjour,

    pour distinguer les tables système des autres, tu peux au moins le faire avec leur nom, qui commence par "MSys".

    Pour ta 1e question, je dirais non mais à confirmer.

  3. #3
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    c'est ce que j'ai fait ... et ça marche aussi pour les tables en cours d'effacement.


    bon vu que access affiche les types en lettre et non en code, c'est qu'il y a probablement une fonction native qui converti ce type en son nom. Quelqu'un s'il vous plais !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
               strdeb = Left(tdfLoop.Name, 4)
               If tdfLoop.Name = catalogueName Then
                 'Msgbox "skip " & tdfLoop.Name
                ElseIf strdeb = "MSys" Then
                 'Msgbox "skip " & tdfLoop.Name
                ElseIf strdeb = "~TMP" Then
                 'Msgbox "skip " & tdfLoop.Name
                 '  For Each pLoop In tdfLoop.Properties
                 '   MsgBox "skip: " & pLoop.Name & " = " & pLoop.value
                 '  Next pLoop

  4. #4
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    j'ai trouvé un truc suffisant. http://allenbrowne.com/func-06.html

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/04/2012, 20h03
  2. erreur bizarre en java sur les codes contenant <TYPE>
    Par doderic dans le forum Langage
    Réponses: 6
    Dernier message: 23/08/2009, 18h52
  3. Convertir les codes HTML en équivalent pour JavaScript
    Par bubulemaster dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/08/2009, 11h20
  4. Pour convertir les dates aux types "datetime" sous
    Par nnn2050 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/01/2006, 15h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo