oui, pas de souci au niveau de la connexion,
mais je ne sais pas quoi mettre dans la requete... je ne peux pas faire un select * from sheet1
oui, pas de souci au niveau de la connexion,
mais je ne sais pas quoi mettre dans la requete... je ne peux pas faire un select * from sheet1
en fait c'est bien ça le problème, je ne sais pas comment ecrire la requete..
Le code du projet (sous 2003) à l'époque :
On affichait le fichier Excel dans une DataGrid.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Dim strConn As String = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & file & ";Extended Properties=""Excel 8.0;" & IIf(FirstRowCols, "", "HDR=No;") & """" Dim objConn As New System.Data.OleDb.OleDbConnection(strConn) objConn.Open() Dim TableSchema As DataTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"}) Dim RangeName As String = "[" & TableSchema.Rows(Sheet)("TABLE_NAME").ToString() & "]" ' Create objects ready to grab data Dim objCmd As New System.Data.OleDb.OleDbCommand("SELECT * FROM " & RangeName, objConn) Dim objDA As New System.Data.OleDb.OleDbDataAdapter objDA.SelectCommand = objCmd ' Fill DataSet Dim objDS As New System.Data.DataSet objDA.Fill(objDS, RangeName) ' Clean up and return DataSet objConn.Close()
regarde ca vient d'un topic du forum
et il fait bien une requete dans le genre
Cordialement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 With ADOCommand .ActiveConnection = Source .CommandText = "SELECT * FROM [feuil1$A1:A1]" 'attention ne pas oublier le $ End With
Nasty
Code : Sélectionner tout - Visualiser dans une fenêtre à part 'TODO : trouver une signature mieux que celle la
Merci beaucoup pour votre aide!
Mais je crois que je vais abandonner pour aujourd'hui.
En tout cas merci
Bonjour,
C'est reparti pour une journée de galère...
je me retrouve avec des erreurs de cast pour les 2 dataset, celui avec la bdd s'affiche tout de meme dans le datagrid, par contre rien ne se passe avec excel..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 Dim ConnexionA As New ClassBase ConnexionA.Connexion_access() Dim Requete As String = "SELECT * FROM OPERATION" Dim objDa As New OleDb.OleDbDataAdapter Dim objDs As New DataSet Dim objcmd As New OleDb.OleDbCommand Dim objdat As DataTable Try objcmd = New OleDb.OleDbCommand(Requete) objDa = New OleDb.OleDbDataAdapter(objcmd) objcmd.Connection = ConnexionA.connexion objDa.Fill(objDs, "OPERATION") objdat = objDs.Tables("OPERATION") Catch ex As Exception MessageBox.Show(ex.Message) End Try DataGrid1.DataSource = objDs.Tables("OPERATION") Dim ConnexionE As New ClassBase ConnexionE.Connexion_Excel("C:\Documents and Settings\a806303\Desktop\Import_OP_CW03.xls") Dim objDa1 As New OleDb.OleDbDataAdapter Dim objDs1 As New DataSet Dim objcmd1 As New OleDb.OleDbCommand Dim objdat1 As DataTable Dim requete1 As String Try requete1 = "SELECT * FROM [sheet1$]" objcmd1 = New OleDb.OleDbCommand(requete1) objDa1 = New OleDb.OleDbDataAdapter(objcmd1) objcmd1.Connection = ConnexionE.connexion objDa1.Fill(objDs1, "OPERATION") objdat1 = objDs1.Tables("OPERATION") DataGrid2.DataSource = objDs1.Tables("OPERATION") Catch ex As Exception MessageBox.Show(ex.Message) End Try
Les erreurs se produisent sur quelles lignes exactement ?
Bonjour,
T'es bien matinal pour un stagiaire
Tu rencontre quoi comme erreur/warning lors que tu travailles avec le fichier Excel?
Cordialement
Nasty
Code : Sélectionner tout - Visualiser dans une fenêtre à part 'TODO : trouver une signature mieux que celle la
Je suis là depuis 7h
l'erreur que j'obtiens pour les 2 :Je crois que c'est à ce niveau là:Specified cast is not valid
Code : Sélectionner tout - Visualiser dans une fenêtre à part objdat = objDs.Tables("OPERATION")Cependant, les données de la table access s'affiche quand même dans le datagrid1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part objdat1 = objDs1.Tables("OPERATION")
Je suis desesperant :/
Bon il y a un peu de nouveau, j'arrive à extraire les données du fichier excel par la requete SELECT * FROM [Sheet1$]
Mais maintenant je n'arrive pas à faire la liaison entre les 2 dataset pour faire un insert...
voiçi le code au complet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 Dim ConnexionA As New ClassBase ConnexionA.Connexion_access() Dim objDa As New OleDb.OleDbDataAdapter Dim objDs As New DataSet Dim objcmd As New OleDb.OleDbCommand Dim objdat As New Data.DataTable Dim Requete As String = "SELECT * FROM OPERATION" Try objcmd = New OleDb.OleDbCommand(Requete) objDa = New OleDb.OleDbDataAdapter(objcmd) objcmd.Connection = ConnexionA.connexion objDa.Fill(objDs, "OPERATION") objdat = objDs.Tables("OPERATION") Catch ex As Exception MessageBox.Show(ex.Message) End Try DataGrid1.DataSource = objDs.Tables("OPERATION") Dim ConnexionE As New ClassBase ConnexionE.Connexion_Excel("C:\Documents and Settings\a806303\Desktop\Import_OP_CW03.xls") Dim objDa1 As New OleDb.OleDbDataAdapter Dim objDs1 As New DataSet Dim objcmd1 As New OleDb.OleDbCommand Dim objdat1 As New Data.DataTable Dim Requete1 As String = "SELECT * FROM [Sheet1$]" Try objcmd1 = New OleDb.OleDbCommand(Requete1) objDa1 = New OleDb.OleDbDataAdapter(objcmd1) objcmd1.Connection = ConnexionE.connexion objDa1.Fill(objDs1, "OPERATION") objdat1 = objDs1.Tables("OPERATION") Catch ex As Exception MessageBox.Show(ex.Message) End Try DataGrid2.DataSource = objDs1.Tables("OPERATION")
Tu dois faire quoi exactement ? Remplir ton Ds (celui de la DB) avec les données du fichier Excel ? En gros les fusionner
oui voilà, remplacer les données existantes dans la table par celles du fichier excel
Bonjour
Tu dos remplacer les données existants dans la base de données, par les données du fichier Excel si j'ai bien compris
Tu peux essayer de faire un insert directement dans ta table
Cordialement
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim requete as string = "Insert into taTable(champ1, champs2) Values(Select * from [Sheet1$] )
Nasty
Code : Sélectionner tout - Visualiser dans une fenêtre à part 'TODO : trouver une signature mieux que celle la
Cela ne marche pas...
ça commence à me rendre fou cette affaire!
Tu peux l'ajouter à la main sinon, tu parcours ton DataSetExcel, tu créer un Row, tu remplis le row et ensuite tu ajoutes le row dans le DataSetDB et tu fais un Update de DataSetDB.
Regarde les fonctions du DataSet, tu as NewRow, etc.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager