1

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

但是,我的一些数据仅通过星号进行区分。因此,现在,我拥有的行中 JCH Shape 列的值是:

  • (g)CVC
  • (g)C*V
  • 简历*简历
  • 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

谢谢!

编辑:现在在我上传的版本中,点击第一个条目后,它似乎正在为每个条目执行此操作。我完全不明白。仅在我 5 分钟前单击 CVCV 时才这样做,而我唯一做的就是关闭并重新打开 Access。

4

2 回答 2

0

I think I solved the problem. I was using a criterion on the main form's recordset Like [Forms]![Add Record]![ShapeCombo]

So, this derived to Like CV*CV in some cases. I changed this to just a literal match and it works fine. I still wonder if there's an easy way to escape sensitize characters in Like expressions, though. Does anyone know of a way other than doing a manual string replace and changing * to [*], for example? My problem is fixed, but I'm just curious how I would solve it if I were to need to use a Like expression with both intended wildcards and literal asterisks.

于 2013-06-12T14:00:21.450 回答
0

首先,您应该为 tblShapes 表使用自动编号主键,以便每个“形状”都具有唯一值。tblExamples 中应该有一个外键值来显示表之间的关系。

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

主窗体应该将 RecordSource 设置为空。

子窗体的 LinkMaster 属性应设置为组合框的名称。

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

祝你好运!

于 2013-06-12T08:46:06.143 回答