Problème type field : dbText ou rien

coudgrizou -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
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. coudgrizou
     
    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…
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      peux-tu partager le code complet de ta sub? merci aussi de spécifier "basic" dans les balises de code.
      0
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      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.
      0
  2. coudgrizou
     
    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.
    0
  3. coudgrizou
     
    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é.
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. coudgrizou
     
    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!
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      parfait! peux-tu marquer la discussion comme résolue?
      0