我有一个表单可以帮助用户向数据库中添加一些数据,但是我注意到添加的每个产品上的一些字段非常相似。因此,我添加了第二个常用字段数据库,可以通过从组合框中选择来预填这些字段。
例如,如果用户要添加产品XX-X,但产品XX-X是YY-Y的同一系列,并且我在Database2中已经有YY-Y的数据,我只想加载这些参数。我做了一个查询,返回想要的参数,但是我不知道如何将其添加到FORM。
基本上,我有一个空白的VBA代码槽,用于“ ComboBox_Change”。
我希望ComboBox_Change函数从查询中加载字段X并将其粘贴到当前表单的字段X1中。
希望我能正确地解释自己。
谢谢!
谢谢您的建议这是到目前为止有错误的代码
Private Sub LoadMatCB_Change()
Dim rs As Recordset
Dim db As Database
Set db = CurrentDb
Set rs = CurrentDb.OpenRecordset("VendorDeetsQuery")
If Nz(Me.Input_Vendor.Value, "") = "" Then Me.Input_Vendor.Value = rs![Origin]
Set rs = Nothing
Set db = Nothing
End Sub
答案 0 :(得分:2)
您将需要使用表的ID字段来将查询中的相关记录捕获到记录集对象中。然后,您可以使用记录集的字段在要填充的其他每个字段中设置值。您可以添加if语句来检查控件是否为空(如果您需要的话)。
Dim rs As Recordset
Dim db as Database
Dim qry as QueryDef
Set db = CurrentDb
Set qry = db.QueryDefs("YourQueryName")
qry.Parameters("ParamName") = comboBox.Value '<pass your parameter here>
'repeat the above for any other parameters you need to pass
Set rs = qry.OpenRecordset
'for each of these, use your control names and whatever you named the fields from your query'
If Nz(Me.txtBox1.Value, "") = "" Then Me.txtBox1 = rs![fieldName1]
If Nz(Me.txtBox2.Value, "") = "" Then Me.txtBox2 = rs![fieldName2]
...
...
If Nz(Me.txtBoxN.Value, "") = "" Then Me.txtBoxN = rs![fieldNameN]
Set rs = Nothing
Set qry = Nothing
Set db = Nothing