SELECT  
    Portal_Roles.RoleName,
    Portal_Roles.RoleIDFROM Portal_UserRoles
  INNER JOIN 
    Portal_Users ON Portal_UserRoles.UserID = Portal_Users.UserID
  INNER JOIN 
    Portal_Roles ON Portal_UserRoles.RoleID = Portal_Roles.RoleIDWHERE   
    Portal_Users.Email = @Email

解决方案 »

  1.   

    简单的 sql 语句在 sql server 和 access 中大都是一样的,向你上面的语句有没什么统配符,应该相差不大,只是最后的 = @Email 不知在 access 行的通不,没试过,你可以试试!SELECT  
        Portal_Roles.RoleName,
        Portal_Roles.RoleIDFROM Portal_UserRoles
      INNER JOIN 
        Portal_Users ON Portal_UserRoles.UserID = Portal_Users.UserID
      INNER JOIN 
        Portal_Roles ON Portal_UserRoles.RoleID = Portal_Roles.RoleIDWHERE   
        Portal_Users.Email = [@Email]
    SELECT  
        Portal_Roles.RoleName,
        Portal_Roles.RoleIDFROM Portal_UserRoles
      INNER JOIN 
        Portal_Users ON Portal_UserRoles.UserID = Portal_Users.UserID
      INNER JOIN 
        Portal_Roles ON Portal_UserRoles.RoleID = Portal_Roles.RoleIDWHERE   
        Portal_Users.Email = '@Email'
      

  2.   

    你的@Email是程序传过来的参数还是sql语句的参数?如果是sql语句的参数是不行的 在accesss中上无法执行的。
      

  3.   

    @Email是SQL参数可以暂时不理。
      

  4.   

    说错了,Email是可以获得的。
      

  5.   

    Email是个可以获取的变量。上面这句话其实是asp.net portal starter kit里面的一个存储过程,存储过程名称是Portal_GetRolesByUser。
      

  6.   

    Access不支持存储过程啊..
    看来你的@Email要从程序中获取了..
      

  7.   

    不好意思,可能我解释得不好,没让让大家明白。这样写吧
    Dim Str as String ="SELECT Portal_Roles.RoleName,Portal_Roles.RoleID FROM Portal_UserRoles
     INNER JOIN Portal_Users ON Portal_UserRoles.UserID = Portal_Users.UserID INNER JOIN Portal_Roles ON Portal_UserRoles.RoleID = Portal_Roles.RoleID WHERE Portal_Users.Email ='" + Email +"'" 
    Dim Conn as new OleDbConnection(ConnStr)
    Dim Comm as new OleDbCommand(Str,Conn)
    ...
    ...
    关键是这样写执行编译的时候就会出错,原因是最上面那句话是SQL的语法,要怎么改才能通过。
        
      

  8.   

    WHERE Portal_Users.Email ='" + Email +"'" 
    vb的语法是不是+而是&
      

  9.   

    string Email=Email.Text.Trim();Portal_Users.Email ='" + Email +"'" 
      

  10.   

    如果直接写或出现错误 如下提示:语法错误 (操作符丢失) 在查询表达式 'Portal_UserRoles.UserID = Portal_Users.UserID INNER JOIN Portal_Roles ON Portal_UserRoles.RoleID = Portal_Roles.RoleID' 中。