原来运行正常的程序 access+asp ,后来把数据库导入 SQL 可是遇到了一些莫名其妙的问题。其中有一个提示是这样的:
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E37)
[Microsoft][ODBC Microsoft Access Driver] Microsoft Jet 数据库引擎找不到输入表或查询 'User_Levels'。 确定它是否存在,以及它的名称的拼写是否正确。
/Check.asp, 第 28 行
浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2) 网页代码如下:
<%
Dim adu,adp,adl,chk_id
Dim mlev,lev1,lev2,lev3,lev4,lev5,lev6,lev7
Dim chk
If Session("ManageName")="" or Session("ManagePwd")="" or Session("ManageLevel")="" Then
response.write("<script language='javascript'>alert('登陆信息过期!请重新登陆!');self.close();</script>")
response.end
Else
adu = Replace(Session("ManageName"),"'","")
adp = Replace(Session("ManagePwd"),"'","")
adl = Replace(Session("ManageLevel"),"'","")   Set chk = Conn.execute("Select ID From [HQ_User] Where User_Name='"&adu&"' and PassWord='"&adp&"' and Levels='"&adl&"'")
If chk.Eof and chk.Bof Then
response.write("<script language='javascript'>alert('登陆信息过期!请重新登陆!');self.close();</script>")
response.end
Else
chk_id = chk(0)
End if
chk.Close
Set chk=Nothing
session("erpqx") = Manage_Level(adl)
End ifFunction Manage_Level(LevelStr) 
Set mlev = Conn.Execute("Select Admin,CaiWuYuan,ManJinLi,CaiGouJinLi,CaiGouYuan,KuGuan,Manage,HrManage,ScManage,RpManage From [User_Levels]")
if not mlev.eof then
lev1 = mlev(0)
lev2 = mlev(1)
lev3 = mlev(2)
lev4 = mlev(3)
lev5 = mlev(4)
lev6 = mlev(5)
lev7 = mlev(6)
lev8 = mlev(7)
lev9 = mlev(8)
lev10 = mlev(9)
end if
mlev.Close
Set mlev=Nothing
If LevelStr = lev1 Then
   Manage_Level = "管理员"
Else
  If LevelStr = lev2 Then
     Manage_Level = "财务员"
  Else
    If LevelStr = lev3 Then
       Manage_Level = "销售经理"
    Else
      If LevelStr = lev4 Then
         Manage_Level = "采购经理"
      Else
        If LevelStr = lev5 Then
           Manage_Level = "采购员"
        Else
          If LevelStr = lev6 Then
             Manage_Level = "库管"
          Else 
            If LevelStr = lev7 Then
               Manage_Level = "业务员"
          Else 
            If LevelStr = lev8 Then
               Manage_Level = "人事员"
          Else 
            If LevelStr = lev9 Then
               Manage_Level = "生产管理"
          Else 
            If LevelStr = lev10 Then
               Manage_Level = "报表管理"
            End if
            End if
            End if
            End if
          End if
        End if
      End if
    End if
  End if
End if 
End Function
%>注明:第28行为: 
Set mlev = Conn.Execute("Select Admin,CaiWuYuan,ManJinLi,CaiGouJinLi,CaiGouYuan,KuGuan,Manage,HrManage,ScManage,RpManage From [User_Levels]")可是明明表格是存在的。而且在access中运行是正常的,迫切盼望解决的办法,谢谢~!!!

解决方案 »

  1.   

    Microsoft Jet 数据库引擎问题另参考:http://tieba.baidu.com/f?kz=14117270
      

  2.   

    谢谢大家的帮助~!!!
    数据库是可以连接的 部分asp+sql 程序可以正常运行。不知道还需要什么相应的权限?数据库连接方式如下:Response.Buffer = True
    Dim Conn
    Dim ConnStrset conn=server.createobject("adodb.connection") 
    connstr="driver=sql server;server=127.0.0.1;database=dzqfsl;uid=sa;pwd=123456" 
    conn.open connstr If Err Then
    err.Clear
    Set Conn = Nothing
    Response.Write " Error......"
    Response.End
    End If问题还没有解决,继续期待中
      

  3.   


    There must be somewhere in your code that is still using Access database rather than SQL Server. The error message clearly states that the error relates to Microsoft Jet engine rather than SQL Server.BTW, your ASP code is very prone to SQL Server injection. You are dynamically constructing a SQL statement and issuing to the server. Assume the variable Session("ManageName") contains the string "1=1; delete from [level]". Think about how this is going to affect your database and application in general.
      

  4.   

    谢谢大家的帮助~!!!
    英文看得不是很懂,好像和 User_Levels 这样的表名字 没关系。改了一下表名,问题依旧。
    继续期待中。
      

  5.   

    1.确认是否存在权限问题(如在dbo的架构下导入,用另一个无权限的架构名来访问,或者访问的时候没有加上架构名)
    2.再次确认表是否在数据中存在,用SA登录,查询:select * from sysobjects where name ='架构名.你的表名' and xtype='u',如果查询不到,把表名换全角状态下的再执行一次,如果没有返回记录,说明没有存在这个表。
      

  6.   

    谢谢大家的帮助。感激不尽~!!我建立一个最简单的文件 运行正常,代码如下
    <html>
    <head>
    <title>管理中心</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <LINK href="Image/style.css" type=text/css rel=stylesheet>
    <script language="JavaScript" src="Image/js.js"></SCRIPT>
    </head>
    <body text="#000000"><%
    set conn=server.createobject("adodb.connection") 
    connstr="driver=sql server;server=127.0.0.1;database=dzqfsl;uid=sa;pwd=123456" 
    conn.open connstr 
    %>
    <%'

    set rs=server.CreateObject("adodb.recordset")
    sql="select * from User_Levels"

                rs.open sql,conn,1,1


       if rs.eof And rs.bof then
            Response.Write "<p align='center' class='contents'> 对不起,没有找到相关信息!</p>"
       
           end if       %><%=rs("admin")%><%
    rs.close
    set rs=nothing
    %>
    </html>期待解决中~!!!