Access数据集中的星号导致错误



我以前从来没有真正用Access做过任何事情(尽管我用MySQL和PHP做过很多),所以这是我的第一次尝试。这很简单:两个表,tblShapes和tbleexamples。它们由"JCH Shape"链接,这是tblShapes(它的文本)中的主要内容。我用一个可以选择JCH形状的组合框创建了一个表单。然后重新查询表单,以便用适当的数据填充子表单。

但是,我的一些数据仅用星号来区分。现在,JCH Shape列的值在这些行中是:
  • (g) CVC
  • (g) C * V
  • * CV
  • CVCV

我很好,直到我添加了最后一个值,"CVCV"。现在,每当我点击它,任何时候我尝试选择其他数据,表单要求,但显示空白数据,直到我关闭表单并重新打开它,除非我选择CVCV,在这种情况下,它显示自己的数据很好,好像表单认为其他一切都失去了相关的数据。

星号绝对是这里的问题,但它只是一个问题,当它区分CV*CV和CVCV,或其他形式,其中唯一的区别字符是*(它不影响(g)CVC和(g)C*V,例如,但当我尝试制作(g)CV时,发生了同样的问题)。我不明白。当我调用Requery时,我想有些事情是错误的,但我不知道Access如何在内部工作,以知道它是否错误地将*解释为通配符,或者如果我做错了什么。

我已经链接到文件。我知道这很乱,但这是我第一次尝试。如有任何帮助,不胜感激:

http://the-polyglot.net/uploads/other/SP-JCH-Words.accdb

谢谢!

编辑:现在在我上传的版本中,它似乎在点击第一个条目后为每个条目做它。我一点也不明白。当我点击CVCV 5分钟前,我所做的唯一的事情是关闭和重新打开访问。

首先,您应该为tblShapes表使用自动编号主键,以便每个'Shape'都有一个唯一的值。在tbleexamples中应该有一个外键值来显示表之间的关系。

其次,(不管你是否遵循我的第一点),你有一个主表单和两个子表单。

主表单应该将RecordSource设置为0。

子表单的LinkMaster属性应该设置为组合框的名称。

我会给控件的名字前面加三个字母,比如cmb代表组合框,txt代表文本框。这将使代码更清晰,并避免字段和控件使用相同名称的冲突。

祝你好运!

我想我已经解决了这个问题。我在主表单的记录集Like [Forms]![Add Record]![ShapeCombo]

上使用标准

因此,在某些情况下,它得到Like CV*CV。我把这个改成了字面匹配,它工作得很好。但是,我仍然想知道是否有一种简单的方法来转义Like表达式中的敏感字符。有没有人知道的方式,而不是做手工字符串替换和改变*[*],例如?我的问题已经解决了,但我只是好奇,如果我需要使用带有预期通配符和文字星号的Like表达式,我将如何解决它。

相关内容

  • 没有找到相关文章

最新更新