• 締切済み

ListBoxの選択した項目を削除したら、DBの同じデータの行も削除を

ListBoxの選択した項目を削除したら、DBの同じデータの行も削除をしたいです。 環境:XP-Pro/VB2005/SQLServer2005 簡単なSchedule管理ソフトを作成しています。 画面には左側にMonthCalendar、開始時間を表示するDomainUpDown、件名、内容を入力するTextBoxと登録ボタンがあり、左側にListBox、その下に修正ボタン、削除ボタンが配置してあります。 登録ボタンを押すとListBoxに内容が表示されると同時にDBにデータが保存されます。 DBのテーブル:Shortは startdate(日付) DateTime start(開始時間) varchar(50) subject(件名) varchar(50) contents(内容) varchar(50) *日付と開始時間は複合主キー 今回は登録した項目を選択して削除ボタンをクリックしたら、DB内の同じ内容も削除するという動作です。 分からない部分はDBに接続してコネクションを定義した後のSQLステートメントです。 現在は、 connection.Open() Command.CommandText = "DELETE FROM Short WHERE start = '" & ListBox1.SelectedIndex &"'" Command.ExecuteNonQuery connection.Close() となっています。が削除されませんでした。 SQLステートメントで"ListBoxの選択している項目と同じ行"というようにWHERE句で定義したいのですが分かりません。 ご指導よろしくお願いいたします。

みんなの回答

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.2

おはようございます。 検証はしていませんが、#1のpdragonさんと同意見です。 「ListBox1.SelectedIndex」は「選択されている行番号」です。実際の値ではありません。 表示されている値を取得したいのならば「ListBox1.SelectedItem.Text」です。

  • pdragon
  • ベストアンサー率35% (5/14)
回答No.1

手元にVB2005もWindowsも無いのでアレなんですが、 startの値が表示されているのなら、 DELETE FROM Short WHERE start='" & ListBox1.SelectedItem.Text & "'" でいけませんかね

関連するQ&A

  • DBに登録されているデータの削除

    こんにちは。お世話になっております。 題名にあるように、DB(MySQL)に登録のあるデータの削除なのですが、where句により一覧表示を指せた際、チェックボックスも表示させ、ボタンを押す事によりチェックされたデータを削除したいと考えています。 このような場合は配列を使う(?)、とまでは分かるのですが、具体的なコードが思い浮かばないもので・・・ 以上、初歩的(毎度ですが…汗)な質問かと思われますが、適切なキーワードが思い浮かばず、調べても分からないため質問させて頂きました。お忙しい中恐縮ですが、少し踏み入ったヒントだけでもご指導いただければ有難く思っております。宜しくお願い致します。

    • ベストアンサー
    • PHP
  • リストボックスで選択した項目のデータとワークシートのデータを比較したい

    Excel2003を使用しています。 個人用マクロブックにユーザーフォームを作成し、年と週を入力するリストボックスとコマンドボタンを配置しました。 Listbox1では年(2005,2006,2007)、Listbox2では週(01,02・・・・,53) が選択できるようになっています。 コマンドボタンをクリックすると、Listbox1とListbox2で選択した項目を取得し、hizuke という変数に代入します(例:2005 02)。 hizuke の値を 既に開いているcsvファイルから検索し、一致しているセルを選択したいのですが、どうしても同じものと認識してくれません。 hizukeのデータ型はStringにしていますが、何か問題があると思われますか? どうぞご教授ください。宜しくお願い致します。

  • リストボックスで項目を選択し、データを削除・・・

    初心者です。 リストボックスにRowSourceを使用し、データを表示していますが、この表示されている項目を選択し、「削除ボタン」により、エクセルデータを削除し、さらにその行も削除できればと考えています。よろしければご教授お願いいたします。

  • リストボックスで選択した項目を削除するには

    Excel2003を使用しています。 ユーザフォームのリストボックスには"Sheet1!A1:C10"が表示されるようになっています。 Private Sub UserForm_Initialize()  UserForm1.ListBox1.ColumnCount = 3  UserForm1.ListBox1.RowSource = "Sheet1!A1:C10" End Sub たとえばリストボックス上で3行目(A3:C3)を選択して、削除ボタンをクリックすれば選択された値が表示から消えて、セル上の値も削除されるようにしたいのです。 できれば削除されると同時に4行目(A4:C4)以降の値が上にスライドされるようにできればいいのですが、まだまだ理解できない部分が多くて自分では解決できませんでした。 ご存知の方がいらっしゃいましたらご教授頂けないでしょうか。 宜しくお願い致します。

  • BASIC ListViewの選択された行番号を取得

    ActiveBasic4.23.00を使用しています。 ListViewで、ボタンを押すと選択されている行の番号(ListBoxで言うところのLB_GETCURSEL) を取得したいのですが、それらしい項目が見当たりません。 ご存知の方がいらっしゃいましたら、ご教授ください

  • [VB2008]リストボックス内の複数選択された項目を削除したい

    タイトルの通り、リストボックス内の複数選択された項目を削除したいのですが どうすればいいでしょうか? 下記のコードを組んでみましたが動作しませんでした。 Dim SelectItem As Object Dim ItemList As String = "" For Each SelectItem In Me.ListBox1.SelectedItems Me.ListBox1.Items.Remove(SelectItem.ToString()) Next ご回答お願いします。

  • リストボックスから項目を選択してセルに入力したいのです

    EXcel2003でマクロ作成中です。エクセルシートのN列を右クリックすると、ユーザーォームが現れ、その中のリストボックスから項目を選択すると選択文字が白色に反転します。 ユーザーホームの下方に設置した「入力する」ボタンをクリックする、アクティブセルにテキスト文字列が挿入されます。 Option Explicit Private Sub CommandButton1_Click() With ListBox1 If .ListIndex = -1 Then MsgBox "項目を選択してくだい" Else ActiveCell.Value = ListBox1.list(ListBox1.ListIndex) End If End With Unload UserForm1 End Sub --------------------------- Private Sub CommandButton2_Click() Unload UserForm1 End Sub ------------------------------ これと同じものをB列につくりました。エクセルシートのB列を右クリックすると、リストボックスが表示されますが、その中の項目を選択しようとすると、一瞬にしてユーザーフォーム自体が消えてしまい項目を 選択できません。 Private Sub CommandButton1_Click() With ListBox2 If .ListIndex = -1 Then MsgBox "項目を選択してくだい" Else ActiveCell.Value = ListBox2.list(ListBox2.ListIndex) End If End With Unload UserForm2 End Sub ----------------------------- Private Sub CommandButton2_Click() Unload UserForm2 End Sub ------------------------------------------ まったく同じものを作って内容だけかえたのですが、できません。 どうしてでしょうか?ご教授おねがいします。

  • リストボックスでの選択項目分削除について。

    こんばんは。 リストボックスでのマルチセレクトで選択した項目を削除する 方法で悩んでいます。 (リストボックスで3項目選択したとして、この3項目を削除する方法) 解答は現在勉強している本に掲載されているのですが意味が分からず。 解答のコードの方にはリストを後ろから削除しているみたいなのですが、 前から削除しても大丈夫だと思いやってみましたが、エラーが出てしまいます。 解説には、先頭から削除するとその時点でリストのインデックス値がずれて しまう。と書いてあるのですが、後ろから削除しても一緒だと考えこんでいます。 解答コード ********************************************************** Private Sub Command2_Click() Dim i As Integer '選択状態(Selected=true)の項目だけ削除 For i = List1.ListCount - 1 To 0 Step -1 If List1.Selected(i) = True Then List1.RemoveItem i End If Next i End Sub ********************************************************* と言う解答コードを自分は、前から削除するように 自分なりのコード ********************************************************* Private Sub Command2_Click() Dim i As Integer For i = 0 To listcount-1 If List1.Selected(i) = True Then List1.RemoveItem i End If Next i End Sub ************************************************************* で作成してみましたが、やっぱりエラーが。 なぜ、前から削除するとエラーになってしまうのか、 もう少し具体的に教えてくれると助かります。 よろしくお願いします。m(__)m

  • php データ削除

    一覧画面に更新、削除というボタンをつくり番号を受け取って削除したいのですが、削除ボタンを押しても画面は変わるのですが削除されません 助けてください 番号 int プライマリーキー 氏名 varchar 住所 varchar 一覧画面のソース <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>一覧画面</title> </head> <body> <BLOCKQUOTE> <BR>一覧画面<BR><BR> <?php $con=mysqli_connect("localhost","root","admin","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM tbl_test"); echo "<table border='1'> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> </tr>"; while($row = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['番号'] . "</td>"; echo "<td>" . $row['氏名'] . "</td>"; echo "<td>" . $row['住所'] . "</td>"; echo "<form action=koushin_input.php method=post>"; echo "<td><input type=submit value=更新></td>"; echo "</form>"; echo "<form action=sakujo.php method=post>"; echo "<td><input type=submit value=削除></td>"; echo "</form>"; echo "</tr>"; } echo "</table>"; mysqli_close($con); ?> <BR><BR><BR> <A HREF="http://localhost/regist.php"> <INPUT TYPE = "SUBMIT" VALUE = "新規登録"></A> </BLOCKQUOTE> </body> </html> 削除ソース  sakujo.php <html> <body> <? // データベースに接続 if(!$con=mysql_connect("localhost","root","admin")){ echo"接続エラー"; exit; } // データベースを選択 if(!mysql_select_db("db_test",$con)){ echo"データベース選択エラー"; exit; } // DELETE文を実行 $sql = "delete from tbl_test where '番号'= 番号; if(!$res=mysql_query($sql)){ echo "SQL実行時エラー"; exit; } // データベースから切断 mysql_close($con); // 登録完了メッセージの表示 echo "削除完了"; ?> </body> </html> どういう風にpostで渡せばいいですか?

    • ベストアンサー
    • MySQL
  • フォームのsubmitボタンを押したときに、任意に選択した複数の配列項目を削除するにはどうすればいいでしょうか。

    フォームのsubmitボタンを押したときに、任意に選択した複数の配列項目を削除するにはどうすればいいでしょうか。

    • ベストアンサー
    • PHP

専門家に質問してみよう