如何根据用户使用 VBA 在窗体上选择的内容从表中选择特定字段

How to select a specific field from a table based on what a user selects on a form using VBA

提问人:user9231485 提问时间:8/29/2023 最后编辑:talleruser9231485 更新时间:8/31/2023 访问量:76

问:

我以前从未这样做过,而是我寻找答案,但我无法找到我想要的东西。我会尽量简短,所以请原谅我。我有一个表,我想从中提取数据并插入到一个临时表中以供以后使用。该表如下所示

学生,年级,学校,第1天,第10天,第20天,第30天,第40天,第50天。这一直持续到 180 天......

日期字段为“是/否”字段。我想做的是查询特定的日期字段并查找 true 并将结果插入临时表中。我设置了一个表单,我选择日期,我对每个选择使用CASE语句,并为表单上选择的每个“日”运行一个唯一的插入查询,(18个查询),但我想做的是以某种方式摆脱它,并从我的表单中获取“日”选择,并使用它创建一个sql插入查询,该查询说类似于查看“日”字段值 true 的形式。当我更改日期选择时,查询会动态更新,这样,当有更改时,我不必更改 18 个不同的 sql 语句。我一直在数据库中的多个应用程序中使用这种技术。因此,该语句不是 18 个不同的语句,而是根据表单上的选择创建。
好吧,所以我听起来像个白痴,但我花了一整天的时间寻找解决方案,所以我放弃了,这对于真正的程序员来说肯定不是那么难。因此,感谢您的任何帮助。下面是我从网络上得到的代码,并且一直在弗兰肯斯坦供我使用,它不完整,它给出了一个参数太少的错误,我无法弄清楚为什么会发生这种情况,除了整个事情都是错误的。好吧,如果有人能帮忙,那就太好了。

Sub RB_AOI()

Dim dy 
'Run day from form 
dy = "[Forms]![RB_Main]![RunDay].value" 
Dim db As DAO.Database 
Dim qdf As DAO.QueryDef 
Dim rst As DAO.Recordset

Set db = CurrentDb

'This is not my code I know it is not an insert query but I was only testing at this point to see if it would do anything.

Set qdf = db.CreateQueryDef("", "PARAMETERS dy LONG; " & _
    "SELECT * FROM [historical_enrollment_master] WHERE columname = dy")
'Column names match the Run Day from the form

'I believe this is where the criteria for the named field belongs.... 

With qdf 
  .Parameters("dy") = True 
  Set rst = .OpenRecordset
End With

With rst
    MsgBox .Fields("Dy")
    .Close
End With

qdf.Close
End Sub
SQL VBA MS-ACCESS-2010 查询字符串

评论

0赞 user9231485 8/29/2023
它把我的代码砍掉了。
0赞 Community 8/29/2023
请澄清您的具体问题或提供其他详细信息,以准确说明您的需求。正如目前所写的那样,很难确切地说出你在问什么。
2赞 Gustav 8/29/2023
桌子看起来像这样......由此可以看出,您需要研究表架构的规范化
0赞 Mathias Z 8/29/2023
嗨,检查我的个人资料并给我发邮件。我们可以通过缩放来查看它。之后,我们将在此处发布您的问题。要做到这一点还有很多工作要做,所以与其写一篇关于如何解决上述问题的完整文章,不如给我发一封邮件,让它发挥作用。

答: 暂无答案