我在数据表模式下有一个带子表单的Access表单,允许编辑模式。所有表都存储在SQL Server(2008R2)中,我刚添加了一个新列(位不为空,默认为0)
子表单数据源跨越3个表,并且工作正常。但是,只要我添加新列,每次尝试更改数据时,都会收到此错误:
如果我删除了刚添加的列,那么一切似乎都会再次起作用。
这是
之前的数据源SELECT tblCommandeListe.Section, tblCommandeListe.Description, tblCommandeListe.[No item], tblCommandeListe.N°Commande, tblCommandeListe.Code, tblCommandeListe.Qte, tblCommandeListe.Dim, tblFournisseur.[Fournisseur-Nom], tblCommandeListe.Prix, tblCommandeListe.[Date de livraison], tblCommandeListe.[Cost Center], tblCommandeListe.Devise, tblCommandeListe.Complet, tblCommandeListe.[LB/Lin], tblCommandeListe.[Prix/lb], tblCommandeListe.Unite, tblCommandeListe.[Note 2], tblCo mmandeListe.Ordre, tblProduits.[Produit-DescriptionFRA], tblProduits.[Produit-Prix], tblProduits.[Produit-Unite], tblProduits.[Produit-Fournisseur], tblProduits.[Produit-LB/Lin], tblProduits.[Produit-Prix/lb], tblProduits.[Produit-Long nom], tblProduits.[Produit-Devise], tblCommandeListe.Condition, tblCommandeListe.[Date création], tblCommandeListe.[Enlever liste à commander], tblCommandeListe.[Unite ing], tblProduits.[Produit-Unite_ing], tblCommandeListe.[Dim ing], tblCommandeListe.DescTmp, tblCommandeListe.[User mod], tblCommandeListe.[Qte req], tblCommandeListe.Annuler, IIf(IsNull([Qte req]),0,[Qte req])*IIf(IsNull([Prix]),0,[Prix])*IIf(IsNull([Dim]),1,[Dim])*IIf(IsNull([LB/Lin]) Or [LB/Lin]=0,1,[LB/Lin]) AS Total, tblCommandeListe.[Relaché pour achat], tblProduits.[Produit-Priorité], tblFournisseur.[Fournisseur-Nom]
FROM (tblCommandeListe
LEFT JOIN tblProduits ON tblCommandeListe.Code = tblProduits.[Produit- Code])
LEFT JOIN tblFournisseur ON tblProduits.[Produit-Fournisseur] = tblFournisseur.Fournisseur_id
ORDER BY tblCommandeListe.Section, tblCommandeListe.Description;
并在我添加列
之后SELECT tblCommandeListe.Section, tblCommandeListe.Description, tblCommandeListe.[No item], tblCommandeListe.N°Commande, tblCommandeListe.Code, tblCommandeListe.Qte, tblCommandeListe.Dim, tblFournisseur.[Fournisseur-Nom], tblCommandeListe.Prix, tblCommandeListe.[Date de livraison], tblCommandeListe.[Cost Center], tblCommandeListe.Devise, tblCommandeListe.Complet, tblCommandeListe.[LB/Lin], tblCommandeListe.[Prix/lb], tblCommandeListe.Unite, tblCommandeListe.[Note 2], tblCommandeListe.Ordre, tblProduits.[Produit-DescriptionFRA], tblProduits.[Produit-Prix], tblProduits.[Produit-Unite], tblProduits.[Produit-Fournisseur], tblProduits.[Produit-LB/Lin], tblProduits.[Produit-Prix/lb], tblProduits.[Produit-Long nom], tblProduits.[Produit-Devise], tblCommandeListe.Condition, tblCommandeListe.[Date création], tblCommandeListe.[Enlever liste à commander], tblCommandeListe.[Unite ing], tblProduits.[Produit-Unite_ing], tblCommandeListe.[Dim ing], tblCommandeListe.DescTmp, tblCommandeListe.[User mod], tblCommandeListe.[Qte req], tblCommandeListe.Annuler, IIf(IsNull([Qte req]),0,[Qte req])*IIf(IsNull([Prix]),0,[Prix])*IIf(IsNull([Dim]),1,[Dim])*IIf(IsNull([LB/Lin]) Or [LB/Lin]=0,1,[LB/Lin]) AS Total, tblCommandeListe.[Relaché pour achat], tblProduits.[Produit-Priorité], tblFournisseur.[Fournisseur-Nom], tblCommandeListe.EstProduction
FROM (tblCommandeListe
LEFT JOIN tblProduits ON tblCommandeListe.Code = tblProduits.[Produit- Code])
LEFT JOIN tblFournisseur ON tblProduits.[Produit-Fournisseur] = tblFournisseur.Fournisseur_id
ORDER BY tblCommandeListe.Section, tblCommandeListe.Description;
我看到的唯一区别是最后的新栏目。我试过其他列,到目前为止,它仍然可以使用,所以问题可能是列本身,但它怎么可能?
编辑:我刚做了一个测试,当我尝试直接在Access的表中编辑它时,我似乎得到了完全相同的消息!