ADODC出现错误:Method 'refresh' of object 'IAdodc' failed何解?

yuhuahuang 2006-04-04 09:07:19
以下语句用于单头和单身的关联,当记录移动时就触发以下语句以保持单头和单身同步。但有时出现错误:Method 'refresh' of object 'IAdodc' failed何解?

If Adodc_header_general.Recordset.eof = False Then
Adodc_body_general.RecordSource = "select VAj.* from VAj with (nolock) where VAj.VAjid='" & Adodc_header_general.Recordset.Fields("VAjid").Value & "'"
Adodc_body_general.Refresh
End If




注:当Form load ‘时
Adodc_body_general.ConnectionString=library_general_2.about_db_register.connection_string
Adodc_body_general.CommandType = adCmdUnknown
Adodc_body_general.RecordSource = "select top 1 VAj.* from VAj with (nolock) "
Adodc_body_general.Refresh
End sub

有人说是CommandType问题。应该是adCmdText,但adCmdUnknown不是包含所有的了吗?
不知大家有何高见。或有什幺方法进行单头和单身关联方法
...全文
289 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
faysky2 2006-04-11
  • 打赏
  • 举报
回复
把出现错误时的 RecordSource贴出来看看
yuhuahuang 2006-04-08
  • 打赏
  • 举报
回复
以上兩個兄台的方法還是不行。你兩位能留下mail嗎?
我把我程式的錄像傳給你們看一下。
TO: faysky2
Debug.Print Adodc_body_general.CommandType = adCmdUnknown---------True

TO: of123 :不行

光標指向:Adodc_body_general.Refresh
出现错误:Method 'refresh' of object 'IAdodc' failed

是不定時的。真是很怪

yuhuahuang 2006-04-08
  • 打赏
  • 举报
回复
以上兩個兄台的方法還是不行。你兩位能留下mail嗎?
of123 2006-04-07
  • 打赏
  • 举报
回复
这种错误有两个可能:
1 在你的 Adodc_body_general 的 RecordSource 设置成 SQL 语句之前,其 CommandType 属性被设置成了 adCmdTable。

2 你的数据库 Provider 不接受你的 SQL 语句。

所以
1

If Adodc_header_general.Recordset.eof = False Then
Adodc_body_general.CommandType = adCmdUnknown 'adCmdText
Adodc_body_general.RecordSource = "select VAj.* from VAj with (nolock) where VAj.VAjid='" & Adodc_header_general.Recordset.Fields("VAjid").Value & "'"
Adodc_body_general.Refresh
End If

2
如果 Provider 不是 SQL Server, 去掉 with (nolock) 试试。
检查你的 SQL 语句是否有非法字符,例如中文空格等。
faysky2 2006-04-07
  • 打赏
  • 举报
回复
看看它的CommandType属性还是不是adCmdText或adCmdUnknown

Debug.Print Adodc_body_general.CommandType = adCmdUnknown
yuhuahuang 2006-04-07
  • 打赏
  • 举报
回复
樓上的方法試了
Debug.Print Adodc_body_general.RecordSource.RecordSource 出來的就是正確的select語句
現在我在
Adodc_body_general.RecordSource = "select VAj.* from VAj with (nolock) where VAj.VAjid='" & Adodc_header_general.Recordset.Fields("VAjid").Value & "'"
前先Adodc_body_general.Refresh好像是可以的。
但始終不知是何原因?
faysky2 2006-04-05
  • 打赏
  • 举报
回复
把Adodc_body_general.RecordSource 的RecordSource打印出来看是否正确:

If Adodc_header_general.Recordset.eof = False Then
Adodc_body_general.RecordSource = "select VAj.* from VAj with (nolock) where VAj.VAjid='" & Adodc_header_general.Recordset.Fields("VAjid").Value & "'"
Debug.Print Adodc_body_general.RecordSource.RecordSource '在立即窗口查看sql语句是否正确
Adodc_body_general.Refresh
End If


迈克揉索芙特 2006-04-04
  • 打赏
  • 举报
回复
好像SQL语句的问题,不敢确定。
另外安装SP6试试。
Snoworld 2006-04-04
  • 打赏
  • 举报
回复
帮顶
jackcaixia 2006-04-04
  • 打赏
  • 举报
回复
好像是还没有连接数据库~~
yuhuahuang 2006-04-04
  • 打赏
  • 举报
回复
改有Adodc_body_general.Recordset.Requery 不行。
新增時,表身沒有變化
faysky2 2006-04-04
  • 打赏
  • 举报
回复
Adodc_body_general.Refresh

改为下面的试试

Adodc_body_general.Recordset.Requery

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧