Variables 创建变量或方法以多种形式使用值
对VBA来说相当陌生。我在Access中的表单上有一个列表框,其中填充了表中的数据。从列表框中选择一个值会给出一个ID,然后用于执行查询。我需要这个ID可以在另一个表单中使用,以便根据该值执行查询。实现这一目标的最佳方式是什么Variables 创建变量或方法以多种形式使用值,variables,ms-access,vba,global-variables,Variables,Ms Access,Vba,Global Variables,对VBA来说相当陌生。我在Access中的表单上有一个列表框,其中填充了表中的数据。从列表框中选择一个值会给出一个ID,然后用于执行查询。我需要这个ID可以在另一个表单中使用,以便根据该值执行查询。实现这一目标的最佳方式是什么 `Dim IDValue As String IDValue = Me.lstBoxCompanyName.Value CompDetailSQL = "SELECT * FROM Companies WHERE Companies.CompanyID = " &
`Dim IDValue As String
IDValue = Me.lstBoxCompanyName.Value
CompDetailSQL = "SELECT * FROM Companies WHERE Companies.CompanyID = " & IDValue`
在模块中
Dim IDValue AS Integer
Sub setIDValue(id As Integer)
IDValue = id
End Sub
Function getIDValue() As Integer
getIDValue = IDValue
End Function
然后从您的任何代码
'This will set you ID
setIDValue YOUR_VALUE
'This will retrieve the value
getIDValue
'so your code could be
setIDValue Me.Me.lstBoxCompanyName.Value
CompDetailSQL = "SELECT * FROM Companies WHERE Companies.CompanyID = " & getIDValue
显然,在没有设置IDValue的情况下,这可能会使用一些错误处理。此外,我还使用了integer,尽管我看到您使用的是字符串。数据类型应与CompanyID的类型相同,因此如果需要,您可以将integer更改为字符串,但您还必须将查询更改为SELECT*FROM companys.CompanyID='“&getIDValue&”“
,因为您的查询当前暗示了一个数字。在模块中
Dim IDValue AS Integer
Sub setIDValue(id As Integer)
IDValue = id
End Sub
Function getIDValue() As Integer
getIDValue = IDValue
End Function
然后从您的任何代码
'This will set you ID
setIDValue YOUR_VALUE
'This will retrieve the value
getIDValue
'so your code could be
setIDValue Me.Me.lstBoxCompanyName.Value
CompDetailSQL = "SELECT * FROM Companies WHERE Companies.CompanyID = " & getIDValue
显然,在没有设置IDValue的情况下,这可能会使用一些错误处理。此外,我还使用了integer,尽管我看到您使用的是字符串。数据类型应与CompanyID的类型相同,因此如果需要,您可以将integer更改为字符串,但您还必须将查询更改为
SELECT*FROM companys.CompanyID='“&getIDValue&”“
,因为您的查询当前包含一个数字。您可以通过指定完整路径来访问其他窗体控件。例如:
Forms!MyFormsName!MyControlsName.Value
及
因此,如果要访问VBA中包含在另一个表单中的值,并将其用作查询的一部分,则如下所示:
CompDetailSQL = "SELECT * " & _
"FROM Companies " & _
"WHERE CompanyID = " & Forms!frmCustomer!lstBoxCompanyName.Value
通过指定完整路径,可以访问其他窗体控件。例如:
Forms!MyFormsName!MyControlsName.Value
及
因此,如果要访问VBA中包含在另一个表单中的值,并将其用作查询的一部分,则如下所示:
CompDetailSQL = "SELECT * " & _
"FROM Companies " & _
"WHERE CompanyID = " & Forms!frmCustomer!lstBoxCompanyName.Value
在ms Access中,您也可以简单地使用form_NAMEofFORM.NAMEofCONTROL 您可以参考的示例
dim myAmount as double
myAmount = form_receipt.total
要访问表单收据文本框总计上显示的值。在ms access中,您也可以简单地使用表单_NAMEofFORM.NAMEofCONTROL 您可以参考的示例
dim myAmount as double
myAmount = form_receipt.total
访问表单收据文本框上显示的值总计。
Dim IDValue As String
将其更改为Public IDValue As String
,并将其放置在模块中。您只需将ID添加到查询输出中,然后继续引用查询结果即可。或者(我不推荐下一种方法),您可以通过在标准模块顶部而不是在任何子例程中声明公共(全局)变量来创建公共(全局)变量:public IDValue As String
。然后,您可以像通常一样为公共变量分配一个值,但它将可供所有表单使用。Dim IDValue As String
将其更改为public IDValue As String
并将其放置在模块中。您只需将ID添加到查询输出中,然后继续引用查询结果即可。或者(我不推荐下一种方法),您可以通过在标准模块顶部而不是在任何子例程中声明公共(全局)变量来创建公共(全局)变量:public IDValue As String
。然后你会像平常一样给公共变量赋值,但是所有表单都可以使用它!谢谢你的款待!谢谢