[英]Using a 'lookup' table in MS-ACCESS for an update query
我有一个带有表[tblManipulate]的Access数据库,其中的以下四个字段填充了数据:
[tblManipulate].[Name]
[tblManipulate].[Description]
[tblManipulate].[Price]
[tblManipulate].[Account code]
我还有一个名为[tblDescLookup]的描述的150条目表,需要像查找表一样使用它来操纵帐户代码。 条目示例如下:
[tblDescLookup].[Description Lookup] [tblDescLookup].[Account Code Result]
*demonstration* 10000
*coding* 12000
*e-mail* 13000
最好的方法是获取[tblManipulate]中的每条记录,并对照[tblDescLookup]。[Description Lookup]检查[tblManipulate]。[Description]字段,如果“ like”匹配为,则将帐户代码结果分配到原始表中发现了什么?
在我看来,这似乎是Access并不是最佳的工具,但这是我被指示使用的实例之一。 我将不胜感激任何帮助或见解(或替代方案!)。 谢谢!
这样的事情应该为您做。
Dim Description As String
Dim lookupDescription As String
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset(SELECT * FROM tblManipulate)
If Not (rs.EOF And rs.BOF) Then
rs.MoveFirst 'good habit
Do Until rs.EOF = True
Description = rs("Description")
Dim rsLookUp As DAO.Recordset
Set rsLookUp = CurrentDb.OpenRecordset(SELECT * FROM tblDescLookup)
If Not (rsLookUp .EOF And rsLookUp .BOF) Then
rsLookUp .MoveFirst 'good habit
Do Until rsLookUp.EOF = True
lookupDescription = rsLookUp("Description Lookup")
If() Then 'match criteria
'assign value
End if
rsLookUp.MoveNext
Loop
Else
MsgBox "No records in the recordset."
End If
rs.MoveNext
Loop
Else
MsgBox "No records in the recordset."
End If
Oy公司。 您将需要在此处循环。 我将在一个记录集中打开tblDescLookup:
Set rec = CurrentDB.OpenRecordset ("Select * from tblDescLookup")
然后遍历每条记录并以这种方式运行查询:
Do While rec.EOF = False
Set rec2 = CurrentDB.OpenRecordset ("Select * from rec where Description like '" & rec("Description Lookup") & "'")
rec.MoveNext
Loop
或者,也许您需要使它成为Update语句? 我不能从头顶上写下来,但是你明白了。
你尝试过这样的事情吗?
Update tblManipulate as t1
Set [Account Code] = (Select [Account Code Result] from [tblDescLookup] where [Description Lookup] = t1.[Description])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.