【发布时间】:2016-07-06 13:20:20
【问题描述】:
我是 MS Access 的新手。我不知道是否可以创建一个文本框,用户在其中插入一个字符串(名称),然后该字符串将在如下所示的 sql 语句中自动传递,以便检索数据并将其显示在某些文本框中。
select field from myTable
where userName = @combobox.name
有两个挑战:
- 如何在 sql 查询中传递用户在文本框中输入的值?
- 如果数据库中只有一行用户,则每个文本框都应填充来自查询的信息(假设第一点有解决方案)。但是如果一个用户有多行呢?怎么能显示这个?
我正在尝试走这条路,因为我需要避免使用子表单,并且我希望有一个主表单,其中有一个文本框供用户插入名称,然后是几个文本框,每个文本框都带有他们自己的 sql 语句(因为我需要不同的过滤器),并且如果用户有多个记录,他们能够扩展或以某种方式显示多行。
是否可以在访问表单中执行此操作?如果是,任何帮助将不胜感激。谢谢
【问题讨论】:
-
@granadaCoder 阅读,谢谢。我想要实现的是在本地使用,应该没问题。现在我需要弄清楚它是否可能以及如何
-
@CM2K 不要太在意忽略 sql 注入。即使只有您自己以外的任何人都不会使用此应用程序,您也应该将此作为学习如何预防它的绝佳机会。一旦您学会了如何使用正确的参数化查询,这将变得非常简单,并且您将获得更好的应用程序。
-
如果您像这样在查询中引用组合...
WHERE userName = Forms!YourForm!combobox...它是一个参数,因此没有 SQL 注入的风险。 -
首先,
SELECT查询是否返回您想要的数据?如果是这样,当您将该查询用作列表框行源,切换到表单视图,在组合中选择一个值,然后按F5时会发生什么?
标签: sql sql-server forms ms-access textbox