VB DataGrid Access数据库绑定问题

[复制链接]
查看11 | 回复2 | 2008-12-23 15:51:02 | 显示全部楼层 |阅读模式
整了半天,还是没弄好。
目的:
要在Data Grid里面显示数据列表。(rs=select * from PC_Info)
要支持模糊查询(大概这里我自己会写,只是前面都还没成功),查询结果也显示到DBgrid里面。
另外的可选问题
点击每行数据,会执行(msgbox "这里添加执行代码")
再进一步的可选问题
左边list里面点一下,会在DBGrid里面显示该条记录。
因为抄来抄去,代码有点乱,请朋友们见谅。
当前错误是:
VB会选中aduserclient提示变量未定义。
完整代码如下
Option Explicit
Dim tb As TableDef
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim myrs As New ADODB.Recordset
Private Sub Label1_Click()
End Sub
Private Sub Cmd_Search_Click()
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
If Text1.Text = "" Then

Set DataGrid1.DataSource = rs

Else

MsgBox "search"

Data1.RecordSource = "select * from PC_Info where hostname like" & Chr(34) & Text1.Text & Chr(34)

Data1.Refresh
End If
End Sub
Private Sub Command2_Click()
Unload Me
frmDataEnv.Show
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Form_Load()
Dim i As Integer
Dim aaa As Long
Dim source As String
Set cn = New ADODB.Connection
cn.ConnectionString = "uid=admin;pwd=;driver={microsoft access driver (*.mdb)}; dbq= " & App.Path & "\SEPH Info-97.mdb"
cn.Open
Adodc1.ConnectionString = cn
Adodc1.RecordSource = "PC_Info"
Adodc1.Refresh
source = "PC_Info"
rs.Open source, cn
For i = 0 To Adodc1.Recordset.RecordCount - 1

List1.AddItem (rs.Fields(3))
RemMsgBox rs.Fields(i)

rs.MoveNext
Next i
rs = aduserclient
End Sub
Private Sub List1_Click()
If Not Adodc1.BOFAction Then Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Move (List1.ListIndex)
End Sub
都不行啊,老大。
poi123p82朋友的运行rs.Open PC_Info, cn, adOpenKeyset, adLockPessimistic 时会提示PC_Info变量未定义。
错误还是不少。
上面回答的怎么换了个人?我记得不叫这个名字啊。
poi123p82就不好意思了,谢谢你2次来补充回答。pc_info是表名,但按你的就会说变量没定义。太奇怪了。而且你的描述性文字应该加上注释符号,这样像我这样的菜鸟粘贴上去时才不容易出错。

回复

使用道具 举报

千问 | 2008-12-23 15:51:02 | 显示全部楼层
adUseClient是数据游标类型,如果是设置数据库客户端游标的话,应该是:cn.CursorLocation = adUseClient你改成这样试试(放到cn.Open前面去)?还有,在VB里面要传递SQL的"Like"模糊查询语句,通配符应该用 % 号(Access里面是用 * 号)。按你的意思,我看应该是:"select * from PC_Info where hostname like '%" & Text1.Text & "%'"=============补充===============原来你其他代码还没搞齐啊,这样吧,你试试以下的,这回不需要使用Adodc控件了(用法上是相似的,Rs 这回等同于 Ad...
回复

使用道具 举报

千问 | 2008-12-23 15:51:02 | 显示全部楼层
1.删除Set cn = New ADODB.Connection ,上面已经宣告了。2.在Form Load 修改成:Dim StrSql as stringPrivate Sub Form_Load() cn.ConnectionString = "provider=Microsoft.jet.OLEDB.4.0;" & _ ...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行