J'ai un problème, je voudrais importer un fichier excel dans une
nouvelle table de bdd access, or le copier/coller = niet, donc la bdd me dit
de faire un macro = je fais une macro, mais ça ne marche toujours pas, la
bdd dit "trouve pas moteur ISAM"...
Commence faire c... la bdd, c'est vraiment pas terrible, pouquoi on peut
pas faire un copier coller dans une table de plusieurs colonnes et lignes en
même temps!!!
Je suis sous XP(f) PC, Excel 2002, Access 97 et VB6 pro
Le rapport avec VB, ben c'est qu'après je veux gérer la bdd par vb...
Alors si vous savez comment me débloquer le blocage, merci bien :o)
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
Ledev
Joseph PUSZTAY wrote:
Copier *.xls dans Access ???
Bonjour,
J'ai un problème, je voudrais importer un fichier excel dans une nouvelle table de bdd access, or le copier/coller = niet, donc la bdd me dit de faire un macro = je fais une macro, mais ça ne marche toujours pas, la bdd dit "trouve pas moteur ISAM"...
Commence faire c... la bdd, c'est vraiment pas terrible, pouquoi on peut pas faire un copier coller dans une table de plusieurs colonnes et lignes en même temps!!!
Je suis sous XP(f) PC, Excel 2002, Access 97 et VB6 pro
Le rapport avec VB, ben c'est qu'après je veux gérer la bdd par vb...
Alors si vous savez comment me débloquer le blocage, merci bien :o)
Bin, il me semble qu'excel peut directement exporter vers Access, mais si tu tiens a le faire par VB, fait comme ceci:
Tu crée une référence vers ADO(je supose que c'est déjà fait), et une vers EXCEL. Dansun module: Sub main() 'Déclaration des objets Excel et création de Excel.application Dim Xa As New Excel.Application Dim Xs As Excel.Worksheet
'On prend le 1er Worksheets(tableau) du classeur a ouvrir Set Xs = Xa.Workbooks.Open("c:montableau.xls").Worksheets(1)
'On crée les recordset/connection d'ado Dim Rs As New ADODB.Recordset Dim Connect As New ADODB.Connection
'On ouvre la connection(mettre la chaine de connection) Connect.Open "Chaine de connection"
'On ouvre le RecordSet Rs.Open "requette SQL", Connect, adOpenDynamic, adLockOptimistic
'On va au 1er enregistrement Rs.MoveFirst
'on fait une boucle de la ligne 2 du tableau(on considére que la 1 sert pour les 'titre des colonnes) à la ligne Rows(nombre de ligne) For a = 2 To Xs.Rows 'On crée un nouvelle enregistrement Rs.AddNew 'On boucle de b au nombre de colonne de la feuille Excel For b = 1 To Xs.Columns 'On donne au champ b(colonne en cours) la valeur de la colonne Rs.Fields(b) = Xs.Cells(a, b) 'ATTENTION, Vérifier que les champs de la base de donnée corresponde, ceci est a titre de démonstration mais je conseil vivement de 'passez par les noms de champs(au lieu de la boucle for b=). Next b 'Met a jour la base de donnée Rs.Update Next a
MsgBox "Finish" End Sub
Il te faudra bien sur l'adaptez. Par contre, je n'ais pas testez, et il est tout a fait possible(comprendre quasi-obligée, j'ai souvent du mal a pondre du code directement sans bug ;-)) qu'il y ait un peu de débuguage à faire.
a+
Joseph PUSZTAY wrote:
Copier *.xls dans Access ???
Bonjour,
J'ai un problème, je voudrais importer un fichier excel dans une
nouvelle table de bdd access, or le copier/coller = niet, donc la bdd
me dit de faire un macro = je fais une macro, mais ça ne marche
toujours pas, la bdd dit "trouve pas moteur ISAM"...
Commence faire c... la bdd, c'est vraiment pas terrible, pouquoi
on peut pas faire un copier coller dans une table de plusieurs
colonnes et lignes en même temps!!!
Je suis sous XP(f) PC, Excel 2002, Access 97 et VB6 pro
Le rapport avec VB, ben c'est qu'après je veux gérer la bdd par vb...
Alors si vous savez comment me débloquer le blocage, merci bien :o)
Bin, il me semble qu'excel peut directement exporter vers Access, mais si tu
tiens a le faire par VB, fait comme ceci:
Tu crée une référence vers ADO(je supose que c'est déjà fait), et une vers
EXCEL.
Dansun module:
Sub main()
'Déclaration des objets Excel et création de Excel.application
Dim Xa As New Excel.Application
Dim Xs As Excel.Worksheet
'On prend le 1er Worksheets(tableau) du classeur a ouvrir
Set Xs = Xa.Workbooks.Open("c:montableau.xls").Worksheets(1)
'On crée les recordset/connection d'ado
Dim Rs As New ADODB.Recordset
Dim Connect As New ADODB.Connection
'On ouvre la connection(mettre la chaine de connection)
Connect.Open "Chaine de connection"
'On ouvre le RecordSet
Rs.Open "requette SQL", Connect, adOpenDynamic, adLockOptimistic
'On va au 1er enregistrement
Rs.MoveFirst
'on fait une boucle de la ligne 2 du tableau(on considére que la 1 sert
pour les
'titre des colonnes) à la ligne Rows(nombre de ligne)
For a = 2 To Xs.Rows
'On crée un nouvelle enregistrement
Rs.AddNew
'On boucle de b au nombre de colonne de la feuille Excel
For b = 1 To Xs.Columns
'On donne au champ b(colonne en cours) la valeur de la colonne
Rs.Fields(b) = Xs.Cells(a, b)
'ATTENTION, Vérifier que les champs de la base de donnée
corresponde, ceci est a titre de démonstration mais je conseil vivement de
'passez par les noms de champs(au lieu de la boucle for b=).
Next b
'Met a jour la base de donnée
Rs.Update
Next a
MsgBox "Finish"
End Sub
Il te faudra bien sur l'adaptez.
Par contre, je n'ais pas testez, et il est tout a fait possible(comprendre
quasi-obligée, j'ai souvent du mal a pondre du code directement sans bug
;-)) qu'il y ait un peu de débuguage à faire.
J'ai un problème, je voudrais importer un fichier excel dans une nouvelle table de bdd access, or le copier/coller = niet, donc la bdd me dit de faire un macro = je fais une macro, mais ça ne marche toujours pas, la bdd dit "trouve pas moteur ISAM"...
Commence faire c... la bdd, c'est vraiment pas terrible, pouquoi on peut pas faire un copier coller dans une table de plusieurs colonnes et lignes en même temps!!!
Je suis sous XP(f) PC, Excel 2002, Access 97 et VB6 pro
Le rapport avec VB, ben c'est qu'après je veux gérer la bdd par vb...
Alors si vous savez comment me débloquer le blocage, merci bien :o)
Bin, il me semble qu'excel peut directement exporter vers Access, mais si tu tiens a le faire par VB, fait comme ceci:
Tu crée une référence vers ADO(je supose que c'est déjà fait), et une vers EXCEL. Dansun module: Sub main() 'Déclaration des objets Excel et création de Excel.application Dim Xa As New Excel.Application Dim Xs As Excel.Worksheet
'On prend le 1er Worksheets(tableau) du classeur a ouvrir Set Xs = Xa.Workbooks.Open("c:montableau.xls").Worksheets(1)
'On crée les recordset/connection d'ado Dim Rs As New ADODB.Recordset Dim Connect As New ADODB.Connection
'On ouvre la connection(mettre la chaine de connection) Connect.Open "Chaine de connection"
'On ouvre le RecordSet Rs.Open "requette SQL", Connect, adOpenDynamic, adLockOptimistic
'On va au 1er enregistrement Rs.MoveFirst
'on fait une boucle de la ligne 2 du tableau(on considére que la 1 sert pour les 'titre des colonnes) à la ligne Rows(nombre de ligne) For a = 2 To Xs.Rows 'On crée un nouvelle enregistrement Rs.AddNew 'On boucle de b au nombre de colonne de la feuille Excel For b = 1 To Xs.Columns 'On donne au champ b(colonne en cours) la valeur de la colonne Rs.Fields(b) = Xs.Cells(a, b) 'ATTENTION, Vérifier que les champs de la base de donnée corresponde, ceci est a titre de démonstration mais je conseil vivement de 'passez par les noms de champs(au lieu de la boucle for b=). Next b 'Met a jour la base de donnée Rs.Update Next a
MsgBox "Finish" End Sub
Il te faudra bien sur l'adaptez. Par contre, je n'ais pas testez, et il est tout a fait possible(comprendre quasi-obligée, j'ai souvent du mal a pondre du code directement sans bug ;-)) qu'il y ait un peu de débuguage à faire.