Connaître les datatype adodb compatibles avec les types de données access, en .net

Contenu du snippet

Ce morceau de code .NET permet de créer une base de données Access.
Cette base contiendra tous les types de données compatibles avec les DataType ADODB.

Cela permettra par exemple pour ceux qui souhaitent construire une base de données Access de savoir que le type de données Entier Long est créé à partir du type ADODB.DataTypeEnum.adInteger.

Cela permet également de savoir par exemple que le type ADODB.DataTypeEnum.adBigInt n'est pas compatible avec Access et provoque une erreur lors de l'enregistrement de la table (et non lors de la création du champs).

Nécéssite les références :
Microsoft Ado Ext. 2.8 for DLL and Security.
Microsoft ActiveX Data Objects 2.8 Library

Source / Exemple :


Private Sub Button_Vérifie_ADOX_DataTypeEnum_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Vérifie_ADOX_DataTypeEnum.Click

        'Ce code permet de connaître tous les DataType disponibles dans ADODB.DataTypeEnum compatibles dans une base de données Access
        'Les tables qui sont présentes dans la base créée contiennent 1 seul champs avec le type correspondant au DataType
        'Les tables qui ne sont pas présentes dans la base ne sont pas compatibles avec une base Access
        '
        ' Ajouter les références :
        ' Microsoft Ado Ext. 2.8 for DLL and Security.
        ' Microsoft ActiveX Data Objects 2.8 Library

        'Crée une boîte de dialogue pour sauvegarder la base de données Access
        Dim sfd As New SaveFileDialog

        sfd.Filter = "Fichiers Access (*.mdb)|*.mdb|Tous les fichiers (*.*)|*.*"

        If sfd.ShowDialog = DialogResult.OK Then

            'Création de la base de données
            Dim catalogue As New ADOX.Catalog

            catalogue.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sfd.FileName & ";")

            'Création des tables compatibles
            crée_table_DataTypeEnum(catalogue, "adArray", ADODB.DataTypeEnum.adArray)
            crée_table_DataTypeEnum(catalogue, "adBigInt", ADODB.DataTypeEnum.adBigInt)
            crée_table_DataTypeEnum(catalogue, "adBinary", ADODB.DataTypeEnum.adBinary)
            crée_table_DataTypeEnum(catalogue, "adBoolean", ADODB.DataTypeEnum.adBoolean)
            crée_table_DataTypeEnum(catalogue, "adBSTR", ADODB.DataTypeEnum.adBSTR)
            crée_table_DataTypeEnum(catalogue, "adChapter", ADODB.DataTypeEnum.adChapter)
            crée_table_DataTypeEnum(catalogue, "adChar", ADODB.DataTypeEnum.adChar)
            crée_table_DataTypeEnum(catalogue, "adCurrency", ADODB.DataTypeEnum.adCurrency)
            crée_table_DataTypeEnum(catalogue, "adDate", ADODB.DataTypeEnum.adDate)
            crée_table_DataTypeEnum(catalogue, "adDBDate", ADODB.DataTypeEnum.adDBDate)
            crée_table_DataTypeEnum(catalogue, "adDBTime", ADODB.DataTypeEnum.adDBTime)
            crée_table_DataTypeEnum(catalogue, "adDBTimeStamp", ADODB.DataTypeEnum.adDBTimeStamp)
            crée_table_DataTypeEnum(catalogue, "adDecimal", ADODB.DataTypeEnum.adDecimal)
            crée_table_DataTypeEnum(catalogue, "adDouble", ADODB.DataTypeEnum.adDouble)
            crée_table_DataTypeEnum(catalogue, "adEmpty", ADODB.DataTypeEnum.adEmpty)
            crée_table_DataTypeEnum(catalogue, "adError", ADODB.DataTypeEnum.adError)
            crée_table_DataTypeEnum(catalogue, "adFileTime", ADODB.DataTypeEnum.adFileTime)
            crée_table_DataTypeEnum(catalogue, "adGUID", ADODB.DataTypeEnum.adGUID)
            crée_table_DataTypeEnum(catalogue, "adIDispatch", ADODB.DataTypeEnum.adIDispatch)
            crée_table_DataTypeEnum(catalogue, "adInteger", ADODB.DataTypeEnum.adInteger)
            crée_table_DataTypeEnum(catalogue, "adIUnknown", ADODB.DataTypeEnum.adIUnknown)
            crée_table_DataTypeEnum(catalogue, "adLongVarBinary", ADODB.DataTypeEnum.adLongVarBinary)
            crée_table_DataTypeEnum(catalogue, "adLongVarChar", ADODB.DataTypeEnum.adLongVarChar)
            crée_table_DataTypeEnum(catalogue, "adLongVarWChar", ADODB.DataTypeEnum.adLongVarWChar)
            crée_table_DataTypeEnum(catalogue, "adNumeric", ADODB.DataTypeEnum.adNumeric)
            crée_table_DataTypeEnum(catalogue, "adPropVariant", ADODB.DataTypeEnum.adPropVariant)
            crée_table_DataTypeEnum(catalogue, "adSingle", ADODB.DataTypeEnum.adSingle)
            crée_table_DataTypeEnum(catalogue, "adSmallInt", ADODB.DataTypeEnum.adSmallInt)
            crée_table_DataTypeEnum(catalogue, "adTinyInt", ADODB.DataTypeEnum.adTinyInt)
            crée_table_DataTypeEnum(catalogue, "adUnsignedBigInt", ADODB.DataTypeEnum.adUnsignedBigInt)
            crée_table_DataTypeEnum(catalogue, "adUnsignedInt", ADODB.DataTypeEnum.adUnsignedInt)
            crée_table_DataTypeEnum(catalogue, "adUnsignedSmallInt", ADODB.DataTypeEnum.adUnsignedSmallInt)
            crée_table_DataTypeEnum(catalogue, "adUnsignedTinyInt", ADODB.DataTypeEnum.adUnsignedTinyInt)
            crée_table_DataTypeEnum(catalogue, "adUserDefined", ADODB.DataTypeEnum.adUserDefined)
            crée_table_DataTypeEnum(catalogue, "adVarBinary", ADODB.DataTypeEnum.adVarBinary)
            crée_table_DataTypeEnum(catalogue, "adVarChar", ADODB.DataTypeEnum.adVarChar)
            crée_table_DataTypeEnum(catalogue, "adVariant", ADODB.DataTypeEnum.adVariant)
            crée_table_DataTypeEnum(catalogue, "adVarNumeric", ADODB.DataTypeEnum.adVarNumeric)
            crée_table_DataTypeEnum(catalogue, "adVarWChar", ADODB.DataTypeEnum.adVarWChar)
            crée_table_DataTypeEnum(catalogue, "adWChar", ADODB.DataTypeEnum.adWChar)

            MsgBox("Base créée")

        Else
            MsgBox("Abandon")

        End If

    End Sub

    Sub crée_table_DataTypeEnum(ByVal catalogue As ADOX.Catalog, ByVal dte_str As String, ByVal dte As Integer)

        Try

            'Création d'une nouvelle table contenant un seul champs avec le DataType compatible
            Dim table As New ADOX.Table

            table.Name = dte_str
            table.Columns.Append(dte_str, dte)

            catalogue.Tables.Append(table)

        Catch ex As Exception

            'Le DataType n'est pas compatible et a provoqué une erreur
            'La table n'est pas ajoutée dans la base

        End Try

    End Sub

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.