• ベストアンサー

Accessでフォームからテーブルへ書き込む

Access2000 (初心者) フォームからテーブルへ入力したいのですが、レコードソースが違う為入力出来ません。 DLookup("AA", "BB")で違うレコードから抽出出来る様に、違うレコードへ簡単に入力出来ないでしょうか? Me.CC = DLookup("AA", "BB") DLookup("AA", "BB") = Me.CC みたいに・・・

質問者が選んだベストアンサー

  • ベストアンサー
noname#140971
noname#140971
回答No.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 を参照させる必要があります。

mmac
質問者

お礼

有難う御座いました。 簡単には出来ないんですね、助かりました。 せっかくやり方を教えて頂いたので、勉強の為に上記試してみます。

その他の回答 (1)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

値の代入、更新クエリ、追加クエリなど手段はいくらでもあります ただし >DLookup("AA", "BB") = Me.CC みたいに・・・ こんなことは出来ません

mmac
質問者

お礼

有難う御座いました。 やはり簡単には出来ないみたいですね。 出来る出来ないだけでも教えて頂いて助かりました。

関連するQ&A