感谢您使用微软产品。DataGrid对象的SelBooks属性保存了选中的多行记录的books,您可以用SelBooks集合的Add方法把多行记录设为选定。如果您希望通过按下shift+鼠标左键,一次选取datagrid中的多条记录,您需要计算要选入的记录相对于当前活跃记录的位置,作为DataGrid对象的GetBook方法的参数,获得该行的BookMark,再使用DataGrid1.SelBooks的Add方法,API函数GetKeyState用于判断shift键的状态,做出相应的操作。如下例,Private Const VK_SHIFT = &H10
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As IntegerPrivate last_selPrivate Sub Form_Load()
last_sel = 0
End SubPrivate Sub DataGrid1_SelChange(Cancel As Integer) If GetKeyState(VK_SHIFT) < 0 Then
relative = last_sel - DataGrid1.Row
Text1.Text = relative
If relative < 0 Then
For j% = relative To -1
DataGrid1.SelBooks.Add (DataGrid1.GetBook(j%))
Next j%
Else
For j% = 1 To relative
DataGrid1.SelBooks.Add (DataGrid1.GetBook(j%))
Next j%
End If
Else
last_sel = DataGrid1.Row
Text1.Text = last_sel
End IfEnd Sub选中多条记录后,SelBooks记录了被选中记录的位置,您可以利用它来操作记录,如下例删除所选的多条记录。
Sub DeleteRows()
Dim varBmk As Variant
For Each varBmk In DataGrid1.SelBooks
Data1.Recordset.Book = varBmk
Data1.Recordset.Delete
Data1.Refresh
Next
End Sub请问谁知道“Text1.Text” 这是什么意思?
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As IntegerPrivate last_selPrivate Sub Form_Load()
last_sel = 0
End SubPrivate Sub DataGrid1_SelChange(Cancel As Integer) If GetKeyState(VK_SHIFT) < 0 Then
relative = last_sel - DataGrid1.Row
Text1.Text = relative
If relative < 0 Then
For j% = relative To -1
DataGrid1.SelBooks.Add (DataGrid1.GetBook(j%))
Next j%
Else
For j% = 1 To relative
DataGrid1.SelBooks.Add (DataGrid1.GetBook(j%))
Next j%
End If
Else
last_sel = DataGrid1.Row
Text1.Text = last_sel
End IfEnd Sub选中多条记录后,SelBooks记录了被选中记录的位置,您可以利用它来操作记录,如下例删除所选的多条记录。
Sub DeleteRows()
Dim varBmk As Variant
For Each varBmk In DataGrid1.SelBooks
Data1.Recordset.Book = varBmk
Data1.Recordset.Delete
Data1.Refresh
Next
End Sub请问谁知道“Text1.Text” 这是什么意思?
解决方案 »
- 如何将vb程序转换为服务?
- 请问如何在一个局域网的机子上指定的文件在服务上呢?
- VB提交表单乱码
- vb程序用vb自带打包程序打包后,安装时出现问题,无法注册!请各位高手帮忙。
- Who can help me about parameter in crysatal report 8.5
- Longhorn与WINDOWS2003是何关系?
- vb!
- 关于ADORecordSet UpdateBatch的问题
- 请大家谈谈关于控件的鼠标事件究竟该怎么用好吗?我的一个LISTBOX控件用了Click DbClick Getfouse LostFouse,结果发现双击经常需要双击2
- VBA 调试“运行时错误 1004 ,指定值超出范围”。这个该如何解决,谢谢!
- 有没有完整一点的VB里控制Word(或者说VB里使用Word对象)的代码?
- 怎么样判断我的系统有无安装sql server2000?十万火急,先谢了(来者有分)
MsgBox Format(Date, "yyyym")
End Sub
就是使用format函数把data函数取得的日期,格式化为yyyy'4位年表示,M‘一位的月表示
'Date() 返回月
Private Sub Command1_Click()
Text1.Text = Year(Date) & Month(Date)
End Sub