
ListView怎么洗掉資料庫指定的某一行資料?
樓主用VB寫了一個ListView,想用來操作Access資料庫
比如選擇ListView第三行,點擊“洗掉”,就洗掉Access第三行。
但找了很久,都沒有發現有這個命令。
網上都是delete from 資料庫名 where 姓名 = 張三。
不適合我用。
有沒有下面的代碼?
---------------------------------
Dim a
a = ListView1.SelectedItem.Index‘這條是取得滑鼠所在的ListView的行數
delete 資料庫名 第a行
----------------------------------------
新手,請大家指點。
uj5u.com熱心網友回復:
僅供參考:
ListView 的說明:完整代碼
在 ListView 的說明 1 到 4 中討論的代碼,除了充填 TreeView 控制元件的程序,都在下面給出。要得到充填 TreeView 控制元件的代碼,請參閱“TreeView 控制元件的說明:將 TreeView 系結到 Biblio.mdb 資料庫”。要得到本代碼的作業示例,請參閱列在 Samples目錄中的示例應用程式 DataTree.vbp。
'普通宣告
Private mDbBiblio As Database '資料庫變數。
Private Sub Form_Load()
'打開 Biblio.mdb,并將物件變數
'設定為該資料庫。
Set mDbBiblio = DBEngine.Workspaces(0). _
OpenDatabase("Biblio.mdb")
'充填 TreeView 控制元件的代碼
'在這里沒有給出。
End Sub
Private Sub tvwDB_NodeClick(ByVal Node As Node)
'檢查 Tag 是否是 "Publisher"。如果是,則
'呼叫 MakeColumns 程序,然后呼叫
' GetTitles 函式。
If Node.Tag = "Publisher" Then
MakeColumns
GetTitles Val(Node.Key)
End If
End Sub
Private Sub MakeColumns()
'清空 ColumnHeaders 集合。
lvwDB.ColumnHeaders.Clear
'添加四個 ColumnHeader。
lvwDB.ColumnHeaders.Add , , "Title", 2000
lvwDB.ColumnHeaders.Add , , "Author"
lvwDB.ColumnHeaders.Add , , "Year", 350
lvwDB.ColumnHeaders.Add , , "ISBN"
End Sub
Private Sub GetTitles(PubID)
'洗掉舊的書目。
lvwDB.ListItems.Clear
'宣告 Recordset 型別的物件變數。
Dim rsTitles As Recordset
'對該記錄,用僅查找具有相同 PubID 的書目的查詢
'創建一個記錄集。
'對該記錄集中的每條記錄,在
' ListView 控制元件中添加 ListItem 物件,
'并用記錄的 Title、 ISBN 和 Author 欄位
'設定新物件的屬性。
Set rsTitles = mDbBiblio.OpenRecordset _
("select * from Titles where PubID = " & PubID)
Do Until rsTitles.EOF
'添加 ListItem。
Set mItem = lvwDB.ListItems.Add()
mItem.Text = rsTitles!TITLE
mItem.SmallIcon = "smlBook"
mItem.Icon = "book"
mItem.Key = rsTitles!ISBN
' 用函式得到作者并設定
' SubItems(1) 屬性。
mItem.SubItems(1) = GetAuthor(rsTitles!ISBN)
If Not IsNull(rsTitles![Year Published]) Then
mItem.SubItems(2) = _
rsTitles![Year Published]
End If
mItem.SubItems(3) = rsTitles!ISBN
rsTitles.MoveNext
Loop
End Sub
Private Function GetAuthor(ISBN)
'宣告 DAO 物件變數。
Dim rsTitleAuthor As Recordset
Dim rsAuthors As Recordset
'將物件變數設定為記錄集。
Set rsTitleAuthor = mDbBiblio. _
OpenRecordset("Title Author", dbOpenDynaset)
Set rsAuthors = mDbBiblio. _
OpenRecordset("Authors", dbOpenDynaset)
'創建查詢字串。
Dim strQuery As String
strQuery = "ISBN = " & "'" & ISBN & "'"
rsTitleAuthor.FindFirst strQuery
'如果沒有作者,則回傳 "n/a"。
'否則,回傳作者的姓名。
If rsTitleAuthor.NoMatch Then
GetAuthor = "n/a"
Exit Function
Else
'假定找到了正確的記錄集。
'然后用 Au_ID 欄位值重新設定查詢字串,
'并搜索“作者”表。
strQuery = "Au_ID = " & rsTitleAuthor!AU_ID
rsAuthors.FindFirst strQuery
'回傳 Author 欄位中的作者姓名。
GetAuthor = rsAuthors!Author
End If
End Function
uj5u.com熱心網友回復:
1、參考ado 控制元件2、連接資料庫
3、獲取所選行的內容執行洗掉命令
你這個最好是通過序號來洗掉,獲取欄位的方法
Listview1.ListItems.Item(1).SubItems(1)
這個就表示第1行第1列的數值
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/54286.html
