2013-09-27 29 views
0

我将后端MS Access 2003升级到数据库的MySQL 5.1。现在,我使用ODBC将后端MYSQL 5.1数据库thr'ODBC(MySQL ODBC 5.1驱动程序)链接到MS Access。当后端升级到MySQL时,带有varchar字段的可编辑MS Access查询不再可编辑

几乎所有的功能,工作得很好,当我设定的指标,主键关系/约束等

但有以下查询这是编辑在MS Access版本之前,后端升级,不再是允许的编辑。

连接类型为Left/Inner/Right Join,join中的字段为varchar数据类型。

SELECT tblebayinvoices.[User Id], tblebayinvoices.[Buyer Full name], tblebayinvoices. 
[Buyer Phone Number], tblstock.stcEBayDescr, tblstock.stcEBayActive 
FROM tblebayinvoices LEFT JOIN tblstock ON tblebayinvoices.[Item Title] = 
tblstock.stcEBayDescr; 

我的观察是其他查询字段数据类型是numberic,他们很好,查询仍然可编辑。当后端是MS Access时,同样的查询是可编辑的 我尝试使用MySQL的文本数据类型,但MS Access将此视为备忘录,并且不允许在连接中使用。

请让我知道我需要做的建议或更改。

+0

是否为这两个表 – Linger

+0

@Linger定义了主键,是这两个表都有主要的各自的表。和其他索引字段,如那些在MS Access中。 –

回答

1

在“stcEBayDescr”上创建唯一密钥解决了问题。我们错过了MS Access中唯一的密钥索引,但没有在MySQL表数据库中创建。 现在查询在MS Access中可编辑(使用MySQL链接表thr'MySQL ODBC)

1

看起来您的加入字段不是主键。我假设这是因为这些字段是文本,并不是典型的主键字段。

仅当从主表 上的主键连接到子表中的外键时,连接才可编辑。

+0

1)我正在进行连接的文本字段不是主键,但每个表都有一个其他数字字段分别作为主键。 2)相同的查询在MS Access中工作,没有任何主键的变化,我很困惑,为什么这样?这只是数据在MS Access中,并且在上面的情况下,表格是在MySQL中链接到MS Access thr'ODBC。 –

+2

不同的数据库以不同方式处理这种情况。这就是为什么数据库设计应该总是通过主键和外键链接表。如果你可以通过'[Item Title]'和'stcEBayDescr'将'tblebayinvoices'链接到'tblstock',那么你可能无法通过查询直接更新数据。但是,您可以创建一个临时表来转储查询,然后进行更改。完成后单独打开表格并根据表格进行编辑。 – Linger

+0

制作临时表并更新回各个表看起来不错。由于应用程序在多用户场景中使用,恐怕这可以实现。 现在我正在检查MySQL是否提供了像存储过程或函数那样的设施,我可以使用该查询的SQL编辑数据。除此之外,我需要调查这种存储过程/函数是否可以连接到前端MS Access应用程序。 –

相关问题