【问题标题】:Search for a String in an Access Table在访问表中搜索字符串
【发布时间】:2020-07-13 21:10:11
【问题描述】:

表名称:MissingT 字段名称:“案例信息” 在每一行中查找的字符串:“WEBID:”

在“案例信息”字段下的此表中,我想在每一行中找到单词“WEBID:”并获取其后面的下一个 4 个字母。

那4个字母应该写在另一个字段“WebId”中

我必须为每一行执行此操作,直到 EOF。

谢谢。

【问题讨论】:

  • 您是否尝试过使用查询设计界面使用“Like”搜索该字符串?然后你可以扩展它以获得你的答案。
  • 每一行在“案例信息”字段中都有单词“WEBID:”。但是“WEBID:”后面的 4 个字母在每一行都会有所不同。我只想捕获这 4 个字母并在同一行上更新“WEBID”字段。
  • 您是否尝试过使用查询设计界面使用“Like”搜索该字符串?一旦你找到了行,剩下的就可以完成了。

标签: ms-access vba


【解决方案1】:

试试下面的方法。你真的是指“下一个 4 个字母”还是“下一个 4 个字符”?如果要测试,只需将查询更改为选择查询,并将“Mid(....”作为查询中的列。

UPDATE MissingT 
SET MissingT.WebID = Mid([Case Information],(InStr(1,[Case Information],'webid:')+7),4)
WHERE (((MissingT.[Case Information]) Like '*webid:*'));

【讨论】:

  • 通常情况下,案例信息的内容类似于“[WBID:J4XF] 创建帐户”。我只想获取 J4XF 并用它更新 WEBID 字段。我在查询更新中尝试了您的 sql 脚本,但没有更新任何记录。
  • 由于您从未提及确切的格式(空格、对齐方式等),因此很难做出假设。我假设在 'webid:" 之后有一个空格。如果没有空格,请将 +7 更改为 +6。
  • “Webid:”和它后面的 4 个文本之间没有空格。无论如何,我尝试了 +7 和 +6,但仍然没有更新任何记录。
  • 你知道如何创建一个 SELECT 查询来查找你想要的记录吗?我用各种组合(大写/小写,前导/尾随空格等)创建了测试数据,它工作得很好。请发布您创建的内容以查找匹配记录。如果找不到它们,则无法更新它们!
  • 圣牛!!!难怪你找不到匹配!如果您在原始问题中提供了准确的信息,我们现在就完成了。提示:是 'WEBID' 还是 'WBID'????? (您的示例 =“[WBID:J4XF] 创建帐户”)
【解决方案2】:

我在想一些事情

 UPDATE MissingT
 SET WebId = Mid$([Case Information], 7)
 WHERE Left$([Case Information], 7) = "WEBID:";

已经有一段时间了,但我似乎记得这些功能在查询中可用。

如果省略 Mid() 的第三个参数,它将从第二个 Arg 的位置返回所有,直到结束。

WHERE 也可以是:

  WHERE [Case Information] LIKE "WEBID:*"

我认为。

【讨论】:

  • 当我在查询更新中运行它时,我无法获取任何要更新的记录。它给出“您即将更新 0 行
  • 因为它应该是 'Left$([Case Information], 6)' 而不是 7。为什么不先作为选择查询运行看看它会是什么样子?
  • 这里也一样,我用这段代码尝试了 6 和 7,并更新了 0 条记录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-30
  • 1970-01-01
相关资源
最近更新 更多