Forms 如何使用表单根据在msgbox上输入的内容导航到特定查询?
所以我有一个带有表事务的Access数据库。 在表中有一个名为“按月份筛选的利润”的列 我已经做了一些查询来计算每月的总利润(例如6月、7月、8月) 那么,是否可以创建一个带有弹出消息框的表单,并通过在框中输入月号并单击,它将导致特定的查询Forms 如何使用表单根据在msgbox上输入的内容导航到特定查询?,forms,ms-access,navigation,vba,messagebox,Forms,Ms Access,Navigation,Vba,Messagebox,所以我有一个带有表事务的Access数据库。 在表中有一个名为“按月份筛选的利润”的列 我已经做了一些查询来计算每月的总利润(例如6月、7月、8月) 那么,是否可以创建一个带有弹出消息框的表单,并通过在框中输入月号并单击,它将导致特定的查询 我认为这是一个好主意,但我对ACCESS编程知之甚少,所以任何评论都是非常有价值的 您可以使用VBA的InputBox功能创建弹出窗口。如果数据库中已经存在查询,则可以使用该函数的结果来确定要打开的查询。例如: Public Sub OpenExisting
我认为这是一个好主意,但我对ACCESS编程知之甚少,所以任何评论都是非常有价值的 您可以使用VBA的
InputBox
功能创建弹出窗口。如果数据库中已经存在查询,则可以使用该函数的结果来确定要打开的查询。例如:
Public Sub OpenExistingQuery()
Dim intMonth As Integer
intMonth = InputBox("Please enter a month number:", "Enter Month Number")
DoCmd.OpenQuery "qryMonth" & intMonth, acViewNormal
End Sub
或者,您可以使用
InputBox
函数的结果动态构建查询,然后打开它:
Public Sub OpenDynamicQuery()
Const strQueryName As String = "qryDynamicMonth"
Dim db As DAO.Database: Set db = CurrentDb
Dim qdf As DAO.QueryDef
Dim intMonth As Integer
intMonth = InputBox("Please enter a month number:", "Enter Month Number")
On Error Resume Next
DoCmd.Close acQuery, strQueryName, acSaveNo
DoCmd.DeleteObject acQuery, strQueryName
On Error GoTo 0
Set qdf = db.CreateQueryDef(strQueryName)
qdf.SQL = "SELECT * FROM your_table_name WHERE your_monthnumber_column = " & intMonth
qdf.Close
DoCmd.OpenQuery strQueryName, acViewNormal
Set qdf = Nothing
Set db = Nothing
End Sub
请注意,上述功能属于“快速和肮脏”类型。他们真的需要更好的错误处理,用户输入的卫生,等等。但是希望你能得到这个想法,并且可以自己处理