2017-11-27 4 views
1

Microsoft Access ADPタイプのデータベースがあり、最近Office XP(2002)からOffice 2010にアップグレードされたSQL Server 2012データベースにリンクしています。更新可能なデータソースを持つフォーム上のコンボボックスで問題を起こす - Access XP/2002では、ユーザーがドロップダウンリストから値を選択でき、その値がテーブルで更新されます。ただし、ユーザーがAccess 2010の 'tblL.LMID'コンボボックスを使用してレコードを変更しようとすると、画面下部のステータスバーでエラーが短時間点滅します(レコードは更新されません)。コントロールを編集することはできません。 AutoNumberフィールド[FieldName]にバインドされています

"コントロールを編集することはできず、LMIDのオートナンバー型フィールドにバインドされています"

問題のフィールドがSQL ServerのID列だった場合、これは通常の機能ですが、ここでは該当しません。ただし、 'tblL.LMID'フィールドは、SQLクエリーの背後で結合として使用されます。次のようにクエリに含ま

SELECT dbo.tblLM.OpID, dbo.tblL.*, dbo.tblLM.DR 
FROM dbo.tblL INNER JOIN dbo.tblLM ON dbo.tblL.LMID = dbo.tblLM.LMID 
WHERE (dbo.tblLM.DR = 1) 
ORDER BY dbo.tblL.DS 

テーブルである:以下のように

フォーム上のデータ・ソースであるテーブル構造1として

CREATE TABLE [dbo].[tblL](
    [LID] [int] IDENTITY(1,1) NOT NULL, 
    [LMID] [int] NOT NULL, 
    [DS] [nvarchar](10) NOT NULL) 

CREATE TABLE [dbo].[tblLM](
    [LMID] [int] IDENTITY(1,1) NOT NULL, 
    [OpID] [int] NULL, 
    [DR] [bit] NULL DEFAULT ((1))) 

、tblL.LMIDは単純です(オートナンバー/アイデンティティではありません)、アプリケーションのAccess XP/2002バージョンと同じように変更する必要があります。

私はこの問題に関する援助を喜んで受け入れます。 :)

答えて

0

問題はクエリ自体にありました。解決するために、我々は交換していた特定の列名を選択するだけでなく、問題のある列の別名を与える「dbo.tblLを*。」:私たちは、その後(新しいエイリアスを使用するために、コンボボックスを更新

SELECT dbo.tblLM.OpID, dbo.tblL.LMID as l_MID, dbo.tblLM.DR 
FROM dbo.tblL INNER JOIN dbo.tblLM ON dbo.tblL.LMID = dbo.tblLM.LMID 
WHERE (dbo.tblLM.DR = 1) 
ORDER BY dbo.tblL.DS 

を"l_MID")、正しく動作するようになりました。

0

フォームをデザインビューに配置します。現在のコンボボックスを削除します。新しいコンボボックスを作成し、ウィザードに従います。

関連する問題