vb中的DBGrid怎么使用呢?

我想在横纵输入我自己的数组,要用不只两列,具体怎么设置????... 我想在横纵输入我自己的数组,要用不只两列,具体怎么设置???? 展开
 我来答
sun343
推荐于2016-03-17 · TA获得超过354个赞
知道答主
回答量:146
采纳率:0%
帮助的人:120万
展开全部
首先我强烈推荐你
下载一个这个作为参考手册 他是VB百科全书

http://www.coldpage.com/download1/MSDNforVB.rar

然后我归纳一下
=====================================================
1、如何修改DBGrid的列标题
可以使用Select语句指定标题,如:
Select f1 As [姓名] From db
但是这种方法有毛病,因为VB认为使用了As后,数据库就变成只读的了。
比较好的办法是利用DBGrid的Column的Caption,如:
DBGrid1.Columns(1).Caption = "姓名"

2、怎样把过滤过的数据在DBGRID上显示出来
下面是大致的代码:
Private Sub cmdFilter_Click()
On Error GoTo FilterErr
Dim recRecordset1 As Recordset, recRecordset2 As Recordset
Dim sFilterStr As String
If Data1.RecordsetType = vbRSTypeTable Then
Beep
MsgBox "不能过滤表记录集!", 48
Exit Sub
End If
Set recRecordset1 = Data1.Recordset '复制记录集
sFilterStr = InputBox("输入过滤器表达式:")
If Len(sFilterStr) = 0 Then Exit Sub
Screen.MousePointer = vbHourglass
recRecordset1.Filter = sFilterStr
Set recRecordset2 = recRecordset1.OpenRecordset(recRecordset1.Type) '建立过滤器
Set Data1.Recordset = recRecordset2 '赋值为初始记录集对象
Screen.MousePointer = vbDefault
Exit Sub
FilterErr:
Screen.MousePointer = vbDefault
MsgBox "错误:" & Err & "," & Err.Description
End Sub

如何控制DBGRID的内容不被修改
使用下面几种方法中的任何一种都可以:
1、设置DBGrid的AllowUpdate属性为False。
2、把同DBGrid关联的Data控件的RecordsetType改为SnapShot

4、如何使DBGrid的某一列数据的修改不存入数据库
DBGrid有一个事件BeforeColUpdate,其语法如下:
Private Sub object_BeforeColUpdate ([ index As Integer,] colindex As Integer, oldvalue As Variant, cancel As Integer)
其中colindex是列号,如果cancel为False就允许更新数据库,如果为True就不允许更新数据库,把焦点保留在控件上。

5、如何在DBGrid中取消对记录的修改
在DBGrid_Error事件中增加Response = 0这一句:
Private Sub DBGrid1_Error(ByVal DataError As Integer, Response As Integer)
Response = 0
End Sub
默认Response = 1,表示显示错误信息,Response = 0表示不显示错误信息

6、如何修改DBGRID控件显示的日期格式
可以修改列的NumberFormat,设计时或运行时修改都可以:
DBGrid1.Columns(1).NumberFormat = "long date"
7、如何设置DBGrid列的宽度
使用DBGrid1.Columns(i).Width可以设置宽度

8、在DBGRID控件中选定一行后,如何获得此行中的数据
Private Sub DBGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
If Val(LastRow) <> DBGrid1.Row Then
Text1.Text = Data1.Recordset("Name")
End If
End Sub

9、DBGrid控件中如何在属性中设定表格显示时的列数
如果是在设计时,可以先在Data控件中设置好,然后右击DBGrid,在快捷菜单上选择Retrieve Fields,这时DBGrid会根据Data控件来修改列数。如果你日后修改了Data控件的RecordSource属性,但没有使用Retrieve Fields,DBGrid列数将不变化。
你也可以在运行时使用Columns集合修改表格显示的列数。比如,下面的语句加入一列:
' Create a new Column 0
DBGrid1.Columns.Add 0
' Make it visible
DBGrid1.Columns(0).Visible = True
' Set the column's database field
DBGrid1.Columns(0).DataField = "LAST"
' Set the column's caption
DBGrid1.Columns(0).Caption = "Last Name"

10、如何检测DBGrid的焦点移动和移动焦点
可以在RowColChange事件中放置代码,发现用户移动到第二列就提供相应的选择。可以使用SelEndCol、SelStartCol、SelEndRow和SelStartRow属性来改变当前选择的单元。

11、DBGrid和事务的联合使用
1) DBGRID 直接进行数据录入时,由于其本身的限制(缺乏必要的检测 如单元格检测),因此需要自行做很多控制.建议考虑其他方法。
(2) 事务的处理. 在数据量较大时,将保存的过程尽可能简化,然后套上事务,会大大加快保存的效率.下面以 VB6 为例 使用ADO,SQL7
比如说生成一个表的过程,可从服务器返回一个空的结果集
Example: " Select * from table1 where 1=0"
然后是
On Error Goto Errhandle
...
BeginTrans
AddNew
字段赋值过程
...
Update
CommitTrans
...
Exit sub
Errhandle:
RollBack
与 Data 控件绑定时,事务最好是紧跟着保存操作,而不要在某个函数里调保存的函数,这样执行 "Data1.refresh"时就不会有问题了。
以上意见仅供参考。

12、如何才能向非绑定DBGrid控制追加数据
如果要想让最终用户追加数据,可以将AllowAddNew属性设为True,这样在表的最后一行会出现一个空白行,用户可以在此追加数据。
如果要想在程序中修改行数,可以使用Refresh方法,这样DBGrid控制放弃当前数据,重新调用UnboundReadData事件读取数据,借机可以追加数据。
13、如何给DBGrid控件添加一个非绑定的计算字段
这个问题相当麻烦。如果你要加修改Data控件的RecordSource为
Select [销售额], [销售额]*0.07 ... From ...
虽然可以显示这个计算字段,但就不能修改任何记录了,因为VB认为只要Select语句中出现计算字段就为只读的了。当然,你可以使用非绑定方式,但这样做程序工作量比较大。

14、怎样控制DBGrid控件的点击头事件
在用户单击一个 DBGrid 控件指定列的标题时,会发生HeadClick事件。该事件的语法为:
Private Sub object_HeadClick ([ index As Integer,] colindex As Integer)

其中colindex参数就是用户点击的列的索引值,利用这个值和Columns属性配合使用就可以知道用户点击的是哪一个字段。下面给出一个例子,在这个例子中,用户点击某个列的标题之后,DBGrid就按那个列进行排序。
首先,在窗体上放置一个Data控件和一个DBGrid控件。
然后,将Data控件的数据库设置为VB目录下的Biblio.mdb,将RecordSource设置为Publishers。将DBGrid控件的DataSource属性设置为Data1。
最后,输入以下代码:

Private Sub DBGrid1_HeadClick(ByVal ColIndex As Integer)
Data1.RecordSource = "Select * From Publishers Order By [" & _
DBGrid1.Columns(ColIndex).DataField + "]"
Data1.Refresh
End Sub

这样运行程序就可以看到排序的效果了。
网易云信
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同... 点击进入详情页
本回答由网易云信提供
sbj518
推荐于2016-11-16 · TA获得超过4.4万个赞
知道大有可为答主
回答量:1.1万
采纳率:81%
帮助的人:5271万
展开全部
DBGrid的基本使用说明

1、如何修改DBGrid的列标题
可以使用Select语句指定标题,如:
Select f1 As [姓名] From db
这种方法有一个小瑕疵,因为VB认为在使用了As后,数据库就变成只读的了。 比较好的办法是利用DBGrid的Column的Caption,如: DBGrid1.Columns(1).Caption= "姓名”。

2、怎样把过滤过的数据在DBGRID上显示出来
下面是大致的代码:
Private Sub cmdFilter_Click()
On Error GoTo FilterErr
Dim recRecordset1 As Recordset, recRecordset2 As Recordset
Dim sFilterStr As String
If Data1.RecordsetType = vbRSTypeTable Then
Beep
MsgBox "不能过滤表记录集!", 48
Exit Sub
End If
Set recRecordset1 = Data1.Recordset '复制记录集
sFilterStr = InputBox("输入过滤器表达式:")
If Len(sFilterStr) = 0 Then Exit Sub
Screen.MousePointer = vbHourglass
recRecordset1.Filter = sFilterStr
Set recRecordset2 = recRecordset1.OpenRecordset(recRecordset1.Type)'建立过滤器
Set Data1.Recordset = recRecordset2 '赋值为初始记录集对象
Screen.MousePointer = vbDefault
Exit Sub
FilterErr:
Screen.MousePointer = vbDefault
MsgBox "错误:" & Err & "," &Err.Description
End Sub

3、如何控制DBGRID的内容不被修改
使用下面几种方法中的任何一种都可以:
①设置DBGrid的AllowUpdate属性为False。
②把同DBGrid关联的Data控件的RecordsetType改为SnapShot

4、如何使DBGrid的某一列数据的修改不存入数据库
DBGrid有一个事件BeforeColUpdate,其语法如下:
Private Subobject_BeforeColUpdate ([ index As Integer,] colindex As Integer, oldvalue AsVariant, cancel As Integer)
其中colindex是列号,如果cancel为False就允许更新数据库,如果为True就不允许更新数据库,把焦点保留在控件上。

5、如何在DBGrid中取消对记录的修改
在DBGrid_Error事件中增加Response= 0这一句:
Private Sub DBGrid1_Error(ByVal DataError As Integer, Response AsInteger)
Response = 0
End Sub
默认Response =1,表示显示错误信息,Response = 0表示不显示错误信息。

6、如何修改DBGRID控件显示的日期格式
可以修改列的NumberFormat,设计时或运行时修改都可以:
DBGrid1.Columns(1).NumberFormat ="long date"
7、如何设置DBGrid列的宽度
使用DBGrid1.Columns(i).Width可以设置宽度

8、在DBGRID控件中选定一行后,如何获得此行中的数据
Private Sub DBGrid1_RowColChange(LastRow As Variant, ByVal LastColAs Integer)
If Val(LastRow) <> DBGrid1.Row Then
Text1.Text = Data1.Recordset("Name")
End If
End Sub

9、DBGrid控件中如何在属性中设定表格显示时的列数
如果是在设计时,可以先在Data控件中设置好,然后右击DBGrid,在快捷菜单上选择RetrieveFields,这时DBGrid会根据Data控件来修改列数。如果你日后修改了Data控件的RecordSource属性,但没有使用Retrieve Fields,DBGrid列数将不变化。
你也可以在运行时使用Columns集合修改表格显示的列数。比如,下面的语句加入一列:
' Create a new Column 0
DBGrid1.Columns.Add 0
' Make it visible
DBGrid1.Columns(0).Visible = True
' Set the column's database field
DBGrid1.Columns(0).DataField = "LAST"
' Set the column's caption
DBGrid1.Columns(0).Caption = "Last Name"

10、如何检测DBGrid的焦点移动和移动焦点
可以在RowColChange事件中放置代码,发现用户移动到第二列就提供相应的选择。可以使用SelEndCol、SelStartCol、SelEndRow和SelStartRow属性来改变当前选择的单元。

11、DBGrid和事务的联合使用
① DBGRID 直接进行数据录入时,由于其本身的限制(缺乏必要的检测如单元格检测),因此需要自行做很多控制.建议考虑其他方法。
②事务的处理. 在数据量较大时,将保存的过程尽可能简化,然后套上事务,会大大加快保存的效率.下面以 VB6 为例使用ADO,SQL7
比如说生成一个表的过程,可从服务器返回一个空的结果集
Example: " Select * from table1 where 1=0"
然后是
On Error Goto Errhandle
...
BeginTrans
AddNew
字段赋值过程
...
Update
CommitTrans
...
Exit sub
Errhandle:
RollBack
与 Data 控件绑定时,事务最好是紧跟着保存操作,而不要在某个函数里调保存的函数,这样执行 "Data1.refresh"时就不会有问题了。
以上意见仅供参考。

12、如何才能向非绑定DBGrid控制追加数据
如果要想让最终用户追加数据,可以将AllowAddNew属性设为True,这样在表的最后一行会出现一个空白行,用户可以在此追加数据。
如果要想在程序中修改行数,可以使用Refresh方法,这样DBGrid控制放弃当前数据,重新调用UnboundReadData事件读取数据,借机可以追加数据。
13、如何给DBGrid控件添加一个非绑定的计算字段
这个问题相当麻烦。如果你要加修改Data控件的RecordSource为
Select [销售额], [销售额]*0.07 ... From ...
虽然可以显示这个计算字段,但就不能修改任何记录了,因为VB认为只要Select语句中出现计算字段就为只读的了。当然,你可以使用非绑定方式,但这样做程序工作量比较大。

14、怎样控制DBGrid控件的点击头事件
在用户单击一个 DBGrid 控件指定列的标题时,会发生HeadClick事件。该事件的语法为:
Private Subobject_HeadClick ([ index As Integer,] colindex As Integer)
其中colindex参数就是用户点击的列的索引值,利用这个值和Columns属性配合使用就可以知道用户点击的是哪一个字段。下面给出一个例子,在这个例子中,用户点击某个列的标题之后,DBGrid就按那个列进行排序。
首先,在窗体上放置一个Data控件和一个DBGrid控件。
然后,将Data控件的数据库设置为VB目录下的Biblio.mdb,将RecordSource设置为Publishers。将DBGrid控件的DataSource属性设置为Data1。
最后,输入以下代码:

Private Sub DBGrid1_HeadClick(ByVal ColIndex As Integer)
Data1.RecordSource = "Select * From Publishers Order By ["& _
DBGrid1.Columns(ColIndex).DataField + "]"
Data1.Refresh
End Sub

这样运行程序就可以看到排序的效果了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式