- ベストアンサー
MS ACCESSテキストボックスの値のリンク
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
VBAやAccessを扱うのは1996年が最後。そういうことで、ちょっと苦労したが何とかできた。 これって、確か、相当に悩んだ案件です。下手に主表のテキストボックスに合計値を書き込めば、カーソルは次の行へは移動しませんから・・・。 で、悩みに悩んだ挙句、SQL文を発行してテーブルの合計値を書き換えて、やーっと成功したもんです。 Private Sub Form_AfterUpdate() Dim curGokei As Currency Dim strSQL1 As String Dim strSQL2 As String DoCmd.SetWarnings False strSQL1 = "SELECT SUM(売上金額) FROM 売上伝票明細 " & _ "WHERE 売上伝票_ID=" & 売上伝票_ID strSQL2 = "UPDATE 売上伝票 SET 売上金額合計= [xxxxx] " & _ " WHERE id=" & Me.売上伝票_ID curGokei = DBLookup(strSQL1, 0) DoCmd.RunSQL Replace(strSQL, "[xxxxx]", curGokei) DoCmd.SetWarnings True End Sub 添付図の主表の合計欄は、こうして書き換えています。 ※curGokei = DBLookup(strSQL1, 0) DBLookup()は、自作関数なので置き換えて下さい。
その他の回答 (2)
- m3_maki
- ベストアンサー率64% (296/460)
表示するだけで、保存の必要はないものとして メインフォームのテキストボックスのコントロールソースを =[サブフォームコントロール名]![合計のテキストボックス名] としてください。 念のためこちらも。 サブフォームとサブフォームコントロールの違いとは? http://hatenachips.blog34.fc2.com/blog-entry-347.html
お礼
m3_maki 様 こんにちは!お礼が遅くなってしまって申し訳ありません。 回答と併せて役に立つurlを紹介していただいて、ありがとうございました^^
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
【訂正】 × DoCmd.RunSQL Replace(strSQL, "[xxxxx]", curGokei) 〇 DoCmd.RunSQL Replace(strSQL2, "[xxxxx]", curGokei) テストしてコピペした筈だったが、ミスってました。 PS、訂正のついでに・・・ Access の DLookup() や DSum() って、結構、実行が遅い。そこで、私は、次の DBLookup() を使っています。SQL文をそのまま書けるので非常に重宝。そこの部分の置換に手間取ってもと思って紹介しておきます。仮に、利用される場合は、標準モジュールにコピペしてください。 Public Function DBLookup(ByVal strQuerySQL As String, _ Optional ByVal ReturnValue = Null) As Variant On Error GoTo Err_DBLookup Dim DataValue Dim rst As ADODB.Recordset Set rst = New ADODB.Recordset With rst .Open strQuerySQL, _ CurrentProject.Connection, _ adOpenStatic, _ adLockReadOnly If Not .BOF Then .MoveFirst DataValue = .Fields(0) End If End With Exit_DBLookup: On Error Resume Next rst.Close Set rst = Nothing DBLookup = IIf(Len(DataValue & ""), DataValue, ReturnValue) Exit Function Err_DBLookup: MsgBox "SELECT 文の実行時にエラーが発生しました。(DBLookup)" & Chr$(13) & Chr$(13) & _ "・Err.Description=" & Err.Description & Chr$(13) & _ "・SQL Text=" & strQuerySQL, _ vbExclamation, " 関数エラーメッセージ" Resume Exit_DBLookup End Function
お礼
f_a_007様 NO.1のANSWERにお礼をして、こちらにお礼をするのを失念しておりました;; 申し訳ありません。 訂正の上、詳しく追加で解説までしていただき、ありがとうございました^^
お礼
f_a_007 様 こんにちは!お礼が遅くなってしまい、申し訳ございません。 今から教えていただいた方法を試してみようとおもいます。 1番にご回答いただいたので、ベストアンサーにさせていただきます。 ありがとうございました^^