gpl73 a écrit :
si tu dis que cela a marché ... et qu'après le coup de mettre au propre et des commentaires, c'est cool ....
cela veut dire que tu as "viré" qq chose en trop, ou mis qq chose en commentaire qu'il ne fallait pas
tes 2 variables sont bien définies?
Elles sont bien alimentées? (ou ça plante lors avant même d'être exécuté)
Est ce que dans ta procédure ou ton script, un create table sans variable, le truc simple en dure : create table t1 like t2;
Guillaume
|
tout d'abord merci de t'intéresser à mon cas !
pour tester hors tout, j'ai crée hier une chtite form avec 2 boutons : zyva et stop où il ya juste çà (simplifié à l'extrème!).
j'ai crée sous access dans la Base de données que j'utilise (C'est la BDD pour pleins d'autres requêtes qui fonctionnent bien) une table: Tabtest avec 3 champs l' ID, un ouinon et un integer... aucune donnée dans les champs.
et voilà le code:
Public Class CreeTable
Dim cn1 As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source = " + Depart.DIR1)
Dim cmddbA As OleDb.OleDbCommand
Private Sub CreeTable_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub zyva_Click(sender As Object, e As EventArgs) Handles zyva.Click
Dim sqldbA As String = "CREATE TABLE Tab00 LIKE TabTest" ' ERREUR ?
cmddbA = New OleDb.OleDbCommand(sqldbA, cn1)
With cmddbA
.CommandType = CommandType.Text ' avec ou sans ne change rien ici
.Connection.Open()
.ExecuteNonQuery() ' LA CA COINCE !
.Connection.Close()
End With
End Sub
Private Sub Btstop_Click(sender As Object, e As EventArgs) Handles Btstop.Click
Me.Close()
End Sub
End Class
Le chemin DIR1 n'est pas en cause, il fonctionne partout ailleurs sur le projet... (c'est un truc du genre: "C:\Dossier\MaDB.accdb" )
et même ce truc ridicule me dit toujours: Erreur de syntaxe dans l'instruction CREATE TABLE.....
voilà la totale:
System.Data.OleDb.OleDbException : {"Erreur de syntaxe dans l'instruction CREATE TABLE."}
Data : {System.Collections.ListDictionaryInternal}
[System.Collections.ListDictionaryInternal] : {System.Collections.ListDictionaryInternal}
Count : 0
IsFixedSize : False
IsReadOnly : False
IsSynchronized : False
Item : Pour évaluer une propriété indexée, cette dernière doit être qualifiée et l'utilisateur doit fournir les arguments de manière explicite.
Keys : {System.Collections.ListDictionaryInternal.NodeKeyValueCollection}
SyncRoot : {Object}
Values : {System.Collections.ListDictionaryInternal.NodeKeyValueCollection}
ErrorCode : -2147217900
Errors : {System.Data.OleDb.OleDbErrorCollection}
Count : 1
Item : Pour évaluer une propriété indexée, cette dernière doit être qualifiée et l'utilisateur doit fournir les arguments de manière explicite.
HelpLink : Nothing
HResult : -2147217900
InnerException : Nothing
Message : Erreur de syntaxe dans l'instruction CREATE TABLE.
Source : Microsoft Office Access Database Engine
StackTrace :
à System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
à System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
à System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
à System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
à System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
à System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
à Decadix.CreeTable.zyva_Click(Object sender, EventArgs e) dans C:\Users\MB\documents\visual studio 2012\Projects\Decadix\Decadix\CreeTable.vb:ligne 22
à System.Windows.Forms.Control.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ButtonBase.WndProc(Message& m)
à System.Windows.Forms.Button.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
à System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
à System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
à System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
à System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
à System.Windows.Forms.Application.Run(ApplicationContext context)
à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
à Decadix.My.MyApplication.Main(String[] Args) dans 17d14f5c-a337-4978-8281-53493378c1071.vb:ligne 81
à System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
à System.AppDomain.nExecuteAssembly(RuntimeAssembly assembly, String[] args)
à System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel)
à System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly()
à System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
à System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext)
à System.Activator.CreateInstance(ActivationContext activationContext)
à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
à System.Threading.ThreadHelper.ThreadStart()
TargetSite : {Void ExecuteCommandTextErrorHandling(System.Data.OleDb.OleDbHResult)}
voilà, voilà... les infos sur stacktrace me depassent un peu beaucoup... je le reconnais. Le N° d'erreur ne me dit rien non plus....
la table copie : Tab00 n'est pas créee... rien... nada.
encore une chose, le "CREATE TABLE truc (champ1, champ2 ......)" fonctionne.... je suis hyper-plexe...
j'ai la même erreur en faisant: "CREATE TABLE Tab00 SELECT * FROM TabTest" ...
Message édité par projetx le 03-09-2014 à 08:38:54