在Access

时间:2016-09-06 22:37:41

标签: ms-access

我正在为DVD租赁服务(作为学校作业)创建一个数据库,并且已经为这些电影类型提供了数据。从预先存在的Excel表导入不同类型的流派(以及其余数据)。类型如下所示:

Genres

这个问题是我需要将这些类型分开(即我不能在一个字段中使用Action / Adventure,它们必须分开)。这样做的目的是我可以根据他们的流派搜索DVD,并且可能会出现不同类型的DVD。

我尝试创建另一个与'类型相关的表格。字段并使用以下代码分隔数据:

Left$([genre],InStr(1,[genre],"/")-1)

这是为了找到其中一个类型并将其放入名为' genre1'的字段中。以下查找另一半数据并将其放在名为' genre2'的字段中:

Right$([genre],Len([genre])-InStr(1,[genre],"/"))

这确实有效,但它给了我一个#Func! error

有没有办法防止出现此错误,还可以根据其中一种类型搜索DVD(在表单中)?

1 个答案:

答案 0 :(得分:2)

我目前无法看到您的屏幕截图,但是从我读到的内容: 您不应为每个流派组合添加字段。我的意思是:目前你最多有2种类型的组合,但如果一部电影有3种类型,你必须在你的桌子上添加第3个字段,这绝对不是一个好习惯。

您只需在类型电影表之间建立链接表。

您的流派表格不应包含任何组合。组合应来自您的链接表:

T_FILM (int [ID], txt [name] ...)
T_GENRE(int [ID], txt [genre])
T_FILM_GENRE(int [fk_ID_FILM], int [fk_ID_GENRE])

对于您的错误,可能是由于InStr(1,[genre],"/")-1在没有" /"时返回-1的事实。在字符串中,Left$第二个参数不能取负值