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

Signaler
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
-
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
-
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()

19 réponses

Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
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))"
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
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.
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
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.
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
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
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
"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.
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
14
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
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
Désolant...

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
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()
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
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.
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
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.
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
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.
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
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
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
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.
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
Ici ca bug toujours :(...

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

Enfin merci quand même.
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
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.
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
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.
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
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
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
"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.
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
14
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