電子書籍の厳選無料作品が豊富!

VisualBasic6.0 を使用しています。
SQLのINSERT文についての質問なのですが、
フォームのテキストに記入された内容を新規のレコードとしてデータベースに登録する場合、どのようなプログラムを組めばよいのでしょうか?

下記のように組んでみたのですが、エラー(実行時エラー'-2147217904(80040e10)':一つ以上の必要なパラメータの値が設定されていません)がでてしまいます。
以下のプログラムでは、
Form4の.Text1~7にユーザーが記入した情報をデータベースのM_USERというテーブルの新レコードとして追加しようとしています。

Private Sub Command1_Click()
Dim objcon As ADODB.Connection
Dim objrec As ADODB.Recordset
Dim strConnectString As String
Dim strMDBFilePath As String
Dim strSQL As String

strMDBFilePath = "C:\Documents and Settings\Watanabe Ryota\デスクトップ\新ダイエット\diet.mdb"

strConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strMDBFilePath & ";"

Set objcon = New ADODB.Connection
objcon.Open strConnectString

strSQL = "INSERT INTO M_USER(U_ID,U_NAME,U_PASS,U_SIZES1,U_SIZES2,U_CAL,U_IKIGOMI) VALUES(Form4.Text1,Form4.Text2,Form4.Text3,Form4.Text4,Form4.Text5,Form4.Text6,Form4.Text7)"

Set objrec = objcon.Execute(strSQL)

End Sub

おねがいします。

A 回答 (3件)

> 同じように、1箇所ずつ文字列を区切って、「&」でつないでください。


に、追記。

文字列型の項目の場合、「'~'」で括ってやらないと、エラーになります。
また、指定された文字列が「'」を含む場合、「''」に置き換えないと、やはりエラーに・・・
    • good
    • 0

「文字列の中」に変数名やプロパティを直接記述しても駄目です。



例えば、
> strConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strMDBFilePath & ";"
も、
> strConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=strMDBFilePath;"
こう書いたてしまったら、ちゃんと動かないですよね?

同じように、1箇所ずつ文字列を区切って、「&」でつないでください。
    • good
    • 0

Debug.Print strSQL


として、strSQLの内容を確認してみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このQ&Aを見た人がよく見るQ&A