Ouggada
Messages postés38Date d'inscriptiondimanche 24 décembre 2000StatutMembreDernière intervention 4 mars 2009
-
5 févr. 2009 à 10:48
Ouggada
Messages postés38Date d'inscriptiondimanche 24 décembre 2000StatutMembreDernière intervention 4 mars 2009
-
12 févr. 2009 à 11:54
Bonjour à tous.
Voila mon problème : je programme une application windows sous visual studio 2005 en vb.net avec un bdd access 2000(pas le choix).
Du coup par l'intermédiaire d'un DataAdapter je charge plusieurs tables dans un Dataset puis j'affiche le résultats dans un Datagrid.
Mais o maman que se passe-t-il?
Un des champs se répète pour chaque requete....
Je suis sous win XP Pro, Visual studio 2005, Access 2000.
Je vous remerci d'avance pour vos réponses car là, je commence à atteindre le fond.
Voici mon code :
-----------------------------------
Public Class Report1
Private Sub Report_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load
Dim oDataset As DataSet = New DataSet("oDataset")
'Chaque Système de Gestion de base de Données(SGBD) a des erreurs spécifiques
'Pour les détecter il faut utiliser les types d'erreurs spécifiques : dans notre cas 'OleDbException
'Exemple :
'Try
'MyConnection.Open()
'Catch es As OleDbException
'MsgBox(ex.Message)
'End Try
Try
Dim oConnection As OleDb.OleDbConnection New OleDb.OleDbConnection("Provider Microsoft.Jet.OLEDB.4.0;" & "Data source = C:\Documents and Settings\edi\Bureau\Tahar's\AP\APDotVbClip\Test.mdb;")
'Si la propriété EnforceConstraints du DataSet est à False,
'les contraintes ne sont pas appliquées au dataset,
'donc l'ordre des adapteurs n'a pas d'importance.
oDataset.EnforceConstraints = False 'litéralement : Ne pas prendre en charge les contraintes
'Déclaration et création de l'objet DataAdapter
'et remplissage du dataset grâce aux requetes
'Dim oAdapt As New OleDb.OleDbDataAdapter("SELECT [CLIP_XDOSCLI].[XBPC_0], [CLIP_XDOSCLI].[XCODBANK_0], " & _
'"[CLIP_XBANQUE].[XBQNAM_0], [CLIP_XDOSCLI].[XCODPRO_0], [CLIP_SPACKD].[ITMDES1_0], [CLIP_XDOSCLI].[XDCNUM_0], " & _
'"[CLIP_XDOSCLI].[XCOMDAT_0], [CLIP_XDOSCLI].[XREFCLI_0], [CLIP_SDELIVERY].[DLVDAT_0], [CLIP_XDOSCLI].[XDELIVDEM_0], " & _
'"[CLIP_XDOSCLI].[XBATRET_0], [CLIP_XDOSCLI].[XDATBL_0], [CLIP_XDOSCLI].[XQTEDEM_0], [CLIP_SINVOICED].[QTY_0], " & _
'"[CLIP_XDOSCLI].[XMONTANT_0], [CLIP_XDOSCLI2].[XNBFEUIL_0], [CLIP_XDOSCLI2].[XRECT1_0], [CLIP_XDOSCLI2].[XRECT2_0], " & _
'"[CLIP_XDOSCLI2].[XRECT3_0], [CLIP_XDOSCLI2].[XRECT4_0], [CLIP_XDOSCLI2].[XRECT5_0], [CLIP_XDOSCLI2].[XRECT6_0], " & _
'"[CLIP_XDOSCLI2].[XVERS1_0], [CLIP_XDOSCLI2].[XVERS2_0], [CLIP_SDELIVERY].[NETWEI_0], [CLIP_SDELIVERY].[SDHNUM_0] " & _
'"FROM [CLIP_XDOSCLI], [CLIP_SPACKD], [CLIP_SINVOICED], [CLIP_SDELIVERY], [CLIP_XDOSCLI2] " & _
'"WHERE [CLIP_SDELIVERY].[XDCNUM_0] = [CLIP_XDOSCLI].[XDCNUM_0] AND " & _
'"[CLIP_SDELIVERY].[XDCNUM_0] = [CLIP_XDOSCLI2].[XDCNUM_0] AND " & _
'"[CLIP_SDELIVERY].[XBQNUM_0] = [CLIP_XBANQUE].[XBQNUM_0] AND " & _
'"[CLIP_SDELIVERY].[SDHNUM_0] = [CLIP_SINVOICED].[SDHNUM_0] AND " & _
'"[CLIP_SINVOICED].[XBQNUM_0] = [CLIP_XDOSCLI].[XBQNUM_0] AND " & _
'"[CLIP_XDOSCLI].[XNUMDEB_0] = [CLIP_SPACKD].[XNUMDEB_0]; ", oConnection)
Dim oAdaptBQ As New OleDb.OleDbDataAdapter("SELECT XBQNAM_0 FROM [CLIP_XBANQUE] ", oConnection)
Dim oAdaptSDEL As New OleDb.OleDbDataAdapter("SELECT DLAVDAT_0, NETWEI_0, SDHNUM FROM [CLIP_SDELIVERY]", oConnection)
Dim oAdaptSIN As New OleDb.OleDbDataAdapter("SELECT QTY_0 FROM [CLIP_SINVOICED]", oConnection)
Dim oAdaptSPA As New OleDb.OleDbDataAdapter("SELECT ITMDES1_0 FROM [CLIP_SPACKD]", oConnection)
Dim oAdaptXDOS As New OleDb.OleDbDataAdapter("SELECT XBPC_0, XCODBANK_0, XCODPRO_0, DISTINCT CLIP_XDOSCLI.XDCNUM_0, " & _
"XCOMDAT_0, XREFCLI_0, XDELIVDEM_0, XBATDRET_0, XDATBL_0, XQTEDEM_0, XMONTANT_0 FROM [CLIP_XDOSCLI] GROUP BY CLIP_XDOSCLI.XDCNUM_0 ", oConnection)
Dim oAdaptXDOS2 As New OleDb.OleDbDataAdapter("SELECT XNBFEUIL_0, XRECT1_0, XRECT2_0, XRECT3_0, " & _
"XRECT4_0, XRECT5_0, XRECT6_0, XVERS1_0, XVERS2_0 FROM [CLIP_XDOSCLI2]", oConnection)
'Création des colonnes pour les datarelations
Dim dc1 As DataColumn
Dim dc2 As DataColumn
Dim dc3 As DataColumn
Dim dc4 As DataColumn
Dim dc5 As DataColumn
Dim dc6 As DataColumn
Dim dc7 As DataColumn
Dim dc8 As DataColumn
'Création d'une table contenat tous les champs requis
'Dim oTable As DataTable = New DataTable("oCNCE")
Dim oTableBQ As DataTable = New DataTable("oCNCE")
Dim oTableSDEL As DataTable = New DataTable("oCNCE")
Dim oTableSIN As DataTable = New DataTable("oCNCE")
Dim oTableSPA As DataTable = New DataTable("oCNCE")
Dim oTableXDOS As DataTable = New DataTable("oCNCE")
Dim oTableXDOS2 As DataTable = New DataTable("oCNCE")
'Remplissage de la datatable à partir de la requete sql
'oAdapt.Fill(oTable)
'Here we combined two datacolumns to the relations obj
Dim DataRelation = New DataRelation("TabSDELandTabXDOS", dc3, dc4)
oDataset.Relations.Add(DataRelation)
Dim DataRelation1 = New DataRelation("TabSDELandTabXDOS2", dc3, dc5)
oDataset.Relations.Add(DataRelation1)
Dim DataRelation2 = New DataRelation("TabSDELandTabBQ", dc1, dc2)
oDataset.Relations.Add(DataRelation2)
Dim DataRelation3 = New DataRelation("TabSINandTabXDOS", dc8, dc4)
oDataset.Relations.Add(DataRelation3)
Dim DataRelation4 = New DataRelation("TabSINandTabSDEL", dc7, dc6)
oDataset.Relations.Add(DataRelation4)
'Fermeture de la connexion afin de ne pas monopoliser les ressources
oConnection.Close()
'Vérif si erreur
Catch ex As Exception
MsgBox("Erreur !!! " & ex.Message)
End Try
'Remplissage du datagrid avec la table
DataGridViewReport2.DataSource = oDataset.DefaultViewManager
End Sub
' Public Sub connection()
'Dim oDataset As DataSet = New DataSet()
'Chaque Système de Gestion de base de Données(SGBD) a des erreurs spécifiques
'Pour les détecter il faut utiliser les types d'erreurs spécifiques : dans notre cas 'OleDbException
'Exemple :
'Try
'MyConnection.Open()
'Catch es As OleDbException
'MsgBox(ex.Message)
'End Try
' Try
'Dim oConnection As OleDb.OleDbConnection New OleDb.OleDbConnection("Provider Microsoft.Jet.OLEDB.4.0; Data source = C:\Documents and Settings\edi\Bureau\Tahar's\AP\APDotVbClip\Test.mdb;") 'Jet OLEDB : Database Password = odbc;")
'Si la propriété EnforceConstraints du DataSet est à False,
'les contraintes ne sont pas appliquées au dataset,
'donc l'ordre des adapteurs n'a pas d'importance.
' oDataset.EnforceConstraints = False 'litéralement : Ne pas prendre en charge les contraintes
'Déclaration et création de l'objet DataAdapter
'et remplissage du dataset grâce aux requetes
'Dim oAdapterBanq As New OleDb.OleDbDataAdapter("SELECT XBQNAM_0, XDCNUM_0 FROM CLIP_XBANQUE WHERE XBQNAM_0 = ComboBoxBanque1.SelectedItem", oConnection)
'Dim oDttBanq As New DataTable
' oAdapterBanq.Fill(oDataset, "XBANQUE")
' oDttBanq = oDataset.Tables("XBANQUE")
' Dim oAdapterSdeliv As New OleDb.OleDbDataAdapter("SELECT NETWEI_0, SDHNUM_0, XDCNUM_0 FROM CLIP_SDELIVERY", oConnection)
' oAdapterSdeliv.Fill(oDataset, "SDELIVERY")
'DataGridViewReport.SetOLEDBDataAdapter = oAdapterSdeliv
'DataGridViewReport.SetDataSet = oDataset
' Dim oAdapterSdeliD As New OleDb.OleDbDataAdapter("SELECT XDCNUM_0 FROM CLIP_SDELIVERYD", oConnection)
' oAdapterSdeliD.Fill(oDataset, "SDELIVERYD")
''DataGridViewReport.SetOLEDBDataAdapter = oAdapterSdeliD
' DataGridViewReport.SetDataSet = oDataset
'Dim oAdapterSinv As New OleDb.OleDbDataAdapter("SELECT QTY_0, XDCNUM_0 FROM CLIP_SINVOICED", oConnection)
' oAdapterSinv.Fill(oDataset, "SINVOICED")
' DataGridViewReport.SetOLEDBDataAdapter = oAdapterSinv
' DataGridViewReport.SetDataSet = oDataset
'Dim oAdapterSpac As New OleDb.OleDbDataAdapter("SELECT ITMDES1_0, XNUMDEB_0 FROM CLIP_SPACKD", oConnection)
' oAdapterSpac.Fill(oDataset, "SPACKD")
'DataGridViewReport.SetOLEDBDataAdapter = oAdapterSpac
' DataGridViewReport.SetDataSet = oDataset
'Dim oAdapterXdos As New OleDb.OleDbDataAdapter("SELECT XBPC_0, XCODBANK_0, XDCNUM_0, XCOMDAT_0, XREFCLI_0, XDELIVDEM_0, DLVDAT_0, XBATRET_0, XDATBL_0, XQTEDEM_0, XMONTANT_0, XCODPRO_0, XNUMDEB_0 FROM CLIP_XDOSCLI", oConnection) ' oAdapterXdos.Fill(oDataset, "XDOSCLI") 'Where VarAnnee ReturnAnnee(XCOMDAT_0) AND XCOMDAT_0 SelectByTrim(VarTrim)
'DataGridViewReport.SetOLEDBDataAdapter = oAdapterXdos
'DataGridViewReport.SetDataSet = oDataset
'Dim oAdapterXdos2 As New OleDb.OleDbDataAdapter("SELECT XDCNUM_0, XNBFEUIL_0, XRECT1_0, XRECT2_0, XRECT3_0, XRECT4_0, XRECT5_0, XRECT6_0, XVERS1_0, XVERS2_0 FROM CLIP_XDOSCLI2", oConnection)
' oAdapterXdos2.Fill(oDataset, "XDOSCLI2")
' DataGridViewReport.SetOLEDBDataAdapter = oAdapterXdos2
' DataGridViewReport.SetDataSet = oDataset
'Création du datarelation qui sert à relier les tables entres elles
'Dim oRelation As DataRelation = oDataset.Relations.Add("Reporting", oDataset.Tables("CLIP_XDOSCLI").Columns("XDCNUM_0"), oDataset.Tables("CLIP_XBANQUE").Columns("SDCNUM_0"))
'Dim oRelation2 As DataRelation = oDataset.Relations.Add("Reporting2", oDataset.Tables("CLIP_XDOSCLI").Columns("SDCNUM_0"), oDataset.Tables("CLIP_SDELIVERY").Columns("SDCNUM_0"))
'Dim oRelation3 As DataRelation = oDataset.Relations.Add("Reporting3", oDataset.Tables("CLIP_XDOSCLI").Columns("SDCNUM_0"), oDataset.Tables("CLIP_SDELIVERYD").Columns("SDCNUM_0"))
'Dim oRelation4 As DataRelation = oDataset.Relations.Add("Reporting4", oDataset.Tables("CLIP_XDOSCLI").Columns("SDCNUM_0"), oDataset.Tables("CLIP_SINVOICED").Columns("SDCNUM_0"))
'Dim oRelation5 As DataRelation = oDataset.Relations.Add("Reporting5", oDataset.Tables("CLIP_XDOSCLI").Columns("SDCNUM_0"), oDataset.Tables("CLIP_XDOSCLI2").Columns("SDCNUM_0"))
'Dim oRelation6 As DataRelation = oDataset.Relations.Add("Reporting6", oDataset.Tables("CLIP_XDOSCLI").Columns("XNUMDEB_0"), oDataset.Tables("CLIP_SPACKD").Columns("XNUMDEB_0"))
'Fermeture de la connexion afin de ne pas monopoliser les ressources
' oConnection.Close()
'Vérif si erreur
' Catch ex As Exception
' MsgBox("Erreur !!! " & ex.Message)
' End Try
'End Sub
Ouggada
Messages postés38Date d'inscriptiondimanche 24 décembre 2000StatutMembreDernière intervention 4 mars 2009 5 févr. 2009 à 11:42
Excusez moi!
je me suis complètement planté ce code est un code alternatif à mon
problème...qui ne marche pas soit dit en passant et qui me renvoi comme erreur
"Aucune valeur donnée pour un ou plusieurs paramètres"...
Le "vrai" code est celui-ci :
-----------------------------------------------
Public Class Report
Private Sub Report_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load
Dim oDataset As DataSet = New DataSet("oDataset")
Try
Dim oConnection As OleDb.OleDbConnection New OleDb.OleDbConnection("Provider Microsoft.Jet.OLEDB.4.0;" & "Data source = C:\Documents and Settings\edi\Bureau\Tahar's\AP\APDotVbClip\Test.mdb;") 'Jet OLEDB : Data Source Password = odbc;")
oDataset.EnforceConstraints = False 'litéralement : Ne pas prendre en charge les contraintes
Dim oAdaptBQ As New OleDb.OleDbDataAdapter("SELECT * FROM [CLIP_XBANQUE] ", oConnection)
Dim oAdaptSDEL As New OleDb.OleDbDataAdapter("SELECT * FROM [CLIP_SDELIVERY]", oConnection)
Dim oAdaptSIN As New OleDb.OleDbDataAdapter("SELECT * FROM [CLIP_SINVOICED]", oConnection)
Dim oAdaptSPA As New OleDb.OleDbDataAdapter("SELECT * FROM [CLIP_SPACKD]", oConnection)
Dim oAdaptXDOS As New OleDb.OleDbDataAdapter("SELECT * FROM [CLIP_XDOSCLI]", oConnection)
Dim oAdaptXDOS2 As New OleDb.OleDbDataAdapter("SELECT * FROM [CLIP_XDOSCLI2]", oConnection)
'Création d'une table contenat tous les champs requis
Dim oTable As DataTable = New DataTable("oCNCE")
'Remplissage de la datatable à partir de la requete sql
'oAdapt.Fill(oTable)
'Remplissage du datagrid avec la table
DataGridViewReport.DataSource = oTable
'Fermeture de la connexion afin de ne pas monopoliser les ressources
oConnection.Close()
'Vérif si erreur
Catch ex As Exception
MsgBox("Erreur !!! " & ex.Message)
End Try
End Sub
End Class
En espérant que vous excuserez ma maladresse et que vous aurez la gentillesse
de me répondre.
PS : je n'arrive pas à afficher l'image du résultat dans mon datagrid....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Ouggada
Messages postés38Date d'inscriptiondimanche 24 décembre 2000StatutMembreDernière intervention 4 mars 2009 11 févr. 2009 à 16:44
bon, après maintes et maintes recherches je n'ai toujours pas trouver le moyen de mettre les champs des différentes tables au meme niveau et non séparé verticalement.
Si tout ce que j'ai mis fais peur je remet une partie du code sans commentaire:
Dim oDataset As DataSet = New DataSet("oDataset")
Try
Dim oConnection As OracleConnection = New OracleConnection()
oConnection.ConnectionString = "Server=OraOLEDB.Oracle; Data Source=*** ;USER ID=***; PASSWORD=***"
oConnection.Open()
Dim oAdaptBQ As New OleDb.OleDbDataAdapter("SELECT XBQNAM_0 FROM CLIP_XBANQUE ", oConnection)
Dim oAdaptSDEL As New OleDb.OleDbDataAdapter("SELECT DLVDAT_0, NETWEI_0, SDHNUM_0 FROM [CLIP_SDELIVERY]", oConnection)
Dim oAdaptSIN As New OleDb.OleDbDataAdapter("SELECT QTY_0 FROM CLIP_SINVOICED", oConnection)
Dim oAdaptXDOS As New OleDb.OleDbDataAdapter("SELECT DISTINCT(XDCNUM_0), XBPC_0, XCODBANK_0, XCODPRO_0,
XCOMDAT_0, XREFCLI_0, XDELIVDEM_0, XBATDRET_0, XDATBL_0, XQTEDEM_0, XMONTANT_0 FROM CLIP_XDOSCLI ", oConnection)
Dim oAdaptXDOS2 As New OleDb.OleDbDataAdapter("SELECT XNBFEUIL_0, XRECT1_0, XRECT2_0, XRECT3_0, XRECT4_0, XRECT5_0, XRECT6_0, XVERS1_0, XVERS2_0 FROM CLIP_XDOSCLI2", oConnection)
Dim oTable As DataTable = New DataTable()
oAdaptBQ.Fill(oTable)
oAdaptSDEL.Fill(oTable)
oAdaptSIN.Fill(oTable)
oAdaptXDOS.Fill(oTable)
oAdaptXDOS2.Fill(oTable)
DataGridViewBq.DataSource = oTable
oConnection.Close()
Catch ex As Exception
MsgBox("Erreur !!! " & ex.Message)
End Try