Nom d'un champ d'une table access

Signaler
Messages postés
37
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
7 mars 2013
-
Messages postés
37
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
7 mars 2013
-
Bonjour,
J'ai un problème dans la connexion entre mon programme VB.Net et ma basse Access 2003 au niveau de ma requête SQL:


Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & "C:\...\mabase.mdb")
Dim Mycommand As OleDbCommand = MyConnexion.CreateCommand()

Mycommand.CommandText = "SELECT * FROM B50-Composants where T-x-Code comp like " & var
MyConnexion.Open()
Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()
.
.
.
myReader.Close()
MyConnexion.Close()
Loop
MyConnexion.Close()


en fait j'ai essaie "SELECT * FROM B50-Composants" mais j'ai eu la même erreur "Erreur de syntaxe dans la clause FROM" vu que la même requête fonctionne avec d'autre table, d'après ma constatation j'ai remarqué que le problème été dans les tables et les champs qui contenaient "-" dans leurs noms et vu que j'ai pas le droit de changés ni les noms des tables ni les noms des champs, avez vous une solutions pour ce problèmes

9 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Bonjour,

en fait j'ai essaie "SELECT * FROM B50-Composants" mais j'ai eu la même erreur "Erreur de syntaxe dans la clause FROM" vu que la même requête fonctionne avec d'autre table, d'après ma constatation j'ai remarqué que le problème été dans les tables et les champs qui contenaient "-" dans leurs noms et vu que j'ai pas le droit de changés ni les noms des tables ni les noms des champs, avez vous une solutions pour ce problèmes

Ah bon !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Et tu as quand même essayé, j'espère, de placer entre crochets le nom de ta table , genre :
"select * from [cette fameuse table]"
?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
37
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
7 mars 2013

avec les crochés il passe à l'instruction suivante mais au niveau

Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()
Msgbox((myReader.GetString(1))
myReader.Close()

j'ai l’erreur: Aucune donnée n'existe pour la ligne/colonne.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
et il ne te vient pas à l'idée que le nom du champ, également "fort mal choisi", devrait dans ce cas être lui même mis entre crochets ?




____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
37
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
7 mars 2013

Non mon champs est correctement choisi et j'ai déjà mis les crochets mais sa me donne la même erreur
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
personne ne t'a parlé du choix du champ, mais du choix du nom donné au champ


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Recolle la syntaxe telle que tu l'as corrigée
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Au fait, as-tu fais le Open de ta connexion avant de lui soumettre une commande ?
Je ne connais pas les syntaxes .Net mais il me semble que cela manque.
Messages postés
37
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
7 mars 2013

voila mon code exact:

Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & "C:\...\MABASE.mdb")
Dim MyConnexion2 As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & "C:\...\MABASE.mdb")
Dim Mycommand As OleDbCommand = MyConnexion.CreateCommand()
Dim Mycommand2 As OleDbCommand = MyConnexion2.CreateCommand()
Mycommand.CommandText = "SELECT * FROM Table_OF where CodeChantier LIKE CodeOF"
MyConnexion.Open()
Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()
Do While myReader.Read()
If myReader.GetString(0) Like "CL*" Then
ComboBox1.Items.Add(myReader.GetString(0) & " " & myReader.GetString(1))
Mycommand2.CommandText = "SELECT * FROM [B50-Composants] where [T-x-Code] LIKE '" & myReader.GetString(4) & "'"
MyConnexion2.Open()
Dim myReader2 As OleDbDataReader = Mycommand2.ExecuteReader()
ComboBox1.Items.Add(myReader2.GetString(0))
myReader2.Close()
MyConnexion2.Close()
End If
Loop
myReader.Close()
MyConnexion.Close()

la première requête sa fonctionne bien mais la deuxième non