2017-09-17 6 views
0

次のSQLフィールドを挿入したときに、メインフォームのサブフォームデータグリッドにエントリをエンコードできません。この列を削除すると、新しいデータレコードの作成が可能になります。誰もがこの問題を見てください!挿入時にMS Accessサブフォームのデータ入力がロックされるSQL

元払いバランス

(SELECT SUM(NZ(T1.AdvancePayment,0)- 
      NZ(([GrossInv-WorksCertified-61110]* 
      [SubCon-BasicInfo].[Advance-409130-%]/100),0)) 
    FROM [InvoiceMaster] AS T1 
    WHERE T1.[SubConName]=[InvoiceMaster].[SubconName] 
    AND T1.[ID]<=[InvoiceMaster].[ID]) 

答えて

0

クエリでの計算を使用して基になるレコードセットは更新できませんします。 クエリ(およびそれらに基づくフォーム)が時には更新可能でない場合がある優れたリストについては、this questionを参照してください。

データシートフォームに計算を含める適切な方法は、デザインビューで開き、新しいテキストボックスコントロールを追加し、コントロールのソースを=等号と計算に続けて設定することです。

また、サブクエリをドメイン集約に書き直すか、またはコンボボックスを使用してクエリを使用する必要があります。

書き換え例:あなたがアドバイスとして、私が試した DSUM("NZ(InvoiceMaster.AdvancePayment,0)- NZ(([GrossInv-WorksCertified-61110]*[SubCon-BasicInfo].[Advance-409130-%]/100),0)", "InvoiceMaster", "[SubConName] = """ & [InvoiceMaster].[SubconName] & """ AND ID = " & [InvoiceMaster].[ID])

+0

。しかし、テキストボックスは私に "#Name"を与えるこのための回避策はありますか? –

+0

編集を参照してください。おそらく最も簡単な方法は、コンボボックスにクエリを割り当て、コンボボックスが最初の値を選択していることを確認することです。 –

+0

あなたの提案をうまく試しましたが、成功できませんでした。デフォルトで最初の値を選択する方法を教えてください。 –

関連する問題