• ベストアンサー

削除

削除を作っているのですが、エラーがでて困ってます。 データはACCESSに保存しています。 年月日と登録番号で条件をかけたいのですが、よく分からないのでお願いします。 ソース ' 選択クエリーを作成 strSQL = "Delete From db5 " & " Where 年月日 = '"  & DURIFORM.Text1(0).Text & "'" And "登録番号='"  & DURIFORM.Text1(1).Text & "'" cn.Execute (strSQL) これだと、型が一致しませんとエラーがでました。

質問者が選んだベストアンサー

  • ベストアンサー
  • Watapo3
  • ベストアンサー率76% (33/43)
回答No.3

動作確認はしていませんが、Where条件を括弧でくくってみては如何ですか? また、「AND」は文字列として引き渡しましょう! " Where ((年月日 = '" & DURIFORM.Text1(0).Text & "') And (登録番号 =" & DURIFORM.Text1(1).Text & "))"

GERRARD
質問者

お礼

ありがとうございました。おかけさまで、無事かいけつしました。

その他の回答 (2)

  • MarrowG
  • ベストアンサー率53% (41/76)
回答No.2

登録番号は文字列型ですか? 数値型であれば、 "登録番号=" & DURIFORM.Text1(1).Text のようにシングルクォートは不要です。

GERRARD
質問者

補足

やっぱり、まだ型が一致しませんとでるのですが・・・ ソース全て載せてみました。 Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim strSQL As String Set cn = New ADODB.Connection Set rs = New ADODB.Recordset ' 接続文字列を設定 cn.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=f:\db\db5.mdb" ' コネクションをオープン cn.Open ' 選択クエリーを作成 strSQL = "Select * From db5" rs.Open strSQL, cn If Not rs.EOF Then ' 選択クエリーを作成 strSQL = "Delete * From db5 " & _ " Where 年月日 = '" & DURIFORM.Text1(0).Text & "'" And "登録番号 =" & DURIFORM.Text1(1).Text cn.Execute (strSQL) End If ' オブジェクトを閉じる cn.Close ' オブジェクトを解放 Set rs = Nothing Set cn = Nothing

  • teppy
  • ベストアンサー率50% (9/18)
回答No.1

>' 選択クエリーを作成 >strSQL = "Delete From db5 " & " Where 年月日 = '"  & DURIFORM.Text1(0).Text & "'" And "登録番号='"  & DURIFORM.Text1(1).Text & "'" 三ヶ所ほど、疑問に思うところがあります SQL(クエリ)は、出力フィールドが必ず必要です >"Delete From ~" これは出力フィールドが指定されていません "Delete"と"From"の間に"*"をいれましょう >"~ From db5 ~" FROM句は、テーブル名を指定するところです (テーブル名だったらすみませんm(_ _)m 問題ありません) >" 年月日 = '"  & DURIFORM.Text1(0).Text & "' ~" この年月日フィールドの型式は文字列型でしょうか? 日付/時刻型でしたら、下記のように記します " 年月日 = #"  & Format(DURIFORM.Text1(0).Text,"mm/dd/yy") & "# ~" 参考になれば...

GERRARD
質問者

補足

この年月日フィールドの型式は文字列型でしょうか そうですね、テキスト型ですね。 でも、まだ型が一致していませんとでるんですけど。・・・

関連するQ&A