Office中国论坛/Access中国论坛

标题: 方法Open作用于Recordset对象失败 [打印本页]

作者: Henry D. Sy    时间: 2016-9-13 20:48
标题: 方法Open作用于Recordset对象失败
今天第一次出现了这种情况,查了半天也不知道什么原因
放上了论坛,大家指导一下.
运行环境
win10
office2016
打开记录集时用SQL语句,只能用星号代替字段名或者直接用表名
如果用字段名就出错.

如下过程出现:方法Open作用于Recordset对象失败
  1. Private Sub Command0_Click()
  2.     Dim rs As New ADODB.Recordset
  3.     Dim sSQL As String

  4.     sSQL = "SELECT ORD.STYLE, ORD.PO, ORD.COLOR, ORD.SIZE, ORD.QUANTITY FROM ORD" '错误
  5.    
  6.     rs.Open sSQL, CurrentProject.Connection, adOpenKeyset, adLockReadOnly
  7.    
  8.     MsgBox rs.RecordCount

  9.     rs.Close
  10.     Set rs = Nothing
  11. End Sub
复制代码
而下面过程却运行正常,

  1. Private Sub Command1_Click()

  2.     Dim rs As New ADODB.Recordset
  3.     Dim sSQL As String

  4.    
  5.     sSQL = "SELECT * FROM ORD"
  6.    

  7.     rs.Open sSQL, CurrentProject.Connection, adOpenKeyset, adLockReadOnly   '运行正常
  8. '    rs.Open "ORD", CurrentProject.Connection, adOpenKeyset, adLockReadOnly  '运行正常
  9.    
  10.     MsgBox rs.RecordCount

  11.     rs.Close
  12.     Set rs = Nothing
  13. End Sub
复制代码

[attach]59939[/attach]


作者: tmtony    时间: 2016-9-13 21:22
其实。。。。
就是 保留字的问题
改成这样就可以了
sSQL = "SELECT ORD.STYLE, ORD.PO, ORD.[COLOR], ORD.[SIZE], ORD.[QUANTITY] FROM ORD"

话说 Henry 版主好久不见了,玩什么去了:)
作者: Henry D. Sy    时间: 2016-9-14 00:57
tmtony 发表于 2016-9-13 21:22
其实。。。。
就是 保留字的问题
改成这样就可以了

非常感谢!
好久没碰Access,快忘了.
哪有功夫玩,呀
这几年一直上海,北京.
现在在家了


作者: roych    时间: 2016-9-14 12:22
保留字的问题确实很容易被忽略,例如:Name,Order什么的……我一般都是改为UserName,OrderNo等等的。
作者: Henry D. Sy    时间: 2016-9-14 12:49
roych 发表于 2016-9-14 12:22
保留字的问题确实很容易被忽略,例如:Name,Order什么的……我一般都是改为UserName,OrderNo等等的。

是的,
长时间没碰access都忘了
而数据又是来自外部链接.更没有注意字段名称.
被保留字SIZE搞得头晕!!
作者: tmtony    时间: 2016-9-14 15:14
欢迎 回到Office中国家




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3