小弟有一段程序出了问题,请高手指点
dim cnn as adodb.connetion
dim rst as adodb.recordset
dim SqlCmd as string
''''连接数据库
SqlCmd="select count(*) as total from Msysobjects where name='表名'"
rst.open SqlCmd,cnn……
if rst("total")=0 then
    ''创建表
end if
执行的时候出现错误,错误信息是 不能从Msysobjects 中读取数据
怎么解决

解决方案 »

  1.   

    SELECT MSysObjects.Name FROM MsysObjects WHERE (Left([Name],1)<>"~") AND (Left$([Name],4) <> "Msys") AND (MSysObjects.Type)=1 and MSysObjects.Name='表名' ORDER BY MSysObjects.Name;
      

  2.   

    '判断数据库中某一表是否存在,存在为真,否则为假
        Public Function IsTableExists(tblName As String) As Boolean
        Dim rs1 As ADODB.Recordset
        Set rs1 = New ADODB.Recordset
        Set rs1 = Conn.OpenSchema(adSchemaTables)
        rs1.Find "TABLE_NAME='" & tblName & "'"
        If rs1.EOF Then   '表不存在
            IsTableExists = False
        Else    '表存在
            IsTableExists = True
        End If
        rs1.CloseEnd Function
      

  3.   

    sql server2000裡if exists(select * from sysobjects where name='表名')
        print '存在'
    else
        print '不存在'
      

  4.   

    dim cnn as new  adodb.connetion
    dim rst as new adodb.recordset
    dim SqlCmd as string
    ''''连接数据库
    SqlCmd="select count(*) as total from Msysobjects where name='表名'"
    rst.open SqlCmd,cnn……if rst.recordcout=0 then
        ''创建表
    end if
      

  5.   

    Private objConn As New ADODB.Connection
    Private objADO As New ADOX.Catalog
    Private objTab As New ADOX.Table
    Private rectemp As New ADODB.Recordset'表清单
    objConn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=XXXXXXX;Data Source=XXXXXXX;"objADO.ActiveConnection = objConn
    For Each objTab In objADO.Tables
        '列出数据库中所有表的清单
    Next
      

  6.   

    to yongming 我觉得你说的不太对,即使rst.recordcount等于零,也可能不可以读,何况rst.recordcount 始终等于1
      

  7.   

    hanshuhe (小河) 的方法也可以,但是我记得那涨表好像是SYSOBJECTS吧。如果还不能访问那是你的权限不够。用SA 连接应该可以。