MS Access:在表中搜索字符串的同一部分
我正在尝试循环表中的列值。 我有一个注册表,它根据用户的信息为用户提供唯一的ID。 例如: 国家=奥地利MS Access:在表中搜索字符串的同一部分,c,ms-access,vba,C,Ms Access,Vba,我正在尝试循环表中的列值。 我有一个注册表,它根据用户的信息为用户提供唯一的ID。 例如: 国家=奥地利 选择国家奥地利的每个用户都将获得该匹配的某种唯一值(比如00) 帐户ID如下所示: XXXX00UNIQUECODE 每个国家都有自己独特的价值:(AT=00、DE=01等) 现在,我想为每个用户生成一个唯一的代码,这将只是表中存储的前一个UC值的增量(+1)值,用于同一个国家 为了做到这一点,我需要以某种方式遍历存储帐户ID的列并搜索匹配项。 问题是,当用户试图生成唯一代码时,他还没有,
选择国家奥地利的每个用户都将获得该匹配的某种唯一值(比如00) 帐户ID如下所示:
XXXX00UNIQUECODE
每个国家都有自己独特的价值:(AT=00、DE=01等)
现在,我想为每个用户生成一个唯一的代码,这将只是表中存储的前一个UC值的增量(+1)值,用于同一个国家强>
为了做到这一点,我需要以某种方式遍历存储帐户ID的列并搜索匹配项。
问题是,当用户试图生成唯一代码时,他还没有,因此他只有:
XXXX00
现在我需要在AccountID列中找到所有XX00字符串,并将它们存储在一个数组中,然后找到这些字符串的最大值并将其递增
但是我不知道如何在表的列中搜索字符串的一部分?
只有XXXX00
部分,而不是整个帐户IDXXXX00UNIQUECODE
啊,我希望你能理解我。我知道这很复杂,但我真的被困在这里了。希望有人会明白我的意思,甚至可能找到更平滑的解决方案
提前谢谢 你在把一个方形的钉子敲入一个圆孔。为什么不创建一个名为UserID的新列,然后执行以下操作:
SELECT Max(UserID) FROM MyTable WHERE Mid(AccountID, 5, 2) = "00"
并将其增加1
更好的是,将CountryCode、UserID和XXXX部分存储在单独的字段中,并为它们编制索引。当您搜索或筛选时,它将节省时间,我假设您将要这样做。谢谢您的想法!我会试试的。