Connection ADODB - forcer la conversion numérique

Bonjour à tous,

Je suis vraiment bloqué, quelqu'un saurait-il m'aider ?

J'essaie de faire fonctionner le code (simplifié ici) suivant :

Exemple(Fichier As String, NomFeuille As String)

    Dim Cn As ADODB.Connection
    Dim Cd As ADODB.Command
    Dim Rst As ADODB.Recordset

    Set Cn = New ADODB.Connection
    '--- Connexion ---
    With Cn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
            & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
        .Open
    End With
    '-----------------

    For i = 1 To X
                strSQL = "UPDATE [" & NomFeuille & "$] SET " & _
                    "`AModif` = '" & AModif(i) & "' WHERE `Id` = " & Id(i)
                Cn.Execute strSQL, DbFailOnError
    Next i

    '--- Fermeture connexion ---
    Cn.Close
    Set Cn = Nothing
    Set Cd = Nothing

End Sub

L'idée est de :

1) charger "X" combinaisons "Id(i)" et "AModif(i)" d'un fichier source (fait dans une macro précédente).

2) remplacer avec Amodif(i) les valeurs d'un autre fichier (fermé) en colonne "AModif" si la colonne "Id" contient une des valeurs de Id(i). Pour que la macro fonctionne rapidement, je voudrais utiliser une connection ADODB et utiliser un code SQL UPDATE en conséquence.

Malheureusement dans mon fichier fermé, la colonne Id contient tantôt des valeurs numériques, tantôt des valeurs textes ! Evidemment, la macro ne fonctionne pas si VBA a l'impression que la colonne Id est du texte.

Comment faire pour "forcer" VBA/SQL à considérer la colonne Id comme du numérique ?

J'espère avoir été clair et que quelqu'un saura m'aider, car je suis vraiment bloqué.

Merci et bonne soirée,

Rechercher des sujets similaires à "connection adodb forcer conversion numerique"