刚学习VB,照指导书上编了段代码,但运行后提示标准表达式中数据类型不匹配,求助,以下是代码

OptionExplicitDimconnAsNewADODB.ConnectionDimcmdAsNewADODB.CommandDimrsAsNewADODB.Rec... Option Explicit
Dim conn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset

Private Sub recshow()
Text1.Text = rs.Fields("课程号").Value
Text2.Text = rs.Fields("课程名").Value
Text3.Text = rs.Fields("学时").Value
End Sub

Private Sub recchange()
rs.Fields("课程号").Value = Text1.Text
rs.Fields("课程名").Value = Text2.Text
rs.Fields("学时").Value = Text3.Text
End Sub

Private Sub Command1_Click()
Call recchange
rs.MoveFirst
Call recshow
End Sub

Private Sub Command2_Click()
Call recchange
rs.MoveNext
If rs.EOF Then rs.MoveLast
Call recshow
End Sub

Private Sub Command3_Click()
Call recchange
rs.MovePrevious
If rs.BOF Then rs.MoveFirst
Call recshow
End Sub

Private Sub Command4_Click()
Call recchange
rs.MoveLast
Call recshow
End Sub

Private Sub Form_Load()
conn.Open "Provider = Microsoft.Jet.OLEDB.4.0;data source= E:\VB\数据库\1-1.mdb"
Set cmd.ActiveConnection = conn
cmd.CommandType = adCmdText
cmd.CommandText = "select 课程号,课程名,学时 from 课程 where 学时>60 Order by 课程号"
rs.Open cmd, , adOpenDynamic, adLockOptimistic
rs.Save ("e:\VB\数据库\单表生成的记录集1")
rs.MoveFirst
Call recshow
End Sub
展开
 我来答
liujj4241
2012-04-24 · TA获得超过4043个赞
知道大有可为答主
回答量:7021
采纳率:58%
帮助的人:754万
展开全部
出错的时候调试一下,看看哪一句有错
rs.Save ("e:\VB\数据库\单表生成的记录集1")这句肯定是不对的
首先如果没有返回的话rs.save 后面参数不能加括号,必须写成
rs.Save "e:\VB\数据库\单表生成的记录集1"
或者
call rs.Save ("e:\VB\数据库\单表生成的记录集1")

其他地方是否还有错,暂时没有看出来

另外这个程序有点奇怪,从数据库里面取出数据,然后编辑,然后写入“e:\VB\数据库\单表生成的记录集1”这样一个Data Tablegram文件里,没有写回数据库,作为试验没问题,做成程序不明白目的了
更多追问追答
追问
调试过,提示这句有问题 :rs.Open cmd, , adOpenDynamic, adLockOptimistic
但是我感觉是上一句的问题:select 课程号,课程名,学时 from 课程 where 学时>60 Order by 课程号
我在数据库窗口执行SQL语句时,上一句的 学时>60 必须改成 学时>“60” 才有结果,但是当我在代码窗口把60用引号括起来时,就提示缺少语句结束
那个save语句书上解释了,这个操作并非必要,只是演示save方法
不知道是怎么回事呀……
追答
cmd没有定义,也没有创建对象
在Set cmd.ActiveConnection = conn之前加上
dim cmd as new adodb.command
neeukylym
2012-04-23
知道答主
回答量:32
采纳率:0%
帮助的人:15.3万
展开全部
提示的是这个有错误,标准表达式中数据类型不匹配。 很有可能是出在这个上面: INSERT INTO [cart] ([cartcustomer], [productid], [productname],
追问
我没用这一句呀?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
度老虎
2012-04-23 · TA获得超过1546个赞
知道大有可为答主
回答量:1661
采纳率:100%
帮助的人:2306万
展开全部
学时 这个字段的数据类型是数值还是字符?
追问
是数值吧,不过对总体影响不大吧……  不懂,提示错误是这句rs.Open cmd, , adOpenDynamic, adLockOptimistic
感觉应该是上一句出了错,但又不知错在哪……
追答
你先确认一下,数值和字符的写法完全不一样的,“数据类型不匹配”很有可能是这个原因。
如果是字符型的,应该把它改为数值型,这样才好比较。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式