Problème type field : dbText ou rien

Bonjour,

Quelqu'un a-t-il trouvé la réponse à ce problème?
(suite discution https://forums.commentcamarche.net/forum/forum/affich-8352936-access-vba-probleme-type-field )

Il n'y a que dbMemo et dbText qui fonctionnent. Je ne peux donc pas créer un champ de type numérique.

Merci par avance pour votre aide.

Configuration: Windows / Chrome 81.0.4044.129

5 réponses

  1. J'ai intégré le paramètre "chaine vide autorisée" à un champ type nunérique. "chaine" incompatible avec "numérique" => Eurêka!
    Encore merci pour ton aide!
    1. Contributeur
      parfait! peux-tu marquer la discussion comme résolue?
  2. Ok, je vais faire ça et je reviens.
    Cela dit, il suffit que je mette dbtext et tout fonctionne. Je n'ai pas précisé que j'ai réessayé sur une table vierge au cas où la table d'origine avait un problème ou une restriction qui m'avait échappé.
    1. Pardon,
      J'ai juste oublié la ligne end sub après end select.
      Basic c'est pour préciser que c'est du VBA, j'imagine. J'y penserai la prochaine fois.
      Merci de ton aide.
      1. Bonjour Yg_be et merci de ton aide,

        Ça fait plaisir de voir une communauté prête à aider!

        Private Sub basMacro1()

        On Error GoTo err
        Dim oDb As DAO.Database
        Dim otbl As DAO.TableDef
        Dim ofld As DAO.Field
        Set oDb = CurrentDb
        Set otbl = oDb.TableDefs("table1")
        'Etape 1 : Créer le champ
        Set ofld = otbl.CreateField("au" & Date)
        'Etape 2 : Définit les propriétés
        ofld.Type = dbNumeric
        ofld.AllowZeroLength = True 'Chaine vide autorisée : oui
        ofld.Required = False 'Null interdit : non
        'Etape 3 : Ajout du champ à la table
        otbl.Fields.Append ofld
        'Rafraichit la collection
        otbl.Fields.Refresh
        MsgBox ofld.Name
        'suppression champ
        otbl.Fields.Delete ofld.Name
        Exit Sub
        err:
        Select Case err.Number
        'Si impossible de trouver l'élément dans la collection
        Case 3265
        MsgBox "impossible de trouver ta table: " & strT_archiveshdv
        Case 3010, 3191
        MsgBox "Le champ " & Date & " existe déjà"
        Case Else: MsgBox "Erreur inconnue. Avez-vous fermé la table?"
        End Select

        J'ai essayé createfield(nom,type) aussi mais sans succès.
        Je pensais que c'était à cause de la date dans le nom du champ mais en la supprimant ça ne fonctionne pas non plus.
        Je n'ai plus d'idée…
        1. Contributeur
          peux-tu partager le code complet de ta sub? merci aussi de spécifier "basic" dans les balises de code.
        2. Contributeur
          la première chose à faire, c'est de déterminer quelle ligne de code cause l'erreur.
          supprime donc la ligne
           On Error GoTo err
          , qui te cache cela.

          je pense qu'ainsi, tu découvriras et comprendra rapidement ton erreur.