提问人:user9231485 提问时间:8/29/2023 最后编辑:talleruser9231485 更新时间:8/31/2023 访问量:76
如何根据用户使用 VBA 在窗体上选择的内容从表中选择特定字段
How to select a specific field from a table based on what a user selects on a form using VBA
问:
我以前从未这样做过,而是我寻找答案,但我无法找到我想要的东西。我会尽量简短,所以请原谅我。我有一个表,我想从中提取数据并插入到一个临时表中以供以后使用。该表如下所示
学生,年级,学校,第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
答: 暂无答案
评论