VB.NETとAcceseを使用してフォームの入力内容に基にボタンをしてDBにテーブルを作成するプログラムを作成していますが上手くいきません。

どのようにすれば上手くいくのか教えてください。
よろしくお願いします。

TextBox1:テーブル名
TextBox2:フィールド名
TextBox3:フィールド名
TextBox4:フィールド名
ComboBox1:型
ComboBox2:型
ComboBox3:型
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Cn As New OleDb.OleDbConnection()
Cn.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Application.StartupPath & "\products.mdb"
Cn.Open()

Dim mysql As New OleDb.OleDbCommand()

mysql.Connection = Cn
mysql.CommandText = "CREATE TABLE [" & TextBox1.Text & "] ([" & TextBox2.Text & "] " & ComboBox1.Text & " NOT NULL,[" & TextBox3.Text & "] " & ComboBox2.Text & ",[" & TextBox4.Text & "] " & ComboBox3.Text & ",PRIMARY KEY([" & TextBox2.Text & "]))"
mysql.ExecuteNonQuery()
Cn.Close()
End Sub

回答の条件
  • 1人3回まで
  • 登録:2006/09/18 14:11:39
  • 終了:2006/09/18 15:01:16

ベストアンサー

id:KirakiraHikaru No.1

KirakiraHikaru回答回数354ベストアンサー獲得回数682006/09/18 14:39:06

ポイント60pt

私の環境では問題なく動作して、テーブルが作成されましたが、

どのように上手くいかないのでしょうか?

何かエラーが表示されていますか?

products.mdb自身に問題があるのではないですか?

id:rurudorufu1218

回答ありがとうございます。

実行したのですがやはり、System.Data.OleDb.OleDbException' のハンドルされていない例外が system.data.dll で発生しました。

というエラー発生しました。

これはプログラムではなく別に問題があるとういうことでしょうか?

2006/09/18 14:53:25
  • id:KirakiraHikaru
    mysql.ExecuteNonQuery()
    の部分を下記のようにすると、
    詳細なエラー内容がわかると思います。
    >|
    Try
    mysql.ExecuteNonQuery()
    Catch ex As Exception
    MessageBox.Show("error:" & ex.Message)
    End Try
    |<
    例えば、すでに存在するテーブル名で作成すると、
    「テーブル 'test_table_2' は既に存在しています。」
    のようにエラーが表示されます。
  • id:rurudorufu1218
    コメントありがとうございます。
    今度からぜひとも、試してみます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません