Ms access MS Access-基于另一个表的值更新一个表的特定值(特定于字段长度)

Ms access MS Access-基于另一个表的值更新一个表的特定值(特定于字段长度),ms-access,Ms Access,一个表具有带有示例值的地址字段: 123 Main Street Professional Center 456 Avenue Of Americas Financial Square 678 Great Northern Boulevard University Centre 这些值超过一定数量的字符(在本例中,字段长度为30) 我有另一个表,其中有数值及其USPS批准的首字母缩写: Field1 Acronym Street St Boulevard Blvd Square

一个表具有带有示例值的地址字段:

123 Main Street Professional Center
456 Avenue Of Americas Financial Square
678 Great Northern Boulevard University Centre
这些值超过一定数量的字符(在本例中,字段长度为30)

我有另一个表,其中有数值及其USPS批准的首字母缩写:

Field1    Acronym
Street    St
Boulevard Blvd
Square    Sq
我希望能够根据第二个表中字段1中的匹配值,使用第二个表中的首字母缩略词更新第一个表中的street列


可能吗?非常感谢替代解决方案。

一种可能的解决方案是为首字母缩略词表中的每个记录创建。然后,替换匹配值

Public Sub UpdateTable()
Dim rs  As Recordset
Dim sql As String
    Set rs = CurrentDb.OpenRecordset("acronyms")
    Do Until rs.EOF
        sql = "UPDATE addresses SET address = Replace([address], '" & rs!Field1 & "', '" & rs!Acronym & "') WHERE address like '*" & rs!Field1 & "*'"
        CurrentDb.Execute sql
        rs.MoveNext
    Loop
    rs.Clone
End Sub

注意:根据ms access版本的不同,like表达式应带有*或%

正确答案。但是,通配符之间的差异不是Access版本的函数,而是取决于执行查询的位置。从Microsoft Access应用程序本身运行的查询使用
*
作为“零或多个字符”的通配符,而从外部应用程序运行的查询(通过ADO、OLEDB等连接)使用
%
作为通配符。对于不同版本的Access,我引用mdb/adp文件。从Access 2003开始,项目文件(adp)使用%通配符,而普通Access数据库是一个选项,您可以在选项->表/查询->SQL语法中设置