Je cherche à savoir s'il est possible de manipuler les données d'un fichier
DBase avec VB dans un classeur Excel.
Peut on ajouter, modifier et supprimer des enregistrements ?
J'ai importé les données d'un fichier excel avec "Données" "Données
externes" "Importer les données"
mais les modifications ne sont pas reportées dans le fichier dbf et une
actualisation réinitialise les données initiales.
Pouvez-vous m'expliquer comment faire
Merci de votre aide.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
SilkRoad
bonjour Phil
je ne suis pas sur que ce soit exactement ce que tu recherches mais ces exemples permettent de piloter des fichiers .dbf (DBase) depuis Excel
Sub piloterDBase_ajoutEnregistrement() 'necessite d'activer la reference 'Microsoft ActiveX Data Objects x.x Library Dim Cn As ADODB.Connection Dim Rs As ADODB.Recordset Dim Chemin As String, Cible As String, laBase As String
Chemin = "C:Documents and Settingsmicheldossier" laBase = "maBase.dbf"
Set Cn = New ADODB.Connection Cn.Open _ "Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _ Chemin & ";"
Cible = "SELECT * FROM " & laBase & ";"
Set Rs = New Recordset Rs.Open Cible, Cn, adOpenKeyset, adLockOptimistic
With Rs .AddNew .Fields(0) = "Texte" .Fields(1) = CDate("2005-07-04") .Fields(2) = 10001 .Fields(3) = "un commentaire" .Update End With
Rs.Close Cn.Close End Sub
----------
Sub piloterDBASE_modifierEnregistrement() Dim Cn As ADODB.Connection Dim rsT As ADODB.Recordset Dim fld As ADODB.Field
Dim Chemin As String, laBase As String
Chemin = "C:Documents and Settingsmicheldossier" laBase = "maBase.dbf"
Set Cn = New ADODB.Connection Cn.Open _ "Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _ Chemin & ";"
Set rsT = New ADODB.Recordset rsT.Open laBase, Cn, adOpenKeyset, adLockOptimistic
With rsT .MoveFirst 'recherche la valeur "mimi" dans champ "leNom" .Find ("leNom='mimi'") 'quand la valeur "mimi" est trouvée , on modifie le champ "Matricule" .Fields("Matricule") = 666 .Update End With
Cn.Close End Sub
----
Sub piloterDBase_supprimerEnregistrements() Dim Cn As ADODB.Connection Dim Chemin As String, laBase As String, Requete As String
Chemin = "C:Documents and Settingsmicheldossier" laBase = "maBase.dbf"
Set Cn = New ADODB.Connection Cn.Open _ "Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _ Chemin & ";"
'supprime les enregistrements si le champ "laDate" est vide Requete = "DELETE * FROM " & laBase & " WHERE [laDate]IS NULL" Cn.Execute Requete
Cn.Close End Sub
cordialement michel
"Phil" wrote:
Bonjour à tous,
Je cherche à savoir s'il est possible de manipuler les données d'un fichier DBase avec VB dans un classeur Excel. Peut on ajouter, modifier et supprimer des enregistrements ?
J'ai importé les données d'un fichier excel avec "Données" "Données externes" "Importer les données" mais les modifications ne sont pas reportées dans le fichier dbf et une actualisation réinitialise les données initiales.
Pouvez-vous m'expliquer comment faire Merci de votre aide.
bonjour Phil
je ne suis pas sur que ce soit exactement ce que tu recherches mais ces
exemples permettent de piloter des fichiers .dbf (DBase) depuis Excel
Sub piloterDBase_ajoutEnregistrement()
'necessite d'activer la reference
'Microsoft ActiveX Data Objects x.x Library
Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Chemin As String, Cible As String, laBase As String
Chemin = "C:Documents and Settingsmicheldossier"
laBase = "maBase.dbf"
Set Cn = New ADODB.Connection
Cn.Open _
"Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _
Chemin & ";"
Cible = "SELECT * FROM " & laBase & ";"
Set Rs = New Recordset
Rs.Open Cible, Cn, adOpenKeyset, adLockOptimistic
With Rs
.AddNew
.Fields(0) = "Texte"
.Fields(1) = CDate("2005-07-04")
.Fields(2) = 10001
.Fields(3) = "un commentaire"
.Update
End With
Rs.Close
Cn.Close
End Sub
----------
Sub piloterDBASE_modifierEnregistrement()
Dim Cn As ADODB.Connection
Dim rsT As ADODB.Recordset
Dim fld As ADODB.Field
Dim Chemin As String, laBase As String
Chemin = "C:Documents and Settingsmicheldossier"
laBase = "maBase.dbf"
Set Cn = New ADODB.Connection
Cn.Open _
"Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _
Chemin & ";"
Set rsT = New ADODB.Recordset
rsT.Open laBase, Cn, adOpenKeyset, adLockOptimistic
With rsT
.MoveFirst
'recherche la valeur "mimi" dans champ "leNom"
.Find ("leNom='mimi'")
'quand la valeur "mimi" est trouvée , on modifie le champ "Matricule"
.Fields("Matricule") = 666
.Update
End With
Cn.Close
End Sub
----
Sub piloterDBase_supprimerEnregistrements()
Dim Cn As ADODB.Connection
Dim Chemin As String, laBase As String, Requete As String
Chemin = "C:Documents and Settingsmicheldossier"
laBase = "maBase.dbf"
Set Cn = New ADODB.Connection
Cn.Open _
"Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _
Chemin & ";"
'supprime les enregistrements si le champ "laDate" est vide
Requete = "DELETE * FROM " & laBase & " WHERE [laDate]IS NULL"
Cn.Execute Requete
Cn.Close
End Sub
cordialement
michel
"Phil" wrote:
Bonjour à tous,
Je cherche à savoir s'il est possible de manipuler les données d'un fichier
DBase avec VB dans un classeur Excel.
Peut on ajouter, modifier et supprimer des enregistrements ?
J'ai importé les données d'un fichier excel avec "Données" "Données
externes" "Importer les données"
mais les modifications ne sont pas reportées dans le fichier dbf et une
actualisation réinitialise les données initiales.
Pouvez-vous m'expliquer comment faire
Merci de votre aide.
je ne suis pas sur que ce soit exactement ce que tu recherches mais ces exemples permettent de piloter des fichiers .dbf (DBase) depuis Excel
Sub piloterDBase_ajoutEnregistrement() 'necessite d'activer la reference 'Microsoft ActiveX Data Objects x.x Library Dim Cn As ADODB.Connection Dim Rs As ADODB.Recordset Dim Chemin As String, Cible As String, laBase As String
Chemin = "C:Documents and Settingsmicheldossier" laBase = "maBase.dbf"
Set Cn = New ADODB.Connection Cn.Open _ "Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _ Chemin & ";"
Cible = "SELECT * FROM " & laBase & ";"
Set Rs = New Recordset Rs.Open Cible, Cn, adOpenKeyset, adLockOptimistic
With Rs .AddNew .Fields(0) = "Texte" .Fields(1) = CDate("2005-07-04") .Fields(2) = 10001 .Fields(3) = "un commentaire" .Update End With
Rs.Close Cn.Close End Sub
----------
Sub piloterDBASE_modifierEnregistrement() Dim Cn As ADODB.Connection Dim rsT As ADODB.Recordset Dim fld As ADODB.Field
Dim Chemin As String, laBase As String
Chemin = "C:Documents and Settingsmicheldossier" laBase = "maBase.dbf"
Set Cn = New ADODB.Connection Cn.Open _ "Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _ Chemin & ";"
Set rsT = New ADODB.Recordset rsT.Open laBase, Cn, adOpenKeyset, adLockOptimistic
With rsT .MoveFirst 'recherche la valeur "mimi" dans champ "leNom" .Find ("leNom='mimi'") 'quand la valeur "mimi" est trouvée , on modifie le champ "Matricule" .Fields("Matricule") = 666 .Update End With
Cn.Close End Sub
----
Sub piloterDBase_supprimerEnregistrements() Dim Cn As ADODB.Connection Dim Chemin As String, laBase As String, Requete As String
Chemin = "C:Documents and Settingsmicheldossier" laBase = "maBase.dbf"
Set Cn = New ADODB.Connection Cn.Open _ "Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _ Chemin & ";"
'supprime les enregistrements si le champ "laDate" est vide Requete = "DELETE * FROM " & laBase & " WHERE [laDate]IS NULL" Cn.Execute Requete
Cn.Close End Sub
cordialement michel
"Phil" wrote:
Bonjour à tous,
Je cherche à savoir s'il est possible de manipuler les données d'un fichier DBase avec VB dans un classeur Excel. Peut on ajouter, modifier et supprimer des enregistrements ?
J'ai importé les données d'un fichier excel avec "Données" "Données externes" "Importer les données" mais les modifications ne sont pas reportées dans le fichier dbf et une actualisation réinitialise les données initiales.
Pouvez-vous m'expliquer comment faire Merci de votre aide.
Phil
Merci de cette réponse Cela correspond à mes besoins et m'a permis d'avancer dans mon projet
Est-il possible de controler l'activation de la référence "Microsoft ActiveX Data Objects x.x Library" et de l'activer si elle ne l'est pas ?
Merci de votre aide Phil
"SilkRoad" a écrit dans le message de news:
bonjour Phil
je ne suis pas sur que ce soit exactement ce que tu recherches mais ces exemples permettent de piloter des fichiers .dbf (DBase) depuis Excel
Sub piloterDBase_ajoutEnregistrement() 'necessite d'activer la reference 'Microsoft ActiveX Data Objects x.x Library Dim Cn As ADODB.Connection Dim Rs As ADODB.Recordset Dim Chemin As String, Cible As String, laBase As String
Chemin = "C:Documents and Settingsmicheldossier" laBase = "maBase.dbf"
Set Cn = New ADODB.Connection Cn.Open _ "Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _ Chemin & ";"
Cible = "SELECT * FROM " & laBase & ";"
Set Rs = New Recordset Rs.Open Cible, Cn, adOpenKeyset, adLockOptimistic
With Rs .AddNew .Fields(0) = "Texte" .Fields(1) = CDate("2005-07-04") .Fields(2) = 10001 .Fields(3) = "un commentaire" .Update End With
Rs.Close Cn.Close End Sub
----------
Sub piloterDBASE_modifierEnregistrement() Dim Cn As ADODB.Connection Dim rsT As ADODB.Recordset Dim fld As ADODB.Field
Dim Chemin As String, laBase As String
Chemin = "C:Documents and Settingsmicheldossier" laBase = "maBase.dbf"
Set Cn = New ADODB.Connection Cn.Open _ "Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _ Chemin & ";"
Set rsT = New ADODB.Recordset rsT.Open laBase, Cn, adOpenKeyset, adLockOptimistic
With rsT .MoveFirst 'recherche la valeur "mimi" dans champ "leNom" .Find ("leNom='mimi'") 'quand la valeur "mimi" est trouvée , on modifie le champ "Matricule" .Fields("Matricule") = 666 .Update End With
Cn.Close End Sub
----
Sub piloterDBase_supprimerEnregistrements() Dim Cn As ADODB.Connection Dim Chemin As String, laBase As String, Requete As String
Chemin = "C:Documents and Settingsmicheldossier" laBase = "maBase.dbf"
Set Cn = New ADODB.Connection Cn.Open _ "Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _ Chemin & ";"
'supprime les enregistrements si le champ "laDate" est vide Requete = "DELETE * FROM " & laBase & " WHERE [laDate]IS NULL" Cn.Execute Requete
Cn.Close End Sub
cordialement michel
"Phil" wrote:
Bonjour à tous,
Je cherche à savoir s'il est possible de manipuler les données d'un fichier
DBase avec VB dans un classeur Excel. Peut on ajouter, modifier et supprimer des enregistrements ?
J'ai importé les données d'un fichier excel avec "Données" "Données externes" "Importer les données" mais les modifications ne sont pas reportées dans le fichier dbf et une actualisation réinitialise les données initiales.
Pouvez-vous m'expliquer comment faire Merci de votre aide.
Merci de cette réponse
Cela correspond à mes besoins et m'a permis d'avancer dans mon projet
Est-il possible de controler l'activation de la référence "Microsoft ActiveX
Data Objects x.x Library"
et de l'activer si elle ne l'est pas ?
Merci de votre aide
Phil
"SilkRoad" <SilkRoad@discussions.microsoft.com> a écrit dans le message de
news:6C6C5F54-64FD-4613-B5EB-02DE7848A57D@microsoft.com...
bonjour Phil
je ne suis pas sur que ce soit exactement ce que tu recherches mais ces
exemples permettent de piloter des fichiers .dbf (DBase) depuis Excel
Sub piloterDBase_ajoutEnregistrement()
'necessite d'activer la reference
'Microsoft ActiveX Data Objects x.x Library
Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Chemin As String, Cible As String, laBase As String
Chemin = "C:Documents and Settingsmicheldossier"
laBase = "maBase.dbf"
Set Cn = New ADODB.Connection
Cn.Open _
"Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _
Chemin & ";"
Cible = "SELECT * FROM " & laBase & ";"
Set Rs = New Recordset
Rs.Open Cible, Cn, adOpenKeyset, adLockOptimistic
With Rs
.AddNew
.Fields(0) = "Texte"
.Fields(1) = CDate("2005-07-04")
.Fields(2) = 10001
.Fields(3) = "un commentaire"
.Update
End With
Rs.Close
Cn.Close
End Sub
----------
Sub piloterDBASE_modifierEnregistrement()
Dim Cn As ADODB.Connection
Dim rsT As ADODB.Recordset
Dim fld As ADODB.Field
Dim Chemin As String, laBase As String
Chemin = "C:Documents and Settingsmicheldossier"
laBase = "maBase.dbf"
Set Cn = New ADODB.Connection
Cn.Open _
"Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _
Chemin & ";"
Set rsT = New ADODB.Recordset
rsT.Open laBase, Cn, adOpenKeyset, adLockOptimistic
With rsT
.MoveFirst
'recherche la valeur "mimi" dans champ "leNom"
.Find ("leNom='mimi'")
'quand la valeur "mimi" est trouvée , on modifie le champ "Matricule"
.Fields("Matricule") = 666
.Update
End With
Cn.Close
End Sub
----
Sub piloterDBase_supprimerEnregistrements()
Dim Cn As ADODB.Connection
Dim Chemin As String, laBase As String, Requete As String
Chemin = "C:Documents and Settingsmicheldossier"
laBase = "maBase.dbf"
Set Cn = New ADODB.Connection
Cn.Open _
"Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _
Chemin & ";"
'supprime les enregistrements si le champ "laDate" est vide
Requete = "DELETE * FROM " & laBase & " WHERE [laDate]IS NULL"
Cn.Execute Requete
Cn.Close
End Sub
cordialement
michel
"Phil" wrote:
Bonjour à tous,
Je cherche à savoir s'il est possible de manipuler les données d'un
fichier
DBase avec VB dans un classeur Excel.
Peut on ajouter, modifier et supprimer des enregistrements ?
J'ai importé les données d'un fichier excel avec "Données" "Données
externes" "Importer les données"
mais les modifications ne sont pas reportées dans le fichier dbf et une
actualisation réinitialise les données initiales.
Pouvez-vous m'expliquer comment faire
Merci de votre aide.
Merci de cette réponse Cela correspond à mes besoins et m'a permis d'avancer dans mon projet
Est-il possible de controler l'activation de la référence "Microsoft ActiveX Data Objects x.x Library" et de l'activer si elle ne l'est pas ?
Merci de votre aide Phil
"SilkRoad" a écrit dans le message de news:
bonjour Phil
je ne suis pas sur que ce soit exactement ce que tu recherches mais ces exemples permettent de piloter des fichiers .dbf (DBase) depuis Excel
Sub piloterDBase_ajoutEnregistrement() 'necessite d'activer la reference 'Microsoft ActiveX Data Objects x.x Library Dim Cn As ADODB.Connection Dim Rs As ADODB.Recordset Dim Chemin As String, Cible As String, laBase As String
Chemin = "C:Documents and Settingsmicheldossier" laBase = "maBase.dbf"
Set Cn = New ADODB.Connection Cn.Open _ "Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _ Chemin & ";"
Cible = "SELECT * FROM " & laBase & ";"
Set Rs = New Recordset Rs.Open Cible, Cn, adOpenKeyset, adLockOptimistic
With Rs .AddNew .Fields(0) = "Texte" .Fields(1) = CDate("2005-07-04") .Fields(2) = 10001 .Fields(3) = "un commentaire" .Update End With
Rs.Close Cn.Close End Sub
----------
Sub piloterDBASE_modifierEnregistrement() Dim Cn As ADODB.Connection Dim rsT As ADODB.Recordset Dim fld As ADODB.Field
Dim Chemin As String, laBase As String
Chemin = "C:Documents and Settingsmicheldossier" laBase = "maBase.dbf"
Set Cn = New ADODB.Connection Cn.Open _ "Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _ Chemin & ";"
Set rsT = New ADODB.Recordset rsT.Open laBase, Cn, adOpenKeyset, adLockOptimistic
With rsT .MoveFirst 'recherche la valeur "mimi" dans champ "leNom" .Find ("leNom='mimi'") 'quand la valeur "mimi" est trouvée , on modifie le champ "Matricule" .Fields("Matricule") = 666 .Update End With
Cn.Close End Sub
----
Sub piloterDBase_supprimerEnregistrements() Dim Cn As ADODB.Connection Dim Chemin As String, laBase As String, Requete As String
Chemin = "C:Documents and Settingsmicheldossier" laBase = "maBase.dbf"
Set Cn = New ADODB.Connection Cn.Open _ "Driver={Microsoft dBASE Driver (*.dbf)};DriverID'7;Dbq=" & _ Chemin & ";"
'supprime les enregistrements si le champ "laDate" est vide Requete = "DELETE * FROM " & laBase & " WHERE [laDate]IS NULL" Cn.Execute Requete
Cn.Close End Sub
cordialement michel
"Phil" wrote:
Bonjour à tous,
Je cherche à savoir s'il est possible de manipuler les données d'un fichier
DBase avec VB dans un classeur Excel. Peut on ajouter, modifier et supprimer des enregistrements ?
J'ai importé les données d'un fichier excel avec "Données" "Données externes" "Importer les données" mais les modifications ne sont pas reportées dans le fichier dbf et une actualisation réinitialise les données initiales.
Pouvez-vous m'expliquer comment faire Merci de votre aide.