Ms access 数据库中的顺序编号(MSACCESS) 总结:

Ms access 数据库中的顺序编号(MSACCESS) 总结:,ms-access,key,database-relations,Ms Access,Key,Database Relations,我有一个表,它有一个标识每个记录的uique主键。我还有三个字段可以识别记录: 类别 类别编号 重复编号 当我添加一个新记录并选择类别时,如何根据它是否是重复的来正确增加CategoryNumber 请注意,这是一张大桌子。这只是从excel到access的升级 tldr: 昨天我询问了如何处理Access中的多个密钥。也许我问的问题不对,因为今天我的问题更令人困惑 这就是我要做的,也是我被困的地方 我正在创建一个数据库,以跟踪我用不同相机拍摄的各种不同胶片和格式的电影照片(每张照片总共有1

我有一个表,它有一个标识每个记录的uique主键。我还有三个字段可以识别记录:

  • 类别
  • 类别编号
  • 重复编号
当我添加一个新记录并选择类别时,如何根据它是否是重复的来正确增加CategoryNumber

请注意,这是一张大桌子。这只是从excel到access的升级

tldr: 昨天我询问了如何处理Access中的多个密钥。也许我问的问题不对,因为今天我的问题更令人困惑

这就是我要做的,也是我被困的地方

我正在创建一个数据库,以跟踪我用不同相机拍摄的各种不同胶片和格式的电影照片(每张照片总共有18条不同的独立信息),这些照片可以追溯到近15年前。几年前,我将数据保存在MS Excel中,并对输入表单进行编程,以完成我将要解释的内容

我想用两种方式来记录这些照片。第一个是主照片编号,它可以让我知道我的文件中总共有多少张照片。这是一个序列号,我从来没有打算删除该序列中的某些内容。这将是一个唯一标识每张照片的数字。我将此视为整个数据库的主键

但我还想根据一般的组或类别来归档幻灯片、底片和透明胶片,以便在需要提交照片或寻找特定内容时快速提取它们。因此,我还添加了一个类别标识(例如,风景画还附加了一个“LS”名称,或者日落是“SS”等)。我还想为每个类别中的每张幻灯片保留一个连续的序列号。例如,我数据库中的第一张照片中有一张照片的PhotoID=3,其类别=LS,其CategoryID=1。再往下看,PhotoID=14,Category=LS,CategoryID=2

现在除了这些,我还有另外一个数字需要记录,那就是如果我对同一场景进行了重复曝光。为了解决这个问题,我只在每张照片上添加了一个重复的数字。如果没有重复项,则DuplicateNumber为0,如果有一个重复项,则DuplicateNumber为1,两个重复项,DuplicateNumber为2,以此类推

所以我有两种方法可以在我的文件中找到任何照片。通过数据库中顺序排列但不在我的物理文件中的PhotoID,或者通过Category、CategoryID和DuplicateNumber的组合,这是我物理归档照片的方式

现在,在Excel中,当我打开表单时,我首先必须通过表单上的单选按钮选择要将照片放入的类别。然后我会为照片填写所有相关数据。当我执行表单时,它会找到主控表中的最后一个数字,增加它,并将所有数据添加到新记录中。然后,它将激活我选择的类别的类别表,确定该表中的最后一个数字,增加它,并在那里添加新数据

一个重要的注意事项是,defalut的DuplicateNumber始终为0,除非我将其设置为1、2等。它从未计算过,但我输入了它

当我创建幻灯片标签(“报告”)时,我会以这种格式(1LS1.0、14LS45.0、15LS45.1)包括主照片ID、类别名称、类别ID和重复编号,以及拍摄的位置和日期

但现在我不想再使用Excel了,我已经尝试将数据库迁移到MS Access。所以我有一个主表叫做光电探测器

PhotoID是此表中的主键。它有一个phototegory字段,该字段是一个与另一个名为Category的表有关系的数字。它的主键是phototegoryId,也是光电探测器中的外键。PhotosegoryId是标识每个类别的数字。在我所有类别的列表中,LS排在第11位。但这就是我被卡住的地方

我有CategoryNumber,它是标识每个类别中照片的编号,还有DuplicateNumber,标识PhotoDetal表中重复的数量。我不明白的是,当我添加一张新照片时,如何增加CategoryNumber?我现在拥有的表单允许我输入所有数据,当我点击进入下一个表单时,它会自动输入PhotoID键,但是CategoryNumber呢?我记不起每个类别的最后一个数字是什么,以便我自己输入这个数字。除非我模仿我在Excel中所做的,将所有数据存储两次,一次存储在PhotoDetails(Excel中称为Master Sheet)中,另一次存储在多个类别表中。我希望Access能为我提供一个解决办法

目前,我拥有的关系是以1-M关系链接到光电探测器的类别表。我还有其他几个表,它们都以1-M关系链接(例如,表Film存储了我使用过的不同胶片,1-M关系允许我将哪个胶片链接到每张幻灯片,而其他大多数数据都是以这种方式存储的)


我有31个不同的类别。每张照片都有一个类别和分类号,以及一个重复编号。我将在数据输入中选择类别和DuplicateNumber,但我希望CategoryID号和PhotoID自动递增。正确的方法是什么?我只需要为每个类别保留一个不重复的PhotoDetail表,就像我在Excel中做的那样。

我会考虑通过添加代码来降低成本,这样当你尝试添加一条新记录时,它会在数据库中搜索类别/duplicate/etc的最高数字,然后你就可以在添加新记录之前,在代码中增加它

要在Access中自动获得此功能,没有简单的方法,除非您将表拆分为多个表

-亚当

好的,那么基本上你