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...