再次送100分,关于DataGrid的问题
模块里:
Option Explicit
Private conn As ADODB.Connection
Private rs As ADODB.Recordset
窗体里:
Private Sub Form_Load()
Dim apppath As String
Dim dbfilename As String
Dim ConnectString As String
Dim i As Integer
Set conn = New ADODB.Connection
dbfilename = App.Path + "\item.mdb"
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbfilename & ";Persist Security Info=False;"
conn.Open ConnectString
conn.CursorLocation = adUseClient
Set rs = New ADODB.Recordset
rs.Open "select 地图,怪物名称,等级,怪物类型,不可交易,不可重复,物品名称,重量,类型,伤害,延迟,距离,防御,性别,种族,职业,属性 from item where 职业 like '%药%'", conn, adOpenKeyset, adLockOptimistic
If rs.EOF Then
Exit Sub
End If
Set DataGrid1.DataSource = rs
End Sub
这样运行一切正常~~
但是DataGrid1的部分列宽,我觉得不满意,而且我让他自动换行,
我就在DaraGrid1属性里调整了
“布局”的一些参数。然后再次运行, DataGrid1就空了!什么都没有!再改回来也不行。必须删除窗体上的DataGrid1,重新拖一个新的才行~再改,又空了!我这24小时了!就卡在这里。
我的机器是Windows2000,XP下也这样, VB都是企业版,安装了ServicePack6的!
DataGrid来自Windows\system32\MSDATGRD.OCX.
有没有什么解决方法啊!!
换别的Grid也行,但是一定要给我确实能用的代码。谢谢了~~~~
问题点数:100、回复次数:8Top
1 楼xiaohuasz()回复于 2004-09-01 19:17:18 得分 5
该句conn.CursorLocation = adUseClient应该在放在conn.Open ConnectString连接之前,
Top
2 楼online(龙卷风V4.0--决战江湖(MS MVP-VB))回复于 2004-09-01 19:26:39 得分 80
我这边没有问题
不行就代码设置吧
DataGrid1.Columns("订单号").Width = 1200
你可以使用MSHFlexGrid控件,直接记录集绑定Top
3 楼donno2000(不懂)回复于 2004-09-01 19:26:52 得分 0
datagrid 的每一个列都要设置哦、Top
4 楼pingyou(裸男.NET)回复于 2004-09-01 19:30:42 得分 0
DataGrid1.Columns("订单号").Width = 1200
就是用这种方法来设置DataGrid每一列的列宽,如果你在程序运时自己重新调整列宽,你可以在窗体关闭时加一些代码,将每列的列宽存入注册表或一个.inf文件中,下次再打开窗体就重新读取。Top
5 楼4103796(潇湘予)回复于 2004-09-01 19:33:30 得分 0
在程序运行中拖拽网格行至最佳宽度。你用代码将宽度自动保存到注册表里。再启动窗体时,你用代码自动读取每列宽度并赋值,我的数据库程序就是这样做的。很受欢迎。比程序里写死代码要强多了。Top
6 楼hhjjhjhj(大头)(http://office.9zp.com)回复于 2004-09-01 19:33:41 得分 10
........
Do While DataGrid1.Columns.Count < rs.Fields.Count
DataGrid1.Columns.Add DataGrid1.Columns.Count
Loop
For i = 0 To rs.Fields.Count - 1
DataGrid1.Columns(i).DataField = rs.Fields(i).Name
DataGrid1.Columns(i).Caption = rs.Fields(i).Name
Next i
Set DataGrid1.DataSource = rsTop
7 楼jam021(jam)回复于 2004-09-01 19:33:48 得分 0
用代码设置宽度吧Top
8 楼scaoso(枫林)回复于 2004-09-01 22:19:25 得分 5
解决了吧??我来接分了哦.Top




