- ベストアンサー
vbからmdbのレコード削除
今、mdbデータをdataGridに表示させるVBがあります。 そこでdatagridからレコードを選択し、そのレコードをmdbから削除したいのですが、可能でしょうか? できる場合どのようにしたら良いのでしょうか? よろしくお願いします。
- hike106
- お礼率43% (67/154)
- Visual Basic
- 回答数4
- ありがとう数2
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
NO1です。 特定のデータを狙い撃ちするためには、datagridにキー情報が入っていたほうが良いかと思います。 例えばdatagrid1には1列目にkey情報(Index)を入れるとします。 (表示させたくなければ幅を0にしてください。) クリックイベントなどで動かすのであれば、 CONN.EXECUTE "DELETE FROM TABLENAME WHERE INDEX = "& me.datagrid1.columns(0) & ";" みたいに SQL文にデータグリッドの値を組み込めばターゲットのデータだけを消せると思います。
その他の回答 (3)
- monkiki07
- ベストアンサー率26% (9/34)
こんばんわ。 "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
おはようございます。 DataSetから行を削除する http://homepage1.nifty.com/rucio/main/dotnet/Samples/SmpleCnt.htm 参考にどうぞ。
補足
M-SOFTさん回答ありがとうございます。 参考ページを教えてくださいましたが、自分にはちょっと難解です。。。
現在どのような形で読み込んでいるのかはわかりませんが、私だったら adodb でコネクション(conn)を作って、 conn.execute "DELETE FROM TABLENAME WHERE...." みたいにSQLで処理するかな。
補足
16Augustさん回答ありがとうございます。 現在ADODB.Connectionでdbを読み込んでいます。 そこでconn.execute "DELETE FROM TABLENAME WHERE...."を使ってみたのですが、どのようにWHERE部分を取得するのかで悩んでいます。(WHERE部分を空白にするとmdb内のレコードが全て削除されましたので動きは確認することができました。)
関連するQ&A
- VB.netでmdbのレコードを取得
VB.netからAccessで作成したデータベースのレコードを 取得するプログラムを作りたいと考えています。 ですが、データベースを操作するプログラムは初めてですので、 どうもイメージがわきません。 やりたいことは、 1.VBからmdbにアクセス(DAO) 2.SELECTでレコードを取得 3.取得したレコードから必要なフィールドをテキストボックに表示 上記の処理が可能であれば、コーディングのヒントを頂けないでしょうか? よろしくお願いします --- OS:Windows Vista 開発環境:VS2005 pro
- ベストアンサー
- Visual Basic
- vb2005でmdbを読み込みmdbに書き出したい
よろしくお願いします。windowsxp,access2003,vb2005express エディションを使用して、現在、勉強中です。 早速質問ですが、ADO・NETを使ってA_MDBをvb2005に読み込んで,その内容をB_MDBに書き込みたいのですがその方法が分かりません 例えば、A_MDBのA_TABLEには単価と数量が有ります。仮に10レコードがあるとします、このA_TABLEを読み込んで、単価と数量を 掛けて金額を計算し、B_MDBのB_TABLEに単価、数量、金額の各項目を書き込むという感じです。A,B両MDBは作成済です。あまり上手く 表現できませんがよろしくお願いいたします。
- ベストアンサー
- Visual Basic
- テーブルの削除
VB6.0 ACCESS2000で開発しています。 ACCESSのt_名前というテーブルを DataGridへ表示しています。 グリッド上で選択した1件のレコードを削除したいのですが どうすればいいのでしょうか。 お願いします。
- ベストアンサー
- Visual Basic
- レコードの削除
VB6.0 ACCESSで開発しています。 t_nyukoテーブルのデータを全て削除するのは下記のように 出来たのですが dataGridに表示されているものを1つ選択し 選択されたものだけ削除したいのですがどうすればいいのでしょうか? よろしくお願いします。 Private Sub Command1_Click() Dim cn As New ADODB.Connection Dim cmd As ADODB.Command Dim cat As New ADODB.Command Dim strSQL As String Set cn = New ADODB.Connection cn.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\temp\db2.mdb" cn.Open cat.ActiveConnection = cn strSQL = "DELETE FROM t_nyuko " Set cmd = New ADODB.Command cmd.ActiveConnection = cn cmd.CommandText = strSQL cmd.Execute cn.Close Set cmd = Nothing Set cn = Nothing Set cat = Nothing End Sub
- ベストアンサー
- Visual Basic
- VBで任意の複数レコードを追加・削除するには?
VBで作成するアプリについて質問があります。 処理としては、追加するレコード数が実行毎に違っているデータを、 フォームの入力エリアに入力し、そのデータを使用してデータベースに データを登録する処理を想定しています。 上記を踏まえて、下記条件を同時に満たす操作を作成したいと思っています。 (1)「追加」ボタンをクリックすると、表示されている入力エリアが1行追加される (2)レコード毎に作成された「削除」ボタンをクリックすると、 任意の入力済みの行を削除出来る 最後の行に入力エリアを追加・削除することは出来たのですが、 (2)の「任意の行を削除する」処理が作成できていない状況です。 VBの経験が2週間で、下らない質問かもしれませんがよろしくお願いします。
- 締切済み
- Visual Basic
- VB6,Access2000のMDBでのデータ型指定
VB6でAccess2000のMDBを使用しています。 次のような形で一時的なレコードセットRS(0)を作成しようと思うのですが、このときの DataTypeEnum に相当するデータ形式がわかりません。 目的はMDBテーブルから作成したレコードセットRS(1)とのデータ交換です。そのMDBテーブルで数値としてあるフィールドとやりとりするRS(0)側のフィールドのデータ型(DataTypeEnum)を何に設定していいのかわかりません。 選択肢は次のページにあります。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpado260/htm/mdcstdatatypeenum.asp Set RS(0) = New ADODB.Recordset RS(0).Fields.Append "LinNo", adDouble ← この adDouble の位置で 何を指定するか。。。 RS(0).Fields.Append "JobID", adDouble RS(0).Fields.Append "JobName", adVarChar, 200 RS(0).Open よろしくお願いします。
- ベストアンサー
- Visual Basic
- レコードセットのデータを1行ごとに抽出したい
いつもお世話になっております 今、VBを使用してツールを作成しているのですが DataGridにデータベースからレコードセットを 使用してデータを1行ずつ入れていこうと 思っているのですが、レコードセットで1行ずつ データを取れません。 どうか1行ずつのデータのとり方を教えて下さい! お願い致します。
- 締切済み
- Visual Basic
- 1レコードを2段表示で
VB.NET2003でDB上のデータをフォームに表示させたいのですが、 項目数が多いため、2段(もしくはそれ以上)で表示したいと思っています。 あああ|いいい|ううう のような3カラムのレコードの場合、 あああ|いいい ううう のような表示にしたいのですが、DataGridでは無理そうでした。 VBの標準コントロールだけではこのような表示を簡単に行うことは 無理でしょうか? また、表示だけではなく編集して更新も可能にしたいと思っています。 市販のソフトを使わないとすると、自前でユーザーコントロールを 作らないと無理でしょうか・・・ このようなユーザーコントロールを作成するのに参考になる情報があれば、教えていただきたいです。
- ベストアンサー
- Visual Basic
- mdbにアクセスするDLLを作成したい
プログラム初心者です。 mdbにアクセスし、レコードの登録、削除ができるDLLを 作成したいのですが、初心者的に簡単なのは VBかVCおよびc++どちらが作りやすいでしょうか?
- 締切済み
- その他(データベース)
- レコードの削除ができない
アクセス2007です。 デザインで一つのフォームを作り そこにテーブル1をドラッグしてサブフォームにしました。 そしてサブフォームのテーブル1はデータシートビューで表示しています。 例えば、画像のように4レコード目を削除しようと思いカーソルを持っていき 右クリックすると 「レコードの削除(R)」が選択できない状態です。 2007では、サブフォームでレコードの削除はできないのでしょうか? アドバイスよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
16Augustさん有り難うございました! WHERE C = " & me.datagrid1.columns(2) の部分を WHERE C = "& "'" & me.datagrid1.columns(2)& "'" とするとうまく動作しました! 本当に助かりました。 ありがとうございます。
補足
16Augustさん回答ありがとうございます。 さっそく試したところ 「1つ以上の必要なパラメータの値が設定されていません」 とエラーが出てしまいます。 mdb (テーブル名:メイン) A|B|C|D|E|←フィールド名 1|あ|い|う|え| 2|か|き|く|け| 3|さ|し|す|せ| datagrid1で(き)を選択 CONN.EXECUTE "DELETE FROM メイン WHERE C = " & me.datagrid1.columns(2) としています。