- ベストアンサー
Accessでフォームからテーブルへ書き込む
Access2000 (初心者) フォームからテーブルへ入力したいのですが、レコードソースが違う為入力出来ません。 DLookup("AA", "BB")で違うレコードから抽出出来る様に、違うレコードへ簡単に入力出来ないでしょうか? Me.CC = DLookup("AA", "BB") DLookup("AA", "BB") = Me.CC みたいに・・・
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
出来るのは出来ますが・・・。 Access のヘルプを参照すれば、そこにヒントがあります。 UPDATE ステートメント Sub UpdateX() Dim dbs As Database Set dbs = OpenDatabase("Northwind.mdb") dbs.Execute "UPDATE Employees " _ & "SET ReportsTo = 5 " _ & "WHERE ReportsTo = 2;" dbs.Close End Sub tab1: ID__fld1 _1__AAA _2__BBB で、ヒントに基づいて、[tab1]の[ID]=1のレコードの[fld1]を'CCC'に更新してみましょう。 [イミディエイト] ? DbUpdate("tab1", "fld1", "'ccc'", "ID=1") True tab1: ID__fld1 _1__ccc _2__BBB 確かに[tab1]の[fld1]が更新されています。 DbUpdate(テーブル名, 列名, 値, 条件) ですから Dlookup()と同じ感覚です。 で、この DbUpdate() はAccess の上記ヘルプのサンプルを単に関数にしただけ。 で、結局は、<違うレコードへ簡単に入力>は<一連の手続きの自動化>しかないということ。 で、<一連の手続きの自動化>は関数の役目ということです。 Public Function DbUpdate(ByVal tblName As String, _ ByVal fldName As String, _ ByVal strValue As String, _ ByVal strWhere As String) As Boolean On Error GoTo Err_DbUpdate Dim isOK As Boolean Dim dbs As DAO.Database Set dbs = OpenDatabase(CurrentDb.Name) dbs.Execute "UPDATE " & tblName & _ " SET " & fldName & " = " & strValue & _ " WHERE " & strWhere dbs.Close isOK = True Exit_DbUpdate: DbUpdate = isOK Exit Function Err_DbUpdate: MsgBox Err.Description & "(DbUpdate)" Resume Exit_DbUpdate End Function Microsoft DAO 3.6 Object Library を参照させる必要があります。
その他の回答 (1)
- CHRONOS_0
- ベストアンサー率54% (457/838)
値の代入、更新クエリ、追加クエリなど手段はいくらでもあります ただし >DLookup("AA", "BB") = Me.CC みたいに・・・ こんなことは出来ません
お礼
有難う御座いました。 やはり簡単には出来ないみたいですね。 出来る出来ないだけでも教えて頂いて助かりました。
お礼
有難う御座いました。 簡単には出来ないんですね、助かりました。 せっかくやり方を教えて頂いたので、勉強の為に上記試してみます。