プロが教える店舗&オフィスのセキュリティ対策術

今、mdbデータをdataGridに表示させるVBがあります。
そこでdatagridからレコードを選択し、そのレコードをmdbから削除したいのですが、可能でしょうか?
できる場合どのようにしたら良いのでしょうか?
よろしくお願いします。

A 回答 (4件)

NO1です。


特定のデータを狙い撃ちするためには、datagridにキー情報が入っていたほうが良いかと思います。
例えばdatagrid1には1列目にkey情報(Index)を入れるとします。
(表示させたくなければ幅を0にしてください。)

クリックイベントなどで動かすのであれば、

CONN.EXECUTE "DELETE FROM TABLENAME WHERE INDEX = "& me.datagrid1.columns(0) & ";"

みたいに SQL文にデータグリッドの値を組み込めばターゲットのデータだけを消せると思います。

この回答への補足

16Augustさん回答ありがとうございます。
さっそく試したところ
「1つ以上の必要なパラメータの値が設定されていません」
とエラーが出てしまいます。

mdb
(テーブル名:メイン)
A|B|C|D|E|←フィールド名
1|あ|い|う|え|
2|か|き|く|け|
3|さ|し|す|せ|

datagrid1で(き)を選択

CONN.EXECUTE "DELETE FROM メイン WHERE C = " & me.datagrid1.columns(2)

としています。

補足日時:2006/02/15 22:02
    • good
    • 0
この回答へのお礼

16Augustさん有り難うございました!
WHERE C = " & me.datagrid1.columns(2)
の部分を
WHERE C = "& "'" & me.datagrid1.columns(2)& "'"
とするとうまく動作しました!
本当に助かりました。
ありがとうございます。

お礼日時:2006/02/17 09:19

こんばんわ。



"SelBookmarks"プロパティを使用してはいかがでしょうか?

このサンプルは、ループが使われ、ユーザーが選択した行がデータベースから削除されます。

Sub DeleteRows()
  Dim varBmk As Variant
  For Each varBmk In DataGrid1.SelBookmarks
    Data1.Recordset.Bookmark = varBmk
    Data1.Recordset.Delete
    Data1.Refresh
  Next
End Sub
    • good
    • 0

おはようございます。



DataSetから行を削除する
http://homepage1.nifty.com/rucio/main/dotnet/Sam …
参考にどうぞ。

この回答への補足

M-SOFTさん回答ありがとうございます。
参考ページを教えてくださいましたが、自分にはちょっと難解です。。。

補足日時:2006/02/14 18:03
    • good
    • 0

現在どのような形で読み込んでいるのかはわかりませんが、私だったら


adodb でコネクション(conn)を作って、
conn.execute "DELETE FROM TABLENAME WHERE...."
みたいにSQLで処理するかな。

この回答への補足

16Augustさん回答ありがとうございます。
現在ADODB.Connectionでdbを読み込んでいます。

そこでconn.execute "DELETE FROM TABLENAME WHERE...."を使ってみたのですが、どのようにWHERE部分を取得するのかで悩んでいます。(WHERE部分を空白にするとmdb内のレコードが全て削除されましたので動きは確認することができました。)

補足日時:2006/02/14 18:00
    • good
    • 0

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