2010-10-20 22 views
1

的改写问:传递参数从接入到SQL服务器

我不够明确道歉。我有一个文本框和一个按钮的窗体。当按钮被点击时,它运行这个保存的访问查询:

select * from sqlservertable where field=form!textbox.value 

我有一个访问前端和sql server后端。

此查询不起作用。它不喜欢我传递这个参数form!textbox.text。有没有其他方法来传递文本框的值?

+0

您想将它作为访问变量或SQL @variable传递? – JNK 2010-10-20 20:45:12

+0

@JNK,我只想将文本框中的文本传入sql语句 – 2010-10-20 20:46:12

+0

您能否改述您的问题?我不明白你的问题。 – 2010-10-20 20:46:15

回答

2

访问控制的。文本属性仅什么控件具有焦点。

其次,在Access中,您将窗体称为Forms集合的成员,即开放窗体的集合。

所以,你使用:

Forms!FormName!ControlName 

不指定Forms集合为形式的容器对象,访问表达式服务将不知道在哪里可以找到控制。

而作为.value的是控件的默认属性,你并不需要指定它,但如果你想成为真正挑剔的,明确的和在这方面没有实际的好处键入更多的字符,你可以使用:

Forms!FormName!ControlName.Value 

但是,这不会在所有在此背景下不同的行为的任何(在那里将是,如果你试图迫使控制的评价将它作为一个subrountine的参数面前的唯一情况,哪种情况下没有.Value你最终可能会传递一个控件引用而不是值,这可能很糟糕,或者可能没事)。

+0

中设置记录源后,非常感谢您的帮助。我错误地表达了我的问题,说我传递了TEXT属性,实际上我确实通过了VALUE属性,但它并不工作 – 2010-10-21 15:43:53

+0

但是您没有使用Forms集合。 – 2010-10-22 00:07:06

1

你有没有试着用设置表格(代码)的记录源属性:

Form.RecordSource = "SELECT ... FROM ... WHERE [Occurrence Date] BETWEEN " & Text1 & " AND " & Text2 
+0

感谢您的回答。我重申了我的问题。请让我知道,如果我可以澄清任何其他 – 2010-10-20 20:53:43

+0

Try Me!Textbox instead of form!textbox.text – 2010-10-20 20:59:08

+0

另外,如果你是通过代码做到这一点,我认为你需要做一个Me.Requery – 2010-10-20 21:00:48

相关问题