Import de données ???

javi007 Messages postés 8 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 30 avril 2003 - 31 janv. 2002 à 16:21
cap0002004 Messages postés 15 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 6 août 2004 - 30 juil. 2004 à 15:16
bonjour à tous ,
je désire importer des données contenues dans une feuille excel 2000 vers une base de données access 2000 et ce en cliquant sur un bouton dans mon application vb 6.0...

auriez vous des solutions ???
du code est le bien venu

on m'a dit qu'avec la fonction getobject c'est possible mais ca marche pas comme j'ai fais???

5 réponses

cs_Cassidy Messages postés 39 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 11 mai 2005
1 févr. 2002 à 09:23
Super, on à le même problème, mais j'ai pas encore trouver la réponse.
Si je te tiendrai au courant si je trouve
A + Cassidy
0
cs_Cassidy Messages postés 39 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 11 mai 2005
6 févr. 2002 à 10:29
Ouais, bon comme promis, je te tiens au courant...
Personnellement je cherchais à importer des données d'une feuille excel2000 vers access2000 en creant un code vba sous access, mais je pense que le code suivant sera quand même susceptible de t'aider :

Public ClasseurXLS As Object

Private Sub Cmd_Importation_Click()
Dim PathFic As String
Dim NomFic As String
Dim NomFicXLS As String
Dim NomTable As String
Dim iNom_emp As String
Dim iCommentaires As String
Dim iDateJ As Date
Dim iNum_affaire As Integer
Dim iNum_phase As Integer
Dim i As Integer
Dim iNb_heures As Integer
Dim sql As String

Set dbs = CurrentDb
Set ClasseurXLS = CreateObject("Excel.application")

'Initialisation Nom du fichier à importer
If (Text1.Value <> "") Then
NomFic = Text1
NomFic = NomFic & ".xls"
Else
réponse = MsgBox("Nom du fichier à importer manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If

'Initialisation Emplacement du fichier à importer
If (Text2.Value <> "") Then
PathFic = Text2
Else
réponse = MsgBox("Emplacement du fichier à importer manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If

'Initialisation Nom de la table d'importation
If (Text3.Value <> "") Then
NomTable = Text3
Else
réponse = MsgBox("Nom de la table d'importation manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If

'Ouverture du classeur d'importation
ClasseurXLS.Workbooks.Open PathFic & NomFic
ClasseurXLS.Visible = True

'Creation d'une table d'importation
sql = "create table " & NomTable & "(Nom_Emp string, DateJ date, Num_affaire integer, Num_phase integer, Nb_heures integer, Commentaire string)"
dbs.Execute sql

i = 2
Do While ClasseurXLS.cells(i, 1) <> ""
'Recuperation des données lignes par lignes
iNom_emp = ClasseurXLS.cells(i, 1)
iDateJ = ClasseurXLS.cells(i, 2)
iNum_affaire = ClasseurXLS.cells(i, 3)
iNum_phase = ClasseurXLS.cells(i, 4)
iNb_heures = ClasseurXLS.cells(i, 5)
iCommentaires = ClasseurXLS.cells(i, 6)
'Insertion des données dans la table
sql = "insert into " & NomTable & "(Nom_Emp, DateJ, Num_affaire, Num_phase, Nb_heures, Commentaire) values (' " & iNom_emp & " ' , ' " & iDateJ & " ' , ' " & iNum_affaire & " ' , ' " & iNum_phase & " ' , ' " & iNb_heures & " ' , ' " & iCommentaires & " ')"
dbs.Execute sql
i = i + 1
Loop

'Fermeture du classeur d'importation
ClasseurXLS.Workbooks.Close

MsgBox ("Importation des données effectuée")
End Sub

comme tu peu le remarquer j'ouvre excel, je balaye les cellules qui m'interessent (cad les 6 premieres colonnes) lignes par ligne
je stocke les données dans des variable et je fais des Insert (Dans une table crée par ma proc)
Pour toi sachant que tu veux une appli sous vb6.0
il va falloir que tu ouvre un fichier access et que tu jongle entre Excel et access
Voilà, j'espère que ça pourrat t'aider, bonne chance
A + Cass
0
sim140680 Messages postés 8 Date d'inscription lundi 12 mai 2003 Statut Membre Dernière intervention 31 décembre 2009
11 juin 2004 à 18:55
Salut

G testé ton code Cassidy, mais y'a un petit souci du coté de:

sql = "create table " & NomTable & "(Nom_Emp string, DateJ date, Num_affaire integer, Num_phase integer, Nb_heures integer, Commentaire string)"

dbs.Execute sql

perso g une erreur de compil:

ce genre d'instruction marche mieux

sql = "CREATE TABLE NomTable (Num_emp, DateJ, Num_affaire, Num_phase....

dbs.Execute sql

Marche mieux, par contre, j'arrive pas a passer la variable en paramètre, ma table de sortie est NomTable, comment puis je arrager ça?

Y'a t'il aussi une solution dans le cas ou l'on a plusieurs tables dans le fichier excel??

Merci d'avance
0
cap0002004 Messages postés 15 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 6 août 2004
30 juil. 2004 à 15:13
pour passer NomTable en parametre:

sql = "CREATE TABLE ' " & NomTable & " ' " (Num_emp, DateJ, Num_affaire, Num_phase....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cap0002004 Messages postés 15 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 6 août 2004
30 juil. 2004 à 15:16
;-)

SQL = "CREATE TABLE ' " & NomTable & " ' (Num_emp, DateJ....)"
0
Rejoignez-nous