Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 我是否可以在MS Access中使用更新查询使用其他字段中的字符自动填充唯一ID字段?_Ms Access_Unique Id - Fatal编程技术网

Ms access 我是否可以在MS Access中使用更新查询使用其他字段中的字符自动填充唯一ID字段?

Ms access 我是否可以在MS Access中使用更新查询使用其他字段中的字符自动填充唯一ID字段?,ms-access,unique-id,Ms Access,Unique Id,我是否可以在MS Access中使用更新查询使用其他字段中的字符自动填充唯一ID字段?具体来说,我有一个唯一的ID字段,它由(1)姓的首字母(2)姓的首字母(3)出生日期和(4)性别(M/F)组成。因此,2月17日出生的约翰·史密斯将是NS021700。是否可以从现有字段中提取单个字符,并以这种方式合并到另一个字段中?不幸的是,我正在使用Access 2003。虽然我更愿意创建一个新的ID系统,但这是一个已经存在的系统,我需要定制我正在构建的数据库以适应它 选择LEFT(FirstName,1)

我是否可以在MS Access中使用更新查询使用其他字段中的字符自动填充唯一ID字段?具体来说,我有一个唯一的ID字段,它由(1)姓的首字母(2)姓的首字母(3)出生日期和(4)性别(M/F)组成。因此,2月17日出生的约翰·史密斯将是NS021700。是否可以从现有字段中提取单个字符,并以这种方式合并到另一个字段中?不幸的是,我正在使用Access 2003。虽然我更愿意创建一个新的ID系统,但这是一个已经存在的系统,我需要定制我正在构建的数据库以适应它

选择LEFT(FirstName,1)+RIGHT(LastName,1)+FORMAT(dob,'MMDD')+性别作为唯一标识

以下是您将使用的内容。您需要在表单上显示UID字段,但要将其标记为已锁定,以免意外写入。
此外,这没有错误检查,因此如果任何字段为空,都会出现错误

Private Sub Form_BeforeUpdate(Cancel As Integer)
   Me.UID = Right(fname, 1) & Left(lname, 1) & Format(CDate(DOB), "mmdd") & Gender
End Sub

您试图在何处创建此唯一ID?如果您只希望它显示在表单和报表中,而不希望它保存在数据库中自己的字段中,那么user2063626提供的解决方案将起作用。如果需要将其保存在字段中,则必须使用VBA或更新查询来创建它。我当前正在使用包含这些字段的表单来填充数据库,因此需要保存正在创建的“ClientID”字段。我是VBA新手,但在一些场合使用过它,我找不到一个代码示例,可以让我从多个字段中提取单个字符。从下面的例子来看,似乎有办法做到这一点,但我不清楚从哪里开始。感谢大家迄今为止的帮助。
Right(FirstName,1)&Left(LastName,1)
此外,在VBA中,正确的连接字符是&。+通常会起作用,但并不总是。格式函数需要双引号。