首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用backspace - CHR(8) - in访问查询

使用backspace - CHR(8) - in访问查询
EN

Stack Overflow用户
提问于 2020-04-09 16:26:07
回答 2查看 129关注 0票数 0

我有一个零件管理MS Access数据库。其中一个字段很少使用-它存储库存中的某个部分是否实际上是更常见部分的罕见变体。通常,该字段用作主部件号的后缀,数据库在报表中生成该后缀,同时将父部件存储在数据库中。(一个控制部件编号的主数据库不包含任何关于变体的信息,但是重要的是要存储,因为店面数据库是这样的。)

我发现在某些情况下,变体不是简单的后缀。在某些情况下,正确的变体部件号从父部件中删除了一个字符。例如,"3069b“有一个变体"3069bpb198”。但是我发现“30361 c”有一个变体"30361pb016“,它消除了"c”。

我更喜欢的解决方案是将一个反空间字符编码到字段中,用于那些需要它的变体。然后,当我将父部件号与变体号连接时,“30361 c”和“\bpb016 016”变成"30361pb016“。但是,我在Access查询中得到的输出是“30361c-pb 016”。

我尝试过的查询中的级联公式是:

代码语言:javascript
复制
PartNum: [pl].[PartID] & [variant]  'returns "30361c\bpb016"
PartNum: Replace([pl].[PartID] & [variant],"\b",Chr(8))

我想做的事有可能吗?如果是这样,我做错了什么?

我真的很想避免更改数据库,所以变体包含完整的部件编号,而不是后缀。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-09 19:58:20

好吧,您可能能够连接备份空间,但这将如何以及是否会影响数据的显示是一个巨大的不同问题。ctrl的使用可以追溯到绿色屏幕的时代,甚至是远程型的时代。换句话说,您想要一种可选的删除字符的方法,并将ctrl与现代GUI和不真正表示ASCII字符流的系统一起使用,这意味着问题不在于如何使ctrl工作以分割字符,而在于如何根据某种信息来分割字符。

换句话说,ctr是一种疯狂的方法,除非您使用ASCII绿色屏幕,或者说是打印机。

我也不会在该数据中引入不可打印的字符,因为您不能将该信息键入字段,更糟糕的是,您无法将该列作为数据进行搜索、排序和处理。

情况会变得更糟。您的业务规则是,一列中的“某些”数据将影响另一列的显示!这严重破坏了关系数据模型,甚至一点也不好笑。

您需要添加一个位列(true/false)。事实上,真正需要发生的是,第一列的选择需要考虑到第二列,并且应该在这里做出不同的选择。

25年前,当大多数计算机都是ASCII,使用绿色屏幕,输出到屏幕/终端,甚至是一台电传打字机时,这个技巧/想法可能会奏效吗?好吧,那ctrl就行了。

现代系统正在以图形格式显示数据,数据不再是真正的ASCII,而是以统一代码保存。(它允许在任何语言或区域中显示)。

现在,假设那些遭受严重脑损伤的人考虑以这种方式污染数据?

那么,您可以使用这个函数:

代码语言:javascript
复制
Public Function vScrub(ByVal s As Variant) As String

  Dim c    As Integer

  If IsNull(s) Then
     vScrub = ""
     Exit Function
  Else
     c = InStr(s, Chr(8))
     Do While c <> 0
        s = Left(s, c - 2) & Mid(s, c + 1)
        c = InStr(s, Chr(8))
     Loop
  End If

  vScrub = s

End Function

因此,将上述内容放入标准代码模块(不是类模块,也不是窗体模块)。

一旦完成,任何表单、任何报表,甚至任何查询都可以简单地用上面的字符串表达式包装。

例:

代码语言:javascript
复制
vScrub([Col1] & [col2])

编辑:

修改例程以处理字符串中的多个chr(8)。

票数 0
EN

Stack Overflow用户

发布于 2020-04-09 17:49:13

不如:

代码语言:javascript
复制
PartNum: left([pl].[PartID],len([pl].[PartID])-1) & [variant]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61125767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档