[OK]transfert de feuilles excel ---> access

Discussions et dépannage concernant Access (Toutes versions).

Modérateur : Modérateurs

Répondre
Invité

[OK]transfert de feuilles excel ---> access

Message par Invité » 04 mars 2003, 17:51:00

oué je sais, fichier , importer, fichier excel, etc..... mais là je ne peux pas faire ca.

l'importation doit se faire via un bouton que presserait l'utilisateur. l'idee est d'importer 4 feuilles excel se trouvant dans un fichier. on importe les donnees dans 4 tables. il faut creer un lien entre ces 4 tables car chaque enregistrement correspond (le 1er de la table 1 avec le 1er de la table 2 et 3 et 4, etc...).

enfin si kkun a un script pour importer 4 feuilees dans 4 tables ca sera deja bien.

merci messieurs daaaaaaaaames.

Invité

Message par Invité » 05 mars 2003, 17:15:00

c'est bon c'est réglé.

Kitty
Membre hyperactif
Membre hyperactif
Messages : 771
Enregistré le : 02 juin 2005, 23:00:00
Localisation : CorbeauxLand

Message par Kitty » 05 mars 2003, 23:19:00

Bonsoir,

Content pour toi. Peut-être peux-tu nous faire profiter de la soluce ? On ne sait jamais, à§a peut en aider d'autres ...
Merci.
Bye,
Kitty
Image

Invité

Message par Invité » 06 mars 2003, 09:08:00

ok, je pofine juste le truc et ensuiteje vous mets ca.

Invité

Message par Invité » 06 mars 2003, 10:23:00

voici le code pour recuperer une feuille d'un doc execl. pour en recuperer plusieurs, il faut repeter le code en changeant le numero de feuille et en créant une tableB avec la structure convenue.


Private Sub Commande0_Click()
Dim xlApp As Object
Set xlApp = CreateObject("Excel.application")
Dim col As Integer, lig As Integer
Dim tabValeur(3, 7) As String '3lignes,7colonnes
Dim VtableA As DAO.Recordset
Dim i As Integer
i = 3 'nbre de lignes
Set VtableA = CurrentDb.OpenRecordset("tableA") 'la table dans access est tableA

'ouverture de la feuille excel
xlApp.Workbooks.Open ("c:test.xls")
xlApp.ActiveWorkbook.Worksheets(1).Activate '(1) pour la feuille1
'recuperation des valeurs ds une table
For lig = 1 To i
For col = 1 To 7
tabValeur(lig, col) = xlApp.ActiveWorkbook.ActiveSheet.Cells(lig + 1, col) 'je prends apartir de la 2e ligne
'traitement des cellulles vides
If tabValeur(lig, col) = "" Then
tabValeur(lig, col) = "0"
End If
Next col

Next lig
xlApp.Quit

'ecriture des donnees dans ma table access
'les noms des champs sont colonne1,2,3,4,5,6,7
For lig = 1 To i
[VtableA].AddNew
[VtableA]!colonne1 = tabValeur(lig, 1)
[VtableA]!colonne2 = tabValeur(lig, 2)
[VtableA]!colonne3 = tabValeur(lig, 3)
[VtableA]!colonne4 = tabValeur(lig, 4)
[VtableA]!colonne5 = tabValeur(lig, 5)
[VtableA]!colonne6 = tabValeur(lig, 6)
[VtableA]!colonne7 = tabValeur(lig, 7)
[VtableA].Update
Next lig

End Sub



désolé pas trés optimisé, mais c parce que je dois me servir de cette structure.
la liaison entre les tables n'est pas encore faite, mais l'idee est dappliquer un numerique a incrementer en 1ere colonne de chaque table (code a mettre au niveau de la creation de la table tabValeur).
bon si j'ai été clair c'est un miracle <IMG SRC="/images/smiles/confused_smile46.gif">

Kitty
Membre hyperactif
Membre hyperactif
Messages : 771
Enregistré le : 02 juin 2005, 23:00:00
Localisation : CorbeauxLand

Message par Kitty » 06 mars 2003, 21:29:00

Merci à  toi.
Bye,
Kitty
Image

Répondre

Retourner vers « Access »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités