アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

Me.CC = DLookup("AA", "BB")
DLookup("AA", "BB") = Me.CC みたいに・・・

A 回答 (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 を参照させる必要があります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/07/30 11:17

値の代入、更新クエリ、追加クエリなど手段はいくらでもあります


ただし
>DLookup("AA", "BB") = Me.CC みたいに・・・
こんなことは出来ません
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/07/30 11:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す