刚学习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 展开
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 展开
3个回答
展开全部
出错的时候调试一下,看看哪一句有错
rs.Save ("e:\VB\数据库\单表生成的记录集1")这句肯定是不对的
首先如果没有返回的话rs.save 后面参数不能加括号,必须写成
rs.Save "e:\VB\数据库\单表生成的记录集1"
或者
call rs.Save ("e:\VB\数据库\单表生成的记录集1")
其他地方是否还有错,暂时没有看出来
另外这个程序有点奇怪,从数据库里面取出数据,然后编辑,然后写入“e:\VB\数据库\单表生成的记录集1”这样一个Data Tablegram文件里,没有写回数据库,作为试验没问题,做成程序不明白目的了
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
展开全部
提示的是这个有错误,标准表达式中数据类型不匹配。 很有可能是出在这个上面: INSERT INTO [cart] ([cartcustomer], [productid], [productname],
追问
我没用这一句呀?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
学时 这个字段的数据类型是数值还是字符?
追问
是数值吧,不过对总体影响不大吧…… 不懂,提示错误是这句rs.Open cmd, , adOpenDynamic, adLockOptimistic
感觉应该是上一句出了错,但又不知错在哪……
追答
你先确认一下,数值和字符的写法完全不一样的,“数据类型不匹配”很有可能是这个原因。
如果是字符型的,应该把它改为数值型,这样才好比较。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询