Bonjour,
j'ai crée une application qui permet de modifier les données excel d'un autre fichier excel sans l'ouvrir (à l'aide de RECORDSET). J'utilise donc une requête SQL avec update qui va récupéré les champs (plus la clef primaire) dans un userform, Quand les champs sont uniquement de format texte il n'y a pas de soucis mais un champ me pose problème car il peut contenir soit une date soit du texte. Lorsque je modifie une date par une autre date il n' y a pas de soucis mais quand je modifie du texte en date que faire?
Voici mon code:
Je rajoutte en plus un échantillon de ma base de données.Merci de m'aider
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 Sub modifier_poste() ' Procédure qui va modifier les données postes Dim cn, cn1 As ADODB.Connection Dim rst, rstmanager As ADODB.Recordset Dim texte_SQL As String Dim test As Boolean texte_SQL = "UPDATE [" & onglet_source & "$] set " ' On initialise la requête SQL If IP_HT <> Modifier_Postes.zt_ipht Then texte_SQL = texte_SQL & "[IP-HT]=#" & Modifier_Postes.zt_ipht & "#, " End If texte_SQL = Left(texte_SQL, Len(texte_SQL) - 2) 'On enlève les 2 derniers caractères de la requête SQL texte_SQL = texte_SQL & " where [N° Immo]='" & CStr(Modifier_Postes.zl_numero_immo) & "'" 'On rajoute le critère Set cn = New ADODB.Connection 'On établit la connection cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & chemin_base & ";Extended Properties=Excel 8.0;" MsgBox texte_SQL Set rst = New ADODB.Recordset 'objet rst( permettant d'interroger la base) créé Set rst = cn.Execute(texte_SQL) ' Exécution requête Set rst = Nothing 'On détruit l'objet RST End Sub
Partager