我有一个包含两个表的Access文件:用户和产品。用户保留了谁可以写入Access文件的列表(如userID,systemID,name之类的字段)。产品保留产品属性的列表,包括谁对记录进行了最后更新。最后一个更新字段是一个具有两列的组合框:userID(绑定到此列),名称(由于列宽为0“; 2”而显示此列)。
我还有一个名为模拟器的Excel文件。模拟器使用VBA读取产品表,使用各种预测算法来模拟产品的未来,然后将预测写回到Access。
当Excel写回产品记录时,我想记录最后一个更新作者为模拟器。假设该用户存在(userID = 100,name = Simulator,例如),我该怎么做?
我目前有
' Open Access database, get products table, get product record
connection.Open ...
products.Open "Products", connection, ...
products.Filter = "ProductID = " & productNumber
' Update record
products("LastUpdateAuthor") = "100; Simulator"
products.Update
products.Close
这会将“ 100; Simulator”写入正确的字段。如何识别绑定列100和模拟器是第二列?
答案 0 :(得分:1)
仅应将UserID保存到LastUpdateAuthor字段中。然后,多列组合框RowSource应该是Users表的SQL语句,以便检索和查看相关的UserName。因此,在用户ID为100的用户中有一条记录,并命名为Simulator,然后仍然只保存用户ID。
只要RowSourceType是“表/查询”,它就会从LastUpdateAuthor字段中将100; Simulator
值视为单个字符串。可以将组合框RowSourceType设置为ValueList,然后使用操作记录集和Add方法的代码将LastUpdateAuthor数据加载到RowSource,并且分号将被识别为列分隔符。但是,如果您按照第一段所述进行操作,则没有必要。