cs_Bruno28
Messages postés21Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention18 octobre 2005
-
27 juil. 2005 à 16:22
cs_Bruno28
Messages postés21Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention18 octobre 2005
-
3 août 2005 à 10:01
Bonjour à tous.
Suis nouveau sur le forum, et en prog aussi, mais bon, j'me débrouille quand même.
J'ai créé un formulaire avec un DataGrid et des ComboBox pour filtrer mon DataGrid .
Je remplis le premier Combo avec les données d'une table Access, affiche les données correspondantes dans le DataGrid , et je remplis le 2ème ComboBox en fonction du 1er (je vide bien mon 2ème Combo si modification du choix dans le 1er), mais mon DataGrid AJOUTE les enregistrement à la 1ère sélection, alors que je veut filtrer les enregistrements déjà présents. Il faut donc vider le DataGrid avant de le re-remplir.
ci dessous le code utilisé pour remplir mon datagrid
J'espère que c'est clair
Merci d'avance
'Ce code pour le DataGrid (liste)
'Initialisation de la chaîne de paramètres pour la connexion
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= C:\Documents and Settings\...\MaBase.mdb;"
'Initialisation de la chaîne contenant l'instruction SQL (ContenuRefTuyaux es le contenu de mon ComboBox)
strSql = "SELECT Stocks.* FROM Stocks WHERE Stocks.RefTuyau LIKE" & "'" & ContenuRefTuyaux & "'"
'Instanciation d'un Objet Connexion
ObjetConnection =
New OleDbConnection
'Donner à la propriété ConnectionString les paramètres de connexion
ObjetConnection.ConnectionString = strConn
'Ouvrir la connexion
ObjetConnection.Open()
'Instancer un objet Commande
ObjetCommand =
New OleDbCommand(strSql)
'Instancer un objet Adapter
ObjetDataAdapter =
New OleDbDataAdapter(ObjetCommand)
'initialiser l'objet Command
ObjetCommand.Connection() = ObjetConnection
'initialise l'objet OleCBComandBuilder (sinon pas d'update)
ObjetCB =
New OleDbCommandBuilder(ObjetDataAdapter)
'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
cs_69chris
Messages postés318Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention30 décembre 20051 3 août 2005 à 09:06
Salut Bruno,
Pour la doc, pas difficile, tu vas sur http://msdn.microsoft.com et ensuite une petite recherche devrait donner quelque chose.
Pour ton problème, je vais faire une syntèse des opérations que tu réalises et des objets que tu utilise.
Le DataAdapter permet de remplir une "structure" logique avec des
données provenant d'une ou plusieurs requête(s) SQL. Cette "struture"
logique peut être un DataSet ou un sous élément le DataTable. En effet,
le DataSet met à disposition du développpeur une mini base de données
virtuelle en mémoire. Le DataSet (base de données) gère plusieurs jeux
de données les DataTable (tables de la base de données), des
DataRelation (foreign key) et ainsi de suite. Le DataSet fourni donc
90% des fonctionnalités d'une base de données.
Pour revenir à ton code, lorsque que tu utilise la méthode Fill sur le DataSet, celui-ci crée une table.
Après l'instruction :
ObjetDataAdapter.Fill(ObjetDataSet, "Stocks")
ObjetDataSet contient une table "Stocks" qui contient tes données.
PCPT
Messages postés13278Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201848 27 juil. 2005 à 16:39
je ne suis pas certain de bien comprendre ton problème :
ma traduction.....
tout est niquel, sauf que le DataGrid (ou MsFlexGrid) ne se vide pas à l'arrivée d'une nouvelle connection
(???)
si c'est bien çà, vider une Flex ne supprime pas les cases. tu peux les vider, mais il restera autant de lignes/colonnes vides qu'il y en avait de remplies.
pour la formater correctement, tu dois la redéfinir comme la première fois
ex :
With MaFlex
.Rows = 1
.Cols = 2
.ColWidth(0) = 90
.ColWidth(1) = 1900
.TextMatrix(0, 1) = "Mon titre"
End With
sinon, il m'a semblé que StrSql était presque parfait :
strSql = "SELECT Stocks.* FROM Stocks WHERE Stocks.RefTuyau LIKE '" & ContenuRefTuyaux & "'"
cs_Bruno28
Messages postés21Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention18 octobre 2005 28 juil. 2005 à 16:02
Merci à toi pour ta réponse PCPT.
Seulement, j'avais bien essayé un reformatage complet, mais j'ai un message dans la 'Liste des taches' qui m'indique que ces methodes ne sont 'pas un membre de System.Windows.forms.DataGrid'.
Comprend pas
Bruno
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Bruno28
Messages postés21Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention18 octobre 2005 3 août 2005 à 08:21
Merci Chris,
Mon patron n'a pas voulu m'acheter de doc, et l'aide n'est pas toujours pertinente, ou nécéssite une connaissance déjà approfondie du sujet.
"Le clear, faut le faire sur la source de données donc le DataTable." ???
Si tu regardes à nouveau le code que j'ai utlisé, il n'y a pas de DataTable. J'ai essayé de vider le DataAdapter, ou le DataSet du DataAdapter, mais pas moyen.
Aurais-je utilisé une mauvaise méthode.
Excuse moi si je traines un peu pour répondre, mais avec les vacances et les sous effectifs qui vont avec, je fait beaucoup de préparation commandes, montage, dessin indus (AutoCAD), et peu de prog. Faut gérer les priorités.