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

Macros et VBA Excel Discussion :

[VBA-E] Autoriser les null


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut [VBA-E] Autoriser les null
    Coucou,

    j'aurais besoin d'un dernier coup de main.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        With NewTable
            .Name = "Table1"
            .Columns.Append "MVS_SYSTEM_ID", adWChar, 20
            .Columns.Append "DATE", adDate
            .Columns.Append "TIME", adDate
            .Columns.Append "SERVICE_CLASS", adWChar, 20
            .Columns.Append "MIPS", adSingle
            .Columns.Append "ADJUST", adSingle
            .Columns.Append "TYPE", adWChar, 20
        End With
    j'ai ca pour la creation de ma BD.


    Or quand je veux y ajouter les données, comme la colonne ADJUST est vide à certaines lignes, j'ai l'erreur suivante :

    "Vous avez essayé d'affecter la valeur null à une variable qui n'est pas du type de données variant."

    j'ai donc tenté à tout hasard cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Columns.Append "ADJUST", adVariant
    En plus il m'avais mis le "V" de variant en majuscule j'etais sur que ca allait marcher...

    or j'aimaintenant l'erreur "type non valide" à la ligne suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NewBase.Tables.Append NewTable
    Je met le code complet (qui cree ma BD) :

    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
    Public Sub AjouterTable()
    'Creer une base par ADOX
    '-- Cocher la référence :Microsoft ADO Ext 2.x for dll
    Dim NewBase As ADOX.Catalog
    Dim NewTable As ADOX.Table
    Dim Chemin As String
     
    Chemin = ThisWorkbook.Path & "\bd1.mdb;"
     
        Set NewBase = New ADOX.Catalog
        NewBase.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                       "Data Source=" & Chemin & _
                       "Jet OLEDB:Engine Type=5;"
     
        Set NewTable = New ADOX.Table
        With NewTable
            .Name = "Table1"
            .Columns.Append "MVS_SYSTEM_ID", adWChar, 20
            .Columns.Append "DATE", adDate
            .Columns.Append "TIME", adDate
            .Columns.Append "SERVICE_CLASS", adWChar, 20
            .Columns.Append "MIPS", adSingle
            .Columns.Append "ADJUST", adVariant
            .Columns.Append "TYPE", adWChar, 20
        End With
        NewBase.Tables.Append NewTable
        Set NewTable = Nothing
        Set NewBase = Nothing
    End Sub
    Voilà si quelqu'un a une idée...

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    Bah non

    adWChar pour les string c'est tout...

    j'ai trouvé une solution de bricoleur

    comme ems cellules sont vides je met ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Columns.Append "ADJUST", adWChar, 1
    puis lors du remplissage je met ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Fields("ADJUST").Value = CStr(Sheets(i).Cells(j, 6).Value)

    J'ai trouvé ca un peu au pif je l'avoue et je pesne qu'il doit y avoir mieux donc je laisse le sujet ouvert, la solution sans bidouillage qui autorise les Null m'interesse bien !

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonjour

    pour autoriser les valeurs Null dans la nouvelle table, tu peux essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For j = 0 To NewTable.Columns.Count - 1
    NewTable.Columns(j).Attributes = adColNullable
    Next j

    bon apres midi
    michel

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    Haha,

    super silky est arrivé

    merci

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

Discussions similaires

  1. Forcer à autoriser les valeurs nulles
    Par David_Prog dans le forum Adaptive Server Enterprise
    Réponses: 10
    Dernier message: 10/06/2008, 17h57
  2. [CR10] Pquoi absence du message d'erreur sur les Nulls ?
    Par speed034 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 30/11/2004, 15h30
  3. comment autoriser les reférences croissée ??
    Par champion dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 13/09/2004, 10h11
  4. [VBA-E] Effacer les doubles dans 1 colonne grace à une macro
    Par Stef.proxi dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/08/2004, 15h44
  5. [VBA-E]modifier les attributs d'un commentaire dans une cellule
    Par Olivier vb dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/03/2004, 10h26

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