将参数从访问传递到 sql-server
Posted
技术标签:
【中文标题】将参数从访问传递到 sql-server【英文标题】:passing parameter from access into sql-server 【发布时间】:2010-10-20 20:34:58 【问题描述】:改写问题:
我很抱歉不清楚。我有一个文本框和一个表单按钮。单击该按钮时,它会运行此保存的访问查询:
select * from sqlservertable where field=form!textbox.value
我有一个访问前端和一个 sql server 后端。
此查询无效。它不喜欢我传递这个参数form!textbox.text
。是否有其他方法可以传递文本框的值?
【问题讨论】:
您想将其作为访问变量还是作为 SQL @variable 传递? @JNK,我只想将文本框中的文本传递到 sql 语句中 您能重新表述一下您的问题吗?我不明白你的问题。 @everyone:这是正确的解决方案吗? blueclaw-db.com/accessquerysql/parameter_query.htm 当你说“运行这个保存的查询”是什么意思?按钮是否调用 DoCmd.OpenQuery?如果不是,则不清楚您的意思,因为 SELECT 查询除了显示数据外不执行任何操作(即,它们不执行任何操作)。 【参考方案1】:Access 控件的 .Text 属性仅适用于该控件具有焦点的内容。
其次,在 Access 中,您将表单称为 Forms 集合的成员,即打开表单的集合。
所以,你使用:
Forms!FormName!ControlName
如果不将 Forms 集合指定为表单的容器对象,Access 表达式服务将不知道在哪里可以找到控件。
由于 .Value 是控件的默认属性,因此您无需指定它,但如果您想真正挑剔和明确并在这种情况下键入更多字符而没有实际好处,您可以使用:
Forms!FormName!ControlName.Value
但是在这种情况下,这不会有任何不同(唯一的情况是,如果您试图在将控件作为子程序的参数传递之前强制对其进行评估,在这种情况下没有 .值你可能最终会传递一个控件引用而不是值,这可能是坏的,也可能是好的)。
【讨论】:
非常感谢您的帮助。我错误地表达了我的问题,说我正在传递 TEXT 属性,我实际上确实在传递 VALUE 属性并且它不起作用 但是您没有使用 Forms 集合。【参考方案2】:您是否尝试过在表单(来自代码)上设置 RecordSource 属性:
Form.RecordSource = "SELECT ... FROM ... WHERE [Occurrence Date] BETWEEN " & Text1 & " AND " & Text2
【讨论】:
感谢您的回答。我改写了我的问题。如果我能澄清其他任何事情,请告诉我 试试我!Textbox 代替 form!textbox.text 另外,如果您通过代码执行此操作,我认为您需要执行 Me.Requery 我会在什么时候进行重新查询?当数据处于访问状态时,它工作得非常好,而不是 sql-server以上是关于将参数从访问传递到 sql-server的主要内容,如果未能解决你的问题,请参考以下文章
传递 AJAX 参数并从应用程序的 expressjs 端访问它
如何访问和传递参数到 Android Instant App 的模块