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 SubL'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,