MS Access的轻量级用户,因此无论如何都不是高级用户。
好的,先解释一下我想要的东西。
我有两个表,一个用户名XXX99999
(3 Alpha 5数字),另一个只有99999
(5个数字)。
他们是同一个人,在大多数情况下,我可以放心地删除前3个字母并执行我需要使用最后5个数字数字“链接”。
我想通过查询来做这件事。
我的问题是,我如何屏蔽它来构建我的查询。
所有5个数字都是唯一的。
答案 0 :(得分:0)
如果你在@paxdiablo这里(VBA: How to Find Numbers from String)接受这个功能,那是
Public Function onlyDigits(s As String) As String
' Variables needed (remember to use "option explicit"). '
Dim retval As String ' This is the return string. '
Dim i As Integer ' Counter for character position. '
' Initialise return string to empty '
retval = ""
' For every character in input string, copy digits to '
' return string. '
For i = 1 To Len(s)
If Mid(s, i, 1) >= "0" And Mid(s, i, 1) <= "9" Then
retval = retval + Mid(s, i, 1)
End If
Next
' Then return the return string. '
onlyDigits = retval
End Function
将其粘贴到模块并保存,您应该能够在这样的查询中链接两个表(假设Table1具有唯一的数字字段而Table2具有字母和数字):
SELECT Table1.MyField1, Table2.MyField2
FROM Table1 INNER JOIN Table2
ON CStr(Table1.OnlyNumbersField) = onlyDigits(Table2.TextAndNumberField);
这将删除幕后的字母字符,确保两种数据类型相同,然后“链接”它们以在查询中生成连接结果。我知道你说你不是一个超级用户,这对你来说可能很复杂,但没有“简单”的方法来做到这一点。我可以通过多个查询来引导您完成这些操作,这可能对您更有意义,但需要解释的更多。