| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1012 人关注过本帖
标题:设计了一款参数查询的系统,代码如下,但是运行会出现变量未定义或With块未 ...
只看楼主 加入收藏
cool_five
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-6-7
结帖率:0
收藏
已结贴  问题点数:20 回复次数:9 
设计了一款参数查询的系统,代码如下,但是运行会出现变量未定义或With块未设置的问题
Private Sub Command1_Click()
Dim sname As Variant
sname = Text1.Text
Data1.Recordset.FindFirst "每齿进给量 like'" & sname & "'"
If Data1.Recordset.NoMatch Then MsgBox ("无此每齿进给量")  'MsgBox "无此每齿进给量", , -"提示"

End Sub

Private Sub Command2_Click()
铣削用量浏览.Show
End Sub

Private Sub Command3_Click()
Dim sname As Variant
sname = Text2.Text
Data1.Recordset.FindFirst "被加工材料 like'" & sname & "'"
If Data1.Recordset.NoMatch Then MsgBox "无此被加工材料", , "提示"
End Sub
搜索更多相关主题的帖子: 进给量 
2011-06-07 15:14
Artless
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:4211
专家分:28888
注 册:2009-4-8
收藏
得分:10 
图片附件: 游客没有浏览图片的权限,请 登录注册

无知
2011-06-08 00:18
cool_five
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-6-7
收藏
得分:0 
Data1.Recordset.FindFirst "每齿进给量 like'" & sname & "'"
调试的时候,就这个语句变黄色。说是变量未定义或with块为设置
2011-06-08 07:07
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:653
专家分:3402
注 册:2008-5-7
收藏
得分:10 
在我映像中,recordset是没有findfirst这个方法的,很显然,你使用数据库控件data1,已经绑定了记录集,而"每齿进给量 like'" & sname & "'"是组合sql语句,这是一个矛盾,因为data1的sql语句是放在data1的recordsource属性里的。因此,你的FindFirst 可能是一个函数,它带一个字符串参数,这个参数是一句sql语句,目的是查找第一条记录。
2011-06-08 07:34
cool_five
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-6-7
收藏
得分:0 
回复 4楼 lowxiong
书本上说是有Find First的使用方法的。方法的功能是自首记录开始向下查询匹配的第一个记录。
2011-06-08 09:30
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:653
专家分:3402
注 册:2008-5-7
收藏
得分:0 
回复 5楼 cool_five
有没有你可以进入设计状态,一般在输入recordset.f时就有提示,我这里字幕f打头的就是fields,没有findfirst,有movefirst、movenext、movelast方法,可能vba里的ado所产生的记录集有该方法,vba是office里的vb宏语言。
2011-06-08 09:57
cool_five
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-6-7
收藏
得分:0 
回复 6楼 lowxiong
我这个vb的版本是没有MSND的合集的!我看的书是有跟Move的一样的
2011-06-08 10:47
cool_five
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-6-7
收藏
得分:0 
回复 6楼 lowxiong
检查Data1.Recordset是否为Nothing 的方法是怎样的?
2011-06-08 10:48
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:653
专家分:3402
注 册:2008-5-7
收藏
得分:0 
应该就是isnothing(Data1.Recordset)吧
if isnothing(Data1.Recordset) then
  ....
else
  ....
end if
2011-06-08 11:26
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:653
专家分:3402
注 册:2008-5-7
收藏
得分:0 
回复 8楼 cool_five
在自己的电脑上试了下,data控件只能绑定早期的access数据库,你检查下是不是把数据库不小心转换为access2000的版本了,如果是就在access中将它转换为早期版本(access97),再就是data控件的databasename没指定数据库的话,运行时也会提示你所说的情况,你在每个data1.recordset加个nothing判断,看有没有提示,代码如下:
Private Sub Command1_Click()
Dim sname As Variant
sname = Text1.Text
If Data1.Recordset Is Nothing Then
  MsgBox "错误,可能Data1.DatabaseName没有正确的数据库路径或数据库版本错误,需要97版本"
  Exit Sub
End If
Data1.Recordset.FindFirst "每齿进给量 like'" & sname & "'"
If Data1.Recordset.NoMatch Then MsgBox ("无此每齿进给量")  'MsgBox "无此每齿进给量", , -"提示"

End Sub

Private Sub Command2_Click()
铣削用量浏览.Show
End Sub

Private Sub Command3_Click()
Dim sname As Variant
sname = Text2.Text
If Data1.Recordset Is Nothing Then
  MsgBox "错误,可能Data1.DatabaseName没有正确的数据库路径或数据库版本错误,需要97版本"
  Exit Sub
End If
Data1.Recordset.FindFirst "被加工材料 like'" & sname & "'"
If Data1.Recordset.NoMatch Then MsgBox "无此被加工材料", , "提示"
End Sub


[ 本帖最后由 lowxiong 于 2011-6-8 19:08 编辑 ]
2011-06-08 19:04
快速回复:设计了一款参数查询的系统,代码如下,但是运行会出现变量未定义或Wit ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017727 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved