Visual Basic 2005からCREATE文を使いたいと思い、作成したのですが、エラーが出て思うように使えません。
作成した文はこれです。
Dim cn As New OleDb.OleDbConnection
cn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;" _
& "Data Source = C:\Documents and Settings\kmuraoka\My Documents\Visual Studio 2005\Projects\文書管理ツール\文書管理ツール\ファイルデータ.mdb"
Dim cmd1 As New OleDb.OleDbCommand
cmd1.Connection = cn
ListBox1.Items.Clear()
Dim name As String = TextBox2.Text
cn.Open()
cmd1.CommandText = "CREATE TABLE '" & name & "' (ID INT PRIMARY KEY,file_name NCHAR(20))"
cmd1.ExecuteNonQuery()
cn.Close()
これを実行すると、
CREATE TABLE ステートメントの構文エラーです。
というエラーになります。
どのようにしたら、実行可能になるのでしょうか?
>CREATE TABLE ステートメントの構文エラーです。
ということですから、VB2005とは関係ありません。
SQL文の構文エラーを直してください。
今回のはJetの構文ですから、
・テーブル名は シングルコーテーションではなく、[]で囲う
・NCHARは無いのでCHARかVARCHARで
で試してみてください。
回答ありがとうございます。
Dim cn As New OleDb.OleDbConnection
cn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;" _
& "Data Source = C:\Documents and Settings\kmuraoka\My Documents\Visual Studio 2005\Projects\文書管理ツール\文書管理ツール\ファイルデータ.mdb"
Dim cmd1 As New OleDb.OleDbCommand
cmd1.Connection = cn
ListBox1.Items.Clear()
Dim name As String = TextBox2.Text
cn.Open()
cmd1.CommandText = "CREATE TABLE [" & name & "] (ID INT PRIMARY KEY,file_name CHAR(20))"
cmd1.ExecuteNonQuery()
cn.Close()
ということでしょうか??
>で試してみてください。
村岡さん
cmd1.CommandText = "CREATE TABLE [" & name & "] (ID INT PRIMARY KEY,file_name CHAR(20))"
に変更して実行してみたら、作成できました。
INSERTをしてみようと思ったんですが、今度はINSERTがいきません。
どうしたら、いいのでしょうか?
文はこちらです。
cmd2.CommandText = "INSERT INTO '" & TextBox2.Text &"' (file_name) VALUES ('" & FileName & "')"
です。
同じミスを繰り返しているようですね:-)。
>・テーブル名は シングルコーテーションではなく、[]で囲う
すみません↓
それで、同じく行ってみます。
cmd1.CommandText = "INSERT INTO [" & TextBox2.Text & "] (file_no,file_drive) VALUES ([" & i & "], [" & DriveName & "])"
cmd1.ExecuteNonQuery()
このように実行してみたのですが、エラーになってしまします。
どのように変更すると実行できるようになるのでしょうか。
ぜひアドバイスお願いします。
SQL文はVBとは全く違う言語です。
プログラムとは別に、勉強しないと分かりませんよ。
# ついでに言えば半分板違い。データベース系のサイトで勉強
# してくるべき内容です。
>・テーブル名は シングルコーテーションではなく、[]で囲う
テーブル名だけしか指示されていませんよね?
データまで[]で囲ったためです。
>エラーになってしまします。
今回は、理由が見たら分かる程度の内容なのでいいですが、エラーについて
質問する場合は、エラーメッセージを書くことが必須事項です。
開発(実行)環境によって、同じエラーが発生するとは限らないからです。
何とか、プログラムを作成することができました。
皆様、本当にありがとうございました。
また、何かありましたらアドバイスなどお願いいたします。
ツイート | ![]() |