Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 如何在ASP中循环每个记录集_Ms Access_Asp Classic - Fatal编程技术网

Ms access 如何在ASP中循环每个记录集

Ms access 如何在ASP中循环每个记录集,ms-access,asp-classic,Ms Access,Asp Classic,我需要关于循环的帮助,我正在尝试创建一个带有子菜单的菜单,在我的数据库中我有一个名为tblMenu的表,它有五个字段(链接位置,链接,链接名称,链接标题,子菜单) 链接位置字段用于对菜单项的位置进行排序 链接字段存储菜单项的链接 link_name保存菜单项的名称 link\u title保存菜单项的链接标题 子菜单存储菜单的子项(下拉菜单) 这里是tblMenu的预览 这是循环的代码 <ul> <% msql = "SELECT * FROM tblMenu ORDER B

我需要关于循环的帮助,我正在尝试创建一个带有子菜单的菜单,在我的数据库中我有一个名为tblMenu的表,它有五个字段(链接位置链接链接名称链接标题子菜单

链接位置字段用于对菜单项的位置进行排序

链接字段存储菜单项的链接

link_name保存菜单项的名称

link\u title保存菜单项的链接标题

子菜单存储菜单的子项(下拉菜单)

这里是tblMenu的预览

这是循环的代码

<ul>
<%
msql = "SELECT * FROM tblMenu ORDER BY [link_position] ASC"
Set RS = Server.CreateObject("ADODB.Recordset")
Set RSsub = Server.CreateObject("ADODB.Recordset")
RS.Open msql, Conn, 1,3
SET RSsub = Conn.execute ("SELECT * FROM tblMenu ORDER BY [link_position] ASC")

If Not RS.EOF Then
Do
Response.Write("<li><a href=""" & RS("link") & """ title =""" & RS("link_title") & """>" & RS("link_name") & "</a>" & vbcrlf)

            If Not RSsub.EOF Then
                Response.Write("<ul class=""sub-menu"">" & vbcrlf)
                Do While Not RSsub.EOF
                    Response.Write(RSsub("sub_menu") & vbcrlf)
                    RSsub.MoveNext()
                Loop
                Response.Write "</ul>" & vbcrlf
            End If
'                RSsub.Close

                Response.Write("</li>" & vbcrlf)
                RS.MoveNext()

        Loop Until RS.EOF
    End If          
%>
</ul>

    我不知道为什么要运行同一个查询两次。似乎您已经从第一个SQL中获得了所需的所有信息。如果我理解您的问题,请更正此代码,它会更简单、更快

    <%
    msql = "SELECT link_position, link, link_name, link_title, IIF(IsNull(sub_menu),'',sub_menu) as sub_menu FROM tblMenu ORDER BY [link_position] ASC"
    Set RS = Server.CreateObject("ADODB.Recordset")
    RS.Open msql, Conn, 1,3
    
    If Not RS.EOF Then
        response.write "<ul>"
        Do
            Response.Write("<li><a href='" & RS("link") & "' title ='" & RS("link_title") & "'>" & RS("link_name") & "</a>" & vbcrlf)
    
            If Not trim(RS("sub_menu")) = "" Then
                Response.Write("<ul class='sub-menu'>" & vbcrlf)
                Response.Write(RS("sub_menu") & vbcrlf)
                Response.Write "</ul>" & vbcrlf
            End If
            Response.Write("</li>" & vbcrlf)
            RS.MoveNext()
        Loop Until RS.EOF
        response.write "</ul>"
    End If          
    %>
    

    我不知道为什么要运行同一个查询两次。似乎您已经从第一个SQL中获得了所需的所有信息。如果我理解您的问题,请更正此代码,它会更简单、更快

    <%
    msql = "SELECT link_position, link, link_name, link_title, IIF(IsNull(sub_menu),'',sub_menu) as sub_menu FROM tblMenu ORDER BY [link_position] ASC"
    Set RS = Server.CreateObject("ADODB.Recordset")
    RS.Open msql, Conn, 1,3
    
    If Not RS.EOF Then
        response.write "<ul>"
        Do
            Response.Write("<li><a href='" & RS("link") & "' title ='" & RS("link_title") & "'>" & RS("link_name") & "</a>" & vbcrlf)
    
            If Not trim(RS("sub_menu")) = "" Then
                Response.Write("<ul class='sub-menu'>" & vbcrlf)
                Response.Write(RS("sub_menu") & vbcrlf)
                Response.Write "</ul>" & vbcrlf
            End If
            Response.Write("</li>" & vbcrlf)
            RS.MoveNext()
        Loop Until RS.EOF
        response.write "</ul>"
    End If          
    %>
    
    
    
    @SearchAndResQ遇到此错误
    Microsoft JET数据库引擎(0x80040E14)查询表达式“IsNull(子菜单)””中的函数使用的参数数目错误。
    MS Access
    IsNull
    与MSSQL不同。你必须同时使用
    iif
    isnull
    :iif(isnull(sub_菜单),'',sub_菜单)作为sub_菜单`@大卫,谢谢你的帮助,我是asp搜索的初学者,SQ就是见证人。谢谢你们,你们太棒了;)@SearchAndResQ遇到此错误
    Microsoft JET数据库引擎(0x80040E14)与查询表达式“IsNull(子菜单)””中的函数一起使用的参数数目错误。
    MS Access
    IsNull
    与MSSQL不同。你必须同时使用
    iif
    isnull
    :iif(isnull(sub_菜单),'',sub_菜单)作为sub_菜单`@大卫,谢谢你的帮助,我是asp搜索的初学者,SQ就是见证人。谢谢你们,你们太棒了;)
    <%
    msql = "SELECT link_position, link, link_name, link_title, IIF(IsNull(sub_menu),'',sub_menu) as sub_menu FROM tblMenu ORDER BY [link_position] ASC"
    Set RS = Server.CreateObject("ADODB.Recordset")
    RS.Open msql, Conn, 1,3
    
    If Not RS.EOF Then
        response.write "<ul>"
        Do
            Response.Write("<li><a href='" & RS("link") & "' title ='" & RS("link_title") & "'>" & RS("link_name") & "</a>" & vbcrlf)
    
            If Not trim(RS("sub_menu")) = "" Then
                Response.Write("<ul class='sub-menu'>" & vbcrlf)
                Response.Write(RS("sub_menu") & vbcrlf)
                Response.Write "</ul>" & vbcrlf
            End If
            Response.Write("</li>" & vbcrlf)
            RS.MoveNext()
        Loop Until RS.EOF
        response.write "</ul>"
    End If          
    %>