在运行程序,却提示:错误类型:
Microsoft OLE DB Provider for SQL Server (0x80040E37)
对象名 'user' 无效。user为表名,数据库确实存在,用企业管理器查看都没什么问题,用程序就出现这个问题了
连接语句为:
Set conn = Server.CreateObject("ADODB.Connection")
connstr="DRIVER={SQL Server};SERVER=(local);UID=登录名;PWD=密码;DATABASE=数据库名"我用这个连接语句连接另一个数据库都是正常的。
我现在要用的这个数据库是从网上备份下来的,然后新建数据库来产生的。
网上的连接语句为:
Set conn = Server.CreateObject("ADODB.Connection")
connstr="provider=sqloledb;data source=(local);User ID=登录名;pwd=密码;Initial Catalog=数据库名"应该怎么修改吗?

解决方案 »

  1.   

    {数据库名].[dbo].[user]--说明:user 要加上[]
      

  2.   

    对于系统保留字和表名中有特殊字符的表,引用时需要使用[]。user是系统保留字。如表名,[work doc],引用时必须加上[],因为中间有空格。
      

  3.   

    楼主的意思好像是连接到数据库是正常的,但执行SQL语句时出错提示对象名错误吧?
    如果是这样,是不是user这个表不是登录用户创建的呢?
      

  4.   

    假设这些表的所有者是abc
    连接到数据库的登录名必须是abc才能使用这些表?
    需要创建一个登录名?
    这个数据库的"用户"里有abc这个用户,但是删除不了,一删除就提示“因为选定的用户拥有对象,所以无法除去该用户”而在数据库的“安全性”的“登录”中却创建abc这个登录名出错,提示用户已存在,虽然这里也出现了abc这个登录名,但是用这个登录名连接数据库还是提示:错误类型:
    Microsoft OLE DB Provider for SQL Server (0x80040E37)
    对象名 'user' 无效。
    PS:这里的这个user只是其中一个例子,所以的表都不行
      

  5.   

    在企业管理器中赋予当前登录用户db_owner角色就能访问其他用户创建的表了.
    方法:点击目标数据库的<用户>,右键点击当前登录用户名,在数据库角色成员中选中db_owner.