Je voudrais remplir une table access vide qui contient 2 champs : Numero et
Nom
Numero est la clé primaire et en numérotation automatique.
Nom est de type texte.
Voici ce que j'ai écrit et qui ne fonctionne pas.
Sub Remplir_la_base()
Dim adoconnection As ADODB.Connection
Dim adorecordset As ADODB.Recordset
Dim str As String, i As Integer
Set adoconnection = New ADODB.Connection
ConnectString = "Provider=Microsoft.jet.oledb.4.0;Data
source=C:\Eleves2001.mdb;persist security info = false"
adoconnection.Open ConnectString
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
michdenis
Bonjour José,
Voici une procédure qui pourrait faire l'affaire avec DAO, seulement pour contredire un peu !
Pour le temps que va durer l'exportation, on doit créer une plage nommée de la colonne à exporter vers la base de données.
Cette plage nommée dans l'exemple s'appelle "Plage". La toute première ligne de la plage nommée "plage" représente une étiquette de colonne du même nom de champ de la table où les données seront exportées.
Dans l'exemple suivant, il ne te restera plus qu'à adapter le nom des objets selon ton application.
toto = Nom de la table dans la base de données Comptoir.mdb
Pour ce qui est du champ de numéro automatique dans ta base de données, il va se mettre à jour tout seul !
Évidemment, tu dois ajouter la bibliothèque : Microsoft DAO 3.6 objects Librairy '-------------------------------------------- Sub ExporterVersAccess()
Dim bd As DAO.Database Dim Rst As DAO.Recordset
With Worksheets("Feuil1") .Range("B4:B" & .Range("B65536").End(xlUp).Row).Name = "Plage" End With
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
'Set Rst = Db.OpenDatabase("select * from [plage]")
bd.Execute "INSERT INTO toto IN 'C:ExcelComptoir.mdb' SELECT * FROM [Plage]" bd.Close Set bd = Nothing End Sub '--------------------------------------------
Salutations!
"José" a écrit dans le message de news:40ec47b5$0$5698$ Bonsoir,
Je voudrais remplir une table access vide qui contient 2 champs : Numero et Nom Numero est la clé primaire et en numérotation automatique. Nom est de type texte.
Voici ce que j'ai écrit et qui ne fonctionne pas.
Sub Remplir_la_base()
Dim adoconnection As ADODB.Connection Dim adorecordset As ADODB.Recordset Dim str As String, i As Integer
Set adoconnection = New ADODB.Connection ConnectString = "Provider=Microsoft.jet.oledb.4.0;Data source=C:Eleves2001.mdb;persist security info = false" adoconnection.Open ConnectString
For i = 2 To 10 adorecordset!Nom = Cells(i, 2) Next i adorecordset.Update End Sub
Merci de votre aide
Bonjour José,
Voici une procédure qui pourrait faire l'affaire avec DAO, seulement pour contredire un peu !
Pour le temps que va durer l'exportation, on doit créer une plage nommée de la colonne à exporter vers la base de
données.
Cette plage nommée dans l'exemple s'appelle "Plage".
La toute première ligne de la plage nommée "plage" représente une étiquette de colonne du même nom de champ de la table
où les données seront exportées.
Dans l'exemple suivant, il ne te restera plus qu'à adapter le nom des objets selon ton application.
toto = Nom de la table dans la base de données Comptoir.mdb
Pour ce qui est du champ de numéro automatique dans ta base de données, il va se mettre à jour tout seul !
Évidemment, tu dois ajouter la bibliothèque : Microsoft DAO 3.6 objects Librairy
'--------------------------------------------
Sub ExporterVersAccess()
Dim bd As DAO.Database
Dim Rst As DAO.Recordset
With Worksheets("Feuil1")
.Range("B4:B" & .Range("B65536").End(xlUp).Row).Name = "Plage"
End With
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
'Set Rst = Db.OpenDatabase("select * from [plage]")
bd.Execute "INSERT INTO toto IN 'C:ExcelComptoir.mdb' SELECT * FROM [Plage]"
bd.Close
Set bd = Nothing
End Sub
'--------------------------------------------
Salutations!
"José" <perez.jose@free.fr> a écrit dans le message de news:40ec47b5$0$5698$626a14ce@news.free.fr...
Bonsoir,
Je voudrais remplir une table access vide qui contient 2 champs : Numero et
Nom
Numero est la clé primaire et en numérotation automatique.
Nom est de type texte.
Voici ce que j'ai écrit et qui ne fonctionne pas.
Sub Remplir_la_base()
Dim adoconnection As ADODB.Connection
Dim adorecordset As ADODB.Recordset
Dim str As String, i As Integer
Set adoconnection = New ADODB.Connection
ConnectString = "Provider=Microsoft.jet.oledb.4.0;Data
source=C:Eleves2001.mdb;persist security info = false"
adoconnection.Open ConnectString
Voici une procédure qui pourrait faire l'affaire avec DAO, seulement pour contredire un peu !
Pour le temps que va durer l'exportation, on doit créer une plage nommée de la colonne à exporter vers la base de données.
Cette plage nommée dans l'exemple s'appelle "Plage". La toute première ligne de la plage nommée "plage" représente une étiquette de colonne du même nom de champ de la table où les données seront exportées.
Dans l'exemple suivant, il ne te restera plus qu'à adapter le nom des objets selon ton application.
toto = Nom de la table dans la base de données Comptoir.mdb
Pour ce qui est du champ de numéro automatique dans ta base de données, il va se mettre à jour tout seul !
Évidemment, tu dois ajouter la bibliothèque : Microsoft DAO 3.6 objects Librairy '-------------------------------------------- Sub ExporterVersAccess()
Dim bd As DAO.Database Dim Rst As DAO.Recordset
With Worksheets("Feuil1") .Range("B4:B" & .Range("B65536").End(xlUp).Row).Name = "Plage" End With
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
'Set Rst = Db.OpenDatabase("select * from [plage]")
bd.Execute "INSERT INTO toto IN 'C:ExcelComptoir.mdb' SELECT * FROM [Plage]" bd.Close Set bd = Nothing End Sub '--------------------------------------------
Salutations!
"José" a écrit dans le message de news:40ec47b5$0$5698$ Bonsoir,
Je voudrais remplir une table access vide qui contient 2 champs : Numero et Nom Numero est la clé primaire et en numérotation automatique. Nom est de type texte.
Voici ce que j'ai écrit et qui ne fonctionne pas.
Sub Remplir_la_base()
Dim adoconnection As ADODB.Connection Dim adorecordset As ADODB.Recordset Dim str As String, i As Integer
Set adoconnection = New ADODB.Connection ConnectString = "Provider=Microsoft.jet.oledb.4.0;Data source=C:Eleves2001.mdb;persist security info = false" adoconnection.Open ConnectString
For i = 2 To 10 adorecordset!Nom = Cells(i, 2) Next i adorecordset.Update End Sub
Merci de votre aide
michdenis
Bonjour José,
Voici un autre exemple avec une boucle sur le RecordSet pour insérer tes valeurs dans le champ de la table ce type de boucle est identique avec ADO
'------------------------------------------- Sub AjouterDesEnregistrementsÀUneTable()
Dim MyDB As Database, MyTable As Recordset, Sh As Worksheet
Set MyDB = OpenDatabase("C:Mes documentsbd2.mdb") Set MyTable = MyDB.OpenRecordset("Etudiant") Set Sh = Worksheets("Feuil1")
With Sh For Each r In .Range("A1:C5").Rows With MyTable .AddNew !NumEtudiant = Sh.Cells(r.Row, 1) !NomEtudiant = Sh.Cells(r.Row, 2) !NumTel = Sh.Cells(r.Row, 3) .Update End With Next End With Set MyDB = Nothing: Set MyTable = Nothing: Set Sh = Nothing
End Sub '-------------------------------------------
Salutations!
"José" a écrit dans le message de news:40ec47b5$0$5698$ Bonsoir,
Je voudrais remplir une table access vide qui contient 2 champs : Numero et Nom Numero est la clé primaire et en numérotation automatique. Nom est de type texte.
Voici ce que j'ai écrit et qui ne fonctionne pas.
Sub Remplir_la_base()
Dim adoconnection As ADODB.Connection Dim adorecordset As ADODB.Recordset Dim str As String, i As Integer
Set adoconnection = New ADODB.Connection ConnectString = "Provider=Microsoft.jet.oledb.4.0;Data source=C:Eleves2001.mdb;persist security info = false" adoconnection.Open ConnectString
For i = 2 To 10 adorecordset!Nom = Cells(i, 2) Next i adorecordset.Update End Sub
Merci de votre aide
Bonjour José,
Voici un autre exemple avec une boucle sur le RecordSet pour insérer tes valeurs dans le champ de la table
ce type de boucle est identique avec ADO
'-------------------------------------------
Sub AjouterDesEnregistrementsÀUneTable()
Dim MyDB As Database, MyTable As Recordset, Sh As Worksheet
Set MyDB = OpenDatabase("C:Mes documentsbd2.mdb")
Set MyTable = MyDB.OpenRecordset("Etudiant")
Set Sh = Worksheets("Feuil1")
With Sh
For Each r In .Range("A1:C5").Rows
With MyTable
.AddNew
!NumEtudiant = Sh.Cells(r.Row, 1)
!NomEtudiant = Sh.Cells(r.Row, 2)
!NumTel = Sh.Cells(r.Row, 3)
.Update
End With
Next
End With
Set MyDB = Nothing: Set MyTable = Nothing: Set Sh = Nothing
End Sub
'-------------------------------------------
Salutations!
"José" <perez.jose@free.fr> a écrit dans le message de news:40ec47b5$0$5698$626a14ce@news.free.fr...
Bonsoir,
Je voudrais remplir une table access vide qui contient 2 champs : Numero et
Nom
Numero est la clé primaire et en numérotation automatique.
Nom est de type texte.
Voici ce que j'ai écrit et qui ne fonctionne pas.
Sub Remplir_la_base()
Dim adoconnection As ADODB.Connection
Dim adorecordset As ADODB.Recordset
Dim str As String, i As Integer
Set adoconnection = New ADODB.Connection
ConnectString = "Provider=Microsoft.jet.oledb.4.0;Data
source=C:Eleves2001.mdb;persist security info = false"
adoconnection.Open ConnectString
Voici un autre exemple avec une boucle sur le RecordSet pour insérer tes valeurs dans le champ de la table ce type de boucle est identique avec ADO
'------------------------------------------- Sub AjouterDesEnregistrementsÀUneTable()
Dim MyDB As Database, MyTable As Recordset, Sh As Worksheet
Set MyDB = OpenDatabase("C:Mes documentsbd2.mdb") Set MyTable = MyDB.OpenRecordset("Etudiant") Set Sh = Worksheets("Feuil1")
With Sh For Each r In .Range("A1:C5").Rows With MyTable .AddNew !NumEtudiant = Sh.Cells(r.Row, 1) !NomEtudiant = Sh.Cells(r.Row, 2) !NumTel = Sh.Cells(r.Row, 3) .Update End With Next End With Set MyDB = Nothing: Set MyTable = Nothing: Set Sh = Nothing
End Sub '-------------------------------------------
Salutations!
"José" a écrit dans le message de news:40ec47b5$0$5698$ Bonsoir,
Je voudrais remplir une table access vide qui contient 2 champs : Numero et Nom Numero est la clé primaire et en numérotation automatique. Nom est de type texte.
Voici ce que j'ai écrit et qui ne fonctionne pas.
Sub Remplir_la_base()
Dim adoconnection As ADODB.Connection Dim adorecordset As ADODB.Recordset Dim str As String, i As Integer
Set adoconnection = New ADODB.Connection ConnectString = "Provider=Microsoft.jet.oledb.4.0;Data source=C:Eleves2001.mdb;persist security info = false" adoconnection.Open ConnectString