削除を作っているのですが、エラーがでて困ってます。

データはACCESSに保存しています。
年月日と登録番号で条件をかけたいのですが、よく分からないのでお願いします。

ソース
' 選択クエリーを作成
strSQL = "Delete From db5 " & " Where 年月日 = '"  & DURIFORM.Text1(0).Text & "'" And "登録番号='"  & DURIFORM.Text1(1).Text & "'"
cn.Execute (strSQL)

これだと、型が一致しませんとエラーがでました。

A 回答 (3件)

動作確認はしていませんが、Where条件を括弧でくくってみては如何ですか?


また、「AND」は文字列として引き渡しましょう!

" Where ((年月日 = '" & DURIFORM.Text1(0).Text & "') And (登録番号 =" & DURIFORM.Text1(1).Text & "))"
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/12/17 15:44

登録番号は文字列型ですか?


数値型であれば、

"登録番号=" & DURIFORM.Text1(1).Text

のようにシングルクォートは不要です。

この回答への補足

やっぱり、まだ型が一致しませんとでるのですが・・・
ソース全て載せてみました。

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

補足日時:2001/12/17 15:22
    • good
    • 0

>' 選択クエリーを作成


>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") & "# ~"

参考になれば...

この回答への補足

この年月日フィールドの型式は文字列型でしょうか
そうですね、テキスト型ですね。

でも、まだ型が一致していませんとでるんですけど。・・・

補足日時:2001/12/17 14:51
    • good
    • 0

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


このカテゴリの人気Q&Aランキング

おすすめ情報