Probleme VB Base de Données
Cormega92
Messages postés
40
Statut
Membre
-
Cormega92 Messages postés 40 Statut Membre -
Cormega92 Messages postés 40 Statut Membre -
Bonjour,
j'ai un petit probleme sur un projet VB, mon code est le suivant:
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
cnxstr = "provider = microsoft.jet.oledb.4.0 ; Data Source = C:\Antoine\VB\Une table test\Une_table\GestC.mdb ;"
cnx = New OleDbConnection
cnx.ConnectionString = cnxstr
cnx.Open()
sql = "SELECT Article.Code, Article.Nom, Article.FINSTOCK AS FinStock, Article.FRN5 AS Frn, Article.DerPa, Article.ReliquatClient AS CdeClt, Article.ReliquatFseur AS CdeFour, [N -0 Facture].SommeDeQuantite AS 2008, [N-1 FACTURE].SommeDeQuantite AS 2007, [n-2 FACTURE].SommeDeQuantite AS 2006, Article.Coefficient AS Coef, Article.StockPhyGen AS [St-phy,], MIN(DateDocument) AS DatePremierAchat, MAX(DateDocument) AS DateDernierAchat FROM LigneFactureFournisseur INNER JOIN ((([N-1 FACTURE] RIGHT JOIN Article ON [N-1 FACTURE].CodeArticle = Article.Code) LEFT JOIN [n-2 FACTURE] ON Article.Code = [n-2 FACTURE].CodeArticle) LEFT JOIN [N -0 Facture] ON Article.Code = [N -0 Facture].CodeArticle) ON LigneFactureFournisseur.CodeArticle = Article.Code WHERE ((EnteteFacture.Date) BETWEEN '%" & MaskedDateDebut.text & "%' AND '%" & MaskedDateFin.text & "%') GROUP BY Article.Code, Article.Nom, Article.FINSTOCK, Article.FRN5, Article.DerPa, Article.ReliquatClient, Article.ReliquatFseur, [N -0 Facture].SommeDeQuantite, [N-1 FACTURE].SommeDeQuantite, [n-2 FACTURE].SommeDeQuantite, Article.Coefficient, Article.StockPhyGen, Article.Sommeil HAVING(((Article.Code) Is Null Or (Article.Code) Is Not Null) And ((Article.Sommeil) = 0)) ORDER BY Article.Code"
'exécution de la commande(cmd),
'du dataadapter (dta),
'du dataset(dts),
'de la datatable (dtt)
'sql=>cmd=>dta
'cnx=>cmd
'dta=>dts=>dtt
dts = New DataSet
cmd = New OleDbCommand(sql)
dta = New OleDbDataAdapter(cmd)
cmd.Connection() = cnx
cmdb = New OleDbCommandBuilder(dta)
'chargement du DataSet à partir du DataAdapter
dta.Fill(dts, "Article")
'chargement de la DataTable à partir du DataSet
dtt = dts.Tables("Article")
'affichage des données dans le datagrid
myDataGridView.DataSource = dtt
cnx.Close()
C'est un code que j'utilise ailleurs dans mon code ou seul la ligne en gras est remplacé par une autre condition et qui marche parfaitement. Le problème est que lorsque je lance ma recherche e message d'erreur suivant apparait:"L'exception OleDbException n'a pas été gérée. Le champ spécifié 'EnteteFacture.Date' peut désigner plusieurs tables listées dans la clause FROM de votre instruction SQL." Sinon le programme se compile et ne m'affiche aucune erreur.
j'ai un petit probleme sur un projet VB, mon code est le suivant:
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
cnxstr = "provider = microsoft.jet.oledb.4.0 ; Data Source = C:\Antoine\VB\Une table test\Une_table\GestC.mdb ;"
cnx = New OleDbConnection
cnx.ConnectionString = cnxstr
cnx.Open()
sql = "SELECT Article.Code, Article.Nom, Article.FINSTOCK AS FinStock, Article.FRN5 AS Frn, Article.DerPa, Article.ReliquatClient AS CdeClt, Article.ReliquatFseur AS CdeFour, [N -0 Facture].SommeDeQuantite AS 2008, [N-1 FACTURE].SommeDeQuantite AS 2007, [n-2 FACTURE].SommeDeQuantite AS 2006, Article.Coefficient AS Coef, Article.StockPhyGen AS [St-phy,], MIN(DateDocument) AS DatePremierAchat, MAX(DateDocument) AS DateDernierAchat FROM LigneFactureFournisseur INNER JOIN ((([N-1 FACTURE] RIGHT JOIN Article ON [N-1 FACTURE].CodeArticle = Article.Code) LEFT JOIN [n-2 FACTURE] ON Article.Code = [n-2 FACTURE].CodeArticle) LEFT JOIN [N -0 Facture] ON Article.Code = [N -0 Facture].CodeArticle) ON LigneFactureFournisseur.CodeArticle = Article.Code WHERE ((EnteteFacture.Date) BETWEEN '%" & MaskedDateDebut.text & "%' AND '%" & MaskedDateFin.text & "%') GROUP BY Article.Code, Article.Nom, Article.FINSTOCK, Article.FRN5, Article.DerPa, Article.ReliquatClient, Article.ReliquatFseur, [N -0 Facture].SommeDeQuantite, [N-1 FACTURE].SommeDeQuantite, [n-2 FACTURE].SommeDeQuantite, Article.Coefficient, Article.StockPhyGen, Article.Sommeil HAVING(((Article.Code) Is Null Or (Article.Code) Is Not Null) And ((Article.Sommeil) = 0)) ORDER BY Article.Code"
'exécution de la commande(cmd),
'du dataadapter (dta),
'du dataset(dts),
'de la datatable (dtt)
'sql=>cmd=>dta
'cnx=>cmd
'dta=>dts=>dtt
dts = New DataSet
cmd = New OleDbCommand(sql)
dta = New OleDbDataAdapter(cmd)
cmd.Connection() = cnx
cmdb = New OleDbCommandBuilder(dta)
'chargement du DataSet à partir du DataAdapter
dta.Fill(dts, "Article")
'chargement de la DataTable à partir du DataSet
dtt = dts.Tables("Article")
'affichage des données dans le datagrid
myDataGridView.DataSource = dtt
cnx.Close()
C'est un code que j'utilise ailleurs dans mon code ou seul la ligne en gras est remplacé par une autre condition et qui marche parfaitement. Le problème est que lorsque je lance ma recherche e message d'erreur suivant apparait:"L'exception OleDbException n'a pas été gérée. Le champ spécifié 'EnteteFacture.Date' peut désigner plusieurs tables listées dans la clause FROM de votre instruction SQL." Sinon le programme se compile et ne m'affiche aucune erreur.
A voir également:
- Probleme VB Base de Données
- Fuite données maif - Guide
- Base de registre - Guide
- Supprimer les données de navigation - Guide
- Gigaset a170h problème base ✓ - Forum telephonie fixe
- Tnt base de données vide - Forum TNT / Satellite / Réception
10 réponses
Salut
Tu devrai faire un constructeur!!
Et pas tout crée dans ton bouton. voila tour la "gueulante" le prend pas mal.
Dans ce cas il me semble que ce soit une erreur de SQL.
sinon indique nous ton message d'erreur c'est vriment ce qui est important
Tu devrai faire un constructeur!!
Et pas tout crée dans ton bouton. voila tour la "gueulante" le prend pas mal.
Dans ce cas il me semble que ce soit une erreur de SQL.
sinon indique nous ton message d'erreur c'est vriment ce qui est important
Le message d'erreur apparait lorsque j'appuie sur le bouton rechercher il me renvoi sous Visual Studio et m'affiche le message.
Cela vient peut être de ma syntaxe SQL (de la partie écrite en gras) mais j'utilise exactement la même sur un autre bouton ou je fais une recherche sur le nom et l'identifiant des articles avec la meme syntaxe sauf que c'est des textBox alors que la c'est des MaskedTextBox.
Cela vient peut être de ma syntaxe SQL (de la partie écrite en gras) mais j'utilise exactement la même sur un autre bouton ou je fais une recherche sur le nom et l'identifiant des articles avec la meme syntaxe sauf que c'est des textBox alors que la c'est des MaskedTextBox.
Je n'est pas VS sur mon poste en ce moment je testerai demain mais a priori sa doit venir de la chiane de caractere qui doit etre crypte ou un truc comme sa essaye de les remplacer sur par des textbox et sinon je pense que sa c'est la conversion des strings en format date.
C'est ce que je me disais mais le prbleme c'est que j ai besoin que l'utilisateur rentre obligatoirement des dates de type jj/mm/aaaa car c'est sous cette forme qu'elles sont inscrites dans la BDD et j'ai pas réussi à résoudre cette contrainte avec des textbox.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je viens de tester avec des textbox et toujours le meme message, au passage le message pointe sur la ligne:
" 'chargement du DataSet à partir du DataAdapter "
dta.Fill(dts, "Article")
" 'chargement du DataSet à partir du DataAdapter "
dta.Fill(dts, "Article")
Je me demande si la raison pour laquelle je ne peut acceder à la table EnteteFacture ne serait pas le fait quelle soit incluse dans les requetes N-0, N-1, N-2 qui sont considérer comme des tables apparemment... mais si tel est le cas comment faire pour y acceder sans devoir modifier toute ma requête (ce n'est pas moi qui ai fait la requête original mais j'ai passé énormément de temps à essayer de l'exploiter pour finalement y arriver dans ma requete de recherche sur les CodeArticle et NomArticle).
Je me demande pourquoi tu n'utiliserai pas des datetimepicker:
Label1.Text = Me.DateTimePicker1.Value.Day & "/" + Me.DateTimePicker1.Value.Month & _
"/" + Me.DateTimePicker1.Value.Year
J'ai essayer aussi et ça me fait pareil donc ça vient pas de la maskedtextbox... Je suis en stage et c'est le dernier module à gérer avant de livrer mon projet. Ca fait 3 jours que je suis dessus et je commence à désespérer.... HELP ME PLEASE!!!
Merci à toi Boris de t'occuper de moi.
Merci à toi Boris de t'occuper de moi.