creal69360
XLDnaute Junior
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. Je voudrais donc savoir comment faire pour modifier le type de donnée en même tant que la donnée, voici mon code:
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
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. Je voudrais donc savoir comment faire pour modifier le type de donnée en même tant que la donnée, voici mon code:
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