1

最近、SQL Server Migration Assistant を使用してデータを SQL バックエンドに移動した古代の Access アプリケーションがあり、1 つの問題を除いてほとんどすべてが機能しています。

アプリケーションには、別のフォームを含むフォームがあります。外部フォームは、システムに入力された特定の「問題」を検出し、この問題に関連付けられている履歴レコード (内部フォーム) を探します。履歴レコードが存在する場合、レコードは埋め込みフォームに問題なく表示されるため、完全に機能します。ただし、データベースに履歴レコードがまだ存在しない場合は、埋め込みフォームの詳細セクション全体が完全に空白になります。プロパティはすべて、純粋な Access データベースの場合とまったく同じように設定されていますが、リンク テーブルを使用して SQL からプルするように切り替えたので、プルするレコードがない場合、フォームは空白になります。

編集: 両方が満たされるとフォームの詳細ペインが空白になる 2 つの条件があることを知りました: (1) 表示される既存のレコードがない、(2) 新しいレコードを追加できない。

これは、2 番目の条件が私の問題がある場所であることを意味します。Access でリンクされた各テーブルの一番下までスクロールしようとしましたが、履歴レコード テーブルでは新しい行を追加できませんでしたが、問題テーブルでは追加できました。何らかの理由で、この 1 つのテーブルを編集できません。

4

1 に答える 1

1

サブフォーム(「内部フォーム」)のレコードソースが読み取り専用の場合に、あなたが説明した動作が発生する可能性があると思います。一致する行が存在する場合、それらが表示されます。ただし、一致する行が存在しない場合は行を追加できないため、サブフォームのバインドされたデータ コントロールは無効になります。

サブフォームをデザイン ビューで開きます。フォームを選択し、そのプロパティ シート ( Alt+ Enter) を開きます。プロパティ シートの [データ] タブで [レコード ソース] プロパティを探します。プロパティ値がSELECTステートメントの場合は、それをコピーして新しい Access クエリの SQL ビューに貼り付け、クエリをデータシート ビューに切り替えます。プロパティがテーブルまたは保存されたクエリの名前である場合は、そのオブジェクトをデータシート ビューで直接開きます。

フォームのレコード ソースをデータシート ビューで開いたら、行を追加できますか? そうでない場合は、SQL Server ユーザーがINSERTデータ ソースに対する権限を持っていることを確認してください。ただし、INSERT権限があっても、各行を一意に識別するフィールドまたはフィールドの組み合わせを識別できなかった場合、Access はデータ ソースを読み取り専用としてリンクしている可能性があります。その場合は、テーブルを再リンクし、どのフィールドを主キーとして使用するかを Access に指示する必要があります。

于 2012-10-09T19:26:21.477 に答える