VB.Net Ado.Net Création d'une Table Bug ? [Résolu]

Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
- - Dernière réponse : cboulas
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
- 10 nov. 2009 à 08:58
Bonjour à tous

J'essais de me créer une Table dans un Fichier Acces.

J'utilise mon code mais rien ne fonctionne. J'ai donc fouillé un peu pour trouver un code qui ne fonctionne pas tout à fait et je ne réussi pas à corriger le problème.

J'ai un message d'erreur à la ligne myComm.ExecuteNonQuery() qui dit:
Erreur de syntaxe dans l'instruction CREATE TABLE.

Qu'est ce que je ne fait pas de correct ??

Merci de votre aide

Dim myReader As OleDbDataReader = Nothing
            Dim myConn As OleDbConnection = Nothing
            Dim myComm As OleDbCommand = Nothing

            ' Enregistrement de la requete SQL sous la forme d'une chaine de caractères()
            Dim strSQL As [String] = "CREATE TABLE '%" & txtDossier.Text & "%' (Lot  Text)"

            ' on enregistre l'emplacement de la base de donnée 
            'myConn = New OleDbConnection("Data Source=\My Documents\maBase.sdf")
            myConn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\Recherche.mdb")

            ' Création d'un objet SqlCeCommand permetant de passer des commandes SQL 
            myComm = New OleDbCommand(strSQL, myConn)

            ' Ouverture de la connexion à la base 
            myConn.Open()

            ' exécution de la commande 
            myComm.ExecuteNonQuery()
            ' fermeture de la connexion à la base 
            myConn.Close()
Afficher la suite 

19 réponses

Meilleure réponse
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
3
Merci
Voilà la solution..

même si ce n'est pas toi qui a trouvé la solution.. merci mille fois

Dim strSQL As String = "CREATE TABLE [" & txtDossier.Text & "] (Lot Text(50), Acheteur Text(50))"

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 140 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_MagDix
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
26 novembre 2013
13
0
Merci
Essaye Dim strSQL As [String] = "CREATE TABLE '" & txtDossier.Text & "'"

je pense que ça ira mieux



Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
26 novembre 2013
13
0
Merci
Oups pardon !

Dim strSQL As String = "CREATE TABLE " & txtDossier.Text


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
0
Merci
Bonjour...
Effectivement, ca fonctionne mais je n'ai aucune colonne de créer..

Comment faire pour créer mes colonnes ?? et pourquoi ma requête SQL ne réussis pas à créer les colonnes..


merci de ton aide
Commenter la réponse de cs_MagDix
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
26 novembre 2013
13
0
Merci
"Comment faire pour créer mes colonnes ?? et pourquoi ma requête SQL ne réussis pas à créer les colonnes.. "

Heu... je veux bien mais la quand même il faut faire un effort !

Réfléchi 5 petites minutes... Comment crois-tu qu'il va te créer les colonnes ? Par l'opération du St Esprit ? Quelles colonnes? Il ne peut pas plus te les créer que moi, si tu ne lui en donne pas minimum le nom et la nature des données a stocker... Et la ya pas besoin d'être caller en informatique pour savoir ca...

Fais une recherche google... créer table access sql



Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
9
0
Merci
Hello

Logique que tu n'ai aucune colone car tu as demander de créer une table mais sans colonne

Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
Commenter la réponse de cboulas
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
26 novembre 2013
13
0
Merci
Désolant...

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
0
Merci
Re... je sais que je dois lui donner l'info pour créer des colonnes... Voir mon premier message

Dim strSQL As [String] = "CREATE TABLE '%" & txtDossier.Text & "%' (Lot Text)"


Dans ton code tu ne fais que créer la table... J'avais remarqué... En passant j'ai pris 5 secondes pour me rendre compte de cela... Si je pose la question c'est que je mets dans mon code la possibilité de créer la colonne Lot et toi tu enlève ce bout de code...

Alors ton code fonctionne mais je veux créer la table avec des colones et je ne saisi pas qu'est ce que je ne fait pas de correct.

Bon je sais que ce n'est pas bien coder mais j'ai essayé ca après la création de la table... et ca bug toujours..

Dim strSQL1 As [String] = "ALTER TABLE" & txtDossier.Text & " ADD COLUMN test char(50)"
            myConn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\Recherche.mdb")
            myComm = New OleDbCommand(strSQL1, myConn)
            myConn.Open()
            myComm.ExecuteNonQuery()
            myConn.Close()
Commenter la réponse de cs_MagDix
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
26 novembre 2013
13
0
Merci
En même temps tu ne pécise pas que Lot est le nom de ta colonne... (je ne suis pas expert en SQL) et deuxièmement, si tu le savait, au lieu de poser la question, pourquoi n'as tu pas rajouté simplement la commande ???

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
0
Merci
Enfin je ne sais plus trop quoi écrire..

J veux me créer une table et en même temps créer les colonnes..

Comment faire ? pour la requête SQL

J'essais certaine requête qu eje trouve sur le net et ca ne fonctionne jamais.
Commenter la réponse de cs_MagDix
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
26 novembre 2013
13
0
Merci
Ici sont les réponses (premier google trouvé)

Ajout de colonnesAssociée avec la clause ADD, la clause ALTER permet l'ajout de colonnes à une table. La syntaxe est la suivante :

ALTER TABLE Nom_de_la_table
ADD Nom_de_la_colonne Type_de_donnees


Après bien entendu selon le SGBD ca varie, toi c'est du SQL avec une table ACCESS donc probablement la même syntaxe que pour SQL Server (MS SQL).

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
0
Merci
lol pour moi on est fait pour ne pas se comprendre... c'est en plain ca que j'ai écrit

Dim strSQL1 As [String] = "ALTER TABLE" & txtDossier.Text & " ADD COLUMN test char(50)"



txtDossier.Text = Nom de la Table
test = Nom de la colonne
char(50) = Type de Données.

Donc ma question: Pourquoi mon code ne fonctionne pas ?

J'ai toujours l'erreur:
Erreur de syntaxe dans l'instruction ALTER TABLE.

J'ai un erreur dans ma Requête SQL que je ne trouve pas. Étant donné que tu m'a dit que tu n'étais pas un pro en SQl je vais refaire un post dans un autre Thème

merci de ton aide

P.S. Avant de traiter le monde de con.. Prend le temps de regarder :P Sans rancune
Commenter la réponse de cs_MagDix
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
26 novembre 2013
13
0
Merci
Dim strSQL1 As [String] = "ALTER TABLE" & txtDossier.Text & " ADD COLUMN test char(50)"

Merci j'appréci tes réflection car je n'insulte personne...

Mais je vais quand même te retourné le compliment et même résoudre ton problème :

Dim strSQL1 As [String] = "ALTER TABLE " & txtDossier.Text & " ADD COLUMN test char(50)"

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
0
Merci
Ici ca bug toujours :(...

J'image que ca doit fonctionner pour toi.. ??

Enfin merci quand même.
Commenter la réponse de cs_MagDix
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
26 novembre 2013
13
0
Merci
char est un type SQL ? Pas sur, je connais nchar, nvarchar essaye comme cela :

Dim strSQL1 As [String] = "ALTER TABLE " & txtDossier.Text & " ADD COLUMN test nchar(50)"


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
26 novembre 2013
13
0
Merci
Effectivement, char est bien un type pris en charge par SQL (Vérifié)...

Bref, j'ai trouvé c'est simplement le mot clé column qu'il faut retirer...

Dim strSQL1 As [String] = "ALTER TABLE " & txtDossier.Text & " ADD test char(50)"

"Étant donné que tu m'a dit que tu n'étais pas un pro en SQl je vais refaire un post dans un autre Thème"


> Juste au passage tu es sur vbfrance, il aurait mieu valu poster sur http://www.sqlfr.com/

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
0
Merci
toujours pas... toujours Erreur :(

J'ai fais un autre post avec le Thème SQL et je dois utiliser Text au lie de Char mais ca bug pareil :(

merci de ta persévérance
Commenter la réponse de cs_MagDix
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
26 novembre 2013
13
0
Merci
"ALTER TABLE MaTable ADD test char(50)"

J'ai testé sous management studio avant de posté ca marche... (enfin c'est du MS SQL la syntaxe peut varier pour Excel ?!)

En tous cas merci d'avoir poster la réponse pour les membres qui passeront derière toi =)

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
9
0
Merci
D'où pourquoi je parlais de créer les table de 2 façon : sur Access et en SQL, mais effectivement le type char existe (pour moi) depuis la version 97


Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
Commenter la réponse de cboulas