代码之家  ›  专栏  ›  技术社区  ›  dmorgan20

从userform获取名称的SQL

  •  0
  • dmorgan20  · 技术社区  · 8 年前

    我在access中的SQL有点问题

    CurrentDb.Execute "INSERT INTO _tbl_Structure " & _
                "SELECT * " & _
                "FROM [MS Access;pwd=" & strPassword & ";database=" & DBpath & "\" & DBname & "].[" & tblStructure & "] " & _
                "WHERE [user] = '" & [Forms!frm_Advisors_Stats-manager].[Position]
    

    问题似乎与

    [表单!frm\u Advisors\u Stats-manager]。[位置]

    我做错了什么,有什么帮助吗?

    位置文本框显示登录人员是否为经理。如果他们是用户表单上所述的经理,则会提取经理在团队中的所有记录

    显示的错误为:

    未定义外部名称

    3 回复  |  直到 8 年前
        1
  •  1
  •   Gustav    8 年前

    或使用正确的括号:

    [Forms]![frm_Advisors_Stats-manager]![Position]
    
        2
  •  0
  •   Erik A    8 年前

    由于您使用的是字符串连接,因此对象符号必须对VBA有效。由于对象名包含连字符,因此需要使用forms集合正确地引用它,而不使用bang运算符。

    "WHERE [user] = '" & Forms("frm_Advisors_Stats-manager").Position.Value & "'"
    
        3
  •  0
  •   Justin    8 年前

    在我经常使用的窗体上引用控件的另一种方法是:

    Form_Advisors_Stats-manager.Position
    

    因此:

    CurrentDb.Execute "INSERT INTO _tbl_Structure " & _
            "SELECT * " & _
            "FROM [MS Access;pwd=" & strPassword & ";database=" & DBpath & "\" & DBname & "].[" & tblStructure & "] " & _
            "WHERE [user] = '" & Form_Advisors_Stats-manager.Position & "'"