Access 2000/2010 中的字段超过 255 个



我正在通过 Access 2000 将一个 20 年前的系统从 DBase IV 转换为 Access 2010,以便更适合 Windows 10。但是,我在数据库中有大约 350 个字段,因为它是一个参数表,MS-Access 2000 和 MS-Access 2010 对此表示不满。我已经修复了数据库以消除内部计数问题,但对Windows 10软件的限制如此之低感到非常惊讶。有谁知道如何绕过这个?显然我可以把它分成 2 张表,但这似乎很过时。

当您开始遇到这样的限制时,它会散发出糟糕的数据库设计的味道。

鉴于您声明所讨论的表是具有如此多参数的"参数"表,您是否考虑过构建表以使每个参数都占用自己的记录?

例如,请考虑以下方法,其中ParamName是表的主键:

+----------------+------------+
| ParamName (PK) | ParamValue |
+----------------+------------+
| Param1         | Value1     |
| Param2         | Value2     |
| ...            |            |
| ParamN         | ValueN     |
+----------------+------------+

或者,如果每个参数可能有多个值,您可以简单地添加一个附加字段来区分同一参数的多个值,例如:

+----------------+--------------+------------+
| ParamName (PK) | ParamID (PK) | ParamValue |
+----------------+--------------+------------+
| Param1         | 1            | Value1     |
| Param1         | 2            | Value2     |
| Param1         | 3            | Value3     |
| Param2         | 1            | Value2     |
| ...            | ...          | ...        |
| ParamN         | 1            | Value1     |
| ParamN         | N            | ValueN     |
+----------------+--------------+------------+

我也有类似的问题 - 我们在链接到 Access 的 SQL 服务器上的一个联系人表中有 300 多个字段。您可能不需要在一个表单上显示 255 个字段 - 这对用户不友好。您可以将其拆分为多个子窗体,每个窗体具有不同的下划线查询,且小于限制。所有子窗体都将通过 ID 链接。

有时,由于性能原因,如上所述拆分表并不是最佳主意。

正如Lee Mac所描述的那样,"参数"表结构的样本更改确实是您更好的选择。 然后,您可以为每个常量定义一些常量,以便在代码中使用,以防止以后在代码中意外拼写错误,以防在许多地方使用。

然后,您可以创建一个(或多个函数(,该函数采用您要查找的参数设置的参数,它将查询表中的该参数作为键并返回值。 不是 VB/Access 开发人员,但会认为不能重载函数以具有单个函数,但返回不同的数据类型,例如字符串、int、日期等。 所以你可能想要类似

在 C# 中的示例下方,但原理是相同的。

public int GetAppParmInt( string whatField )
public DateTime GetAppParmDate( string whatField )
public string GetAppParmString( string whatField )
etc...

然后,您可以通过调用函数来获取值,该函数的唯一目的是在参数表中查询该键并返回存储的值。

希望这里提供的解决方案的组合可以帮助您升级,即使您的参数表(在 Lee Mac 的答案上扩展了一点(具有您存储的每种数据类型以对应于"GetAppParm[type]">

ParmsTable
PkID    ParmDescription   ParmInt    ParmDate     ParmString
1       CompanyName                               Your Company
2       StartFiscalYear              2019-06-22
3       CurrentQuarter    4
4... etc.

然后,您不必担心到处更改/数据转换。 它们存储在您期望的正确数据类型中,并返回该类型。

相关内容

  • 没有找到相关文章

最新更新