[Résolu] MAJ d'une table access par excel en VBA
Dernière réponse : dans Programmation
Bonjour, je vous explique mon pb.
je souhaiterai mettre a jour une table acces à partir de mon fichier excel.
pour le moment en suivant quelque conseils de ce forum j'arrive à écrire dans ma table access mais toujours à la fin de la colonne concernée.
je souhaiterai en effet réécrire sur une valeur déjà existante pour la remplacer par une autre en fonction d'un numéro de dossier.
dans mon fichier excel j'ai une colonne "numéro de dossier" avec laquel je souhaite retrouver ma ligne dans access puis une colonne "Statut" qui me permettrait de definir un état de ce numéro de dossier.
voila le code que j'utilise pour le moment qui me permet d'écrire à la fin de ma colonne:
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=C:\Tables\Table.mdb;"
Set rs = New ADODB.Recordset
rs.Open "Table1", cn, adOpenKeyset, adLockOptimistic, adCmdTable
r = 3 ' the start row in the worksheet
Do While Len(Range("F" & r).Formula) > 0
With rs
.AddNew
.Fields("Statut") = Range("D" & r).Value
.Update 'stores the new record
End With
r = r + 1 ' next row
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
j'ai aussi essayé ça:
Dim cd As New ADODB.Command
cd.ActiveConnection = cn
cd.CommandText = "SET 'Table1' SET 'Statut' = " & Range("D" & r).Value & " " & "WHERE 'Num_Client' = " & Range("F" & r).Value & ""
mais finalement je n'arrive pas à le faire appliquer à ma base access
voila merci pour votre aide
je souhaiterai mettre a jour une table acces à partir de mon fichier excel.
pour le moment en suivant quelque conseils de ce forum j'arrive à écrire dans ma table access mais toujours à la fin de la colonne concernée.
je souhaiterai en effet réécrire sur une valeur déjà existante pour la remplacer par une autre en fonction d'un numéro de dossier.
dans mon fichier excel j'ai une colonne "numéro de dossier" avec laquel je souhaite retrouver ma ligne dans access puis une colonne "Statut" qui me permettrait de definir un état de ce numéro de dossier.
voila le code que j'utilise pour le moment qui me permet d'écrire à la fin de ma colonne:
Citation :
Sub ADOFromExcelToAccess()Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=C:\Tables\Table.mdb;"
Set rs = New ADODB.Recordset
rs.Open "Table1", cn, adOpenKeyset, adLockOptimistic, adCmdTable
r = 3 ' the start row in the worksheet
Do While Len(Range("F" & r).Formula) > 0
With rs
.AddNew
.Fields("Statut") = Range("D" & r).Value
.Update 'stores the new record
End With
r = r + 1 ' next row
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
j'ai aussi essayé ça:
Dim cd As New ADODB.Command
cd.ActiveConnection = cn
cd.CommandText = "SET 'Table1' SET 'Statut' = " & Range("D" & r).Value & " " & "WHERE 'Num_Client' = " & Range("F" & r).Value & ""
mais finalement je n'arrive pas à le faire appliquer à ma base access
voila merci pour votre aide
Autres pages sur : resolu maj table access excel vba
Lassé par la pub ? Créez un compte
merci de ta réponse, j'ai adapté en mettant:
cd.CommandText = "UPDATE Table1 SET Statut = " & "Clos" & " WHERE Num_Client = " & "123" & ""
pour faire un test et rien ne se passe ma table ne se met pas à jour
je n'arrive pas à trouver pourquoi ça bloque, si quelqu'un a une idée je suis preneur
merci d'avance
cd.CommandText = "UPDATE Table1 SET Statut = " & "Clos" & " WHERE Num_Client = " & "123" & ""
pour faire un test et rien ne se passe ma table ne se met pas à jour
je n'arrive pas à trouver pourquoi ça bloque, si quelqu'un a une idée je suis preneur
merci d'avance
Lorsque tu mets une chaine de caractères dans une table, tu dois la mettre entre quotes ('), sinon la base pense que tu fais réfèrence à un champ de la table.
Tu dois donc faire:
Petit PS: le & "" final ne sert à rien dans tes requêtes
Tu dois donc faire:
cd.CommandText = "UPDATE Table1 SET Statut = '" & "Clos" & "' WHERE Num_Client = " & "123"
Petit PS: le & "" final ne sert à rien dans tes requêtes
j'ai adapté et réduit au max juste histoire de voir si j'arrivais a faire quelque chose dans ma base access et donc ça donne :
et donc il ne se passe toujours rien dans la table
il y a un truc qui m'échappe mais je ne vois pas quoi...
Sub ADOFromExcelToAccess()
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
Dim cd As New ADODB.Command
' connect to the Access database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=C:\Tables\Enregistrement.mdb;"
' open a recordset
Set rs = New ADODB.Recordset
rs.Open "Table1", cn, adOpenKeyset, adLockOptimistic, adCmdTable
cd.ActiveConnection = cn
cd.CommandText = "UPDATE Table1 SET Statut = '" & "Clos" & "' WHERE Num_Client = " & "123"
MsgBox (cd.CommandText) 'debug
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
et donc il ne se passe toujours rien dans la table
il y a un truc qui m'échappe mais je ne vois pas quoi...
oui je l'avais mis puis retiré et pour le coup oublié de remettre lol
je l'ai donc remis et j'ai le droit a une belle erreur:
Erreur d'exécution '-2147217900 (80040e14)':
Erreur de syntaxe dans la chaine dans l'expression 'Num_Client = '123'.
une idée ?
en tout cas merci pour votre aide ça m'aide à avancer
je l'ai donc remis et j'ai le droit a une belle erreur:
Erreur d'exécution '-2147217900 (80040e14)':
Erreur de syntaxe dans la chaine dans l'expression 'Num_Client = '123'.
une idée ?
en tout cas merci pour votre aide ça m'aide à avancer
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumTable access vers excel vba
- solutionsExport access vers excel vba
- ForumVba access vers excel
- ForumConvertisseur vba excel - vba access
- ForumVba requete access dans excel
- ForumVba base access excel
- ForumCreer une table dans access depuis excel
- ForumExporter une table access en excel
- ForumExporter un table access vers excel
- ForumTransferer table access vers excel
- Voir plus