私のフォームのレコードソースをSQL Serverビューに設定しました。今すぐ開いたときMS AccessのフォームのレコードソースがSQL Server上にある場合、ビューは更新可能ではありません
DoCmd.OpenForm "frmDocuments", WhereCondition:=varWhere
Forms!frmDocuments.SetFocus
開かれますが、更新できません。私は知りたい、これは普通ですか? Accessフォームで開いたビューはすべて更新できません。
ビュー用に一意のインデックスを作成すると、ネット上で読み込み可能になります。更新可能になります。私はこのコード
CREATE UNIQUE CLUSTERED INDEX i_Documents
ON qryDocuments([Owner Document Number])
でビューにインデックスを作成しようとすると、
は今、私はその後、私は、スキーマでビューを作成しようと、エラー
「バインドスキーマ」を取得しますバインディング、エラーが発生する
名前 'tblDiscipline'がスキーマ・バインディングに対して無効であるため、ビュー 'test'をスキーマにバインドできません。名前は2つの部分からなる形式でなければならず、オブジェクトはそれ自体を参照できません。
私が使用しているコードは以下のようなものです:
CREATE VIEW qryDocuments
WITH SCHEMABINDING
AS
SELECT
tblDocuments.[Owner Document Number], tblDocuments.[Sazeh Document
Number],
tblDocuments.[Document Title], tblDocuments.[Project No],
tblDocuments.Originator, tblOriginator.[Originator Des],
tblDocuments.Zone, tblDocuments.Unit, tblDocuments.Discipline,
tblDiscipline.DiscDesc, tblDocuments.[Document Type],
tblDocumentType.[TYPE Description], tblDocuments.SheetNumber
FROM
tblDiscipline
RIGHT JOIN
((tblDocumentType
RIGHT JOIN
tblDocuments ON tblDocumentType.TYPE = tblDocuments.[Document Type])
LEFT JOIN
tblOriginator ON tblDocuments.Originator = tblOriginator.Originator)
ON tblDiscipline.DiscCode = tblDocuments.Discipline
GO
助けてください - どのように私はこの問題を解決することができますか?
ありがとう、前の問題は解決しましたが、「外部結合でビューを作成するとインデックスを作成できません」というエラーが表示され、内部結合に変更され、フォームでクエリを更新できるようになりました。しかし、私は外側の結合でビューにインデックスを作成する方法がないという質問がありますか? –
いいえ、外部結合はできません。 1秒間それを考えてみましょう。クエリエンジンがビュー内の行を更新するよう依頼していますが、更新対象の列は実際には存在しません。なぜなら、左側のテーブルのテーブルからのものであるためです。物事をやろうとするときは、もう一度ドキュメンテーションを見てください。インデックス付きビューを作成するためのドキュメントは次のとおりです。 https://docs.microsoft.com/en-us/sql/relational-databases/views/create-indexed-views –