0

1 対多の関係で、問題とアクションのテーブルがあります。

私はフォーム OIssues を持っています。これにより、ユーザーは各問題を閲覧できます。問題に関連するアクションを表示するサブフォームが埋め込まれており、マクロを実行するコマンド ボタンがあり、ユーザーはサブフォームにアクションをすばやく追加できます。

ただし、その問題に対して既に存在するアクションを追加しようとすると、ユーザーにプロンプ​​トを表示できるようにしたいと考えています。

したがって、コマンド ボタンのクリックに VBA を追加する必要があると思います。これは、IssueID 1234 のレコードがいくつ存在し、タイプが「変更要求」であるかを確認します。これが 1 より大きい場合は、ユーザーにプロンプ​​トを出します。しかし、それを行うための正しいコマンドが見つかりません!

どんな助けでも大歓迎です。

4

2 に答える 2

0

ボタンの背後にある VBA コード。

Dim db as database
Dim rec as recordset

set db = currentDb
set rec = db.openrecordset("Select IssueID from YourTableName WHERE IssueID = " & Me.IssueID & " AND Type = '" & Me.Type & "'")

X = 0

rec.movefirst
If rec.eof = False then

rec.movelast
X = rec.recordcount
EndIf


If X > 1 then
  msgbox "This already exists"
EndIf

編集: テーブル レイアウトが具体的にはわかりません。そのため、単純な「YourTableName から IssueID を選択する」のではなく、OpenRecordSet で何らかの結合を行う必要がある場合があります。

于 2013-07-10T14:33:47.007 に答える
-1
A slightly better answer would be to use the COUNT function for example :-

Dim db as database
Dim rec as recordset
dim cnt as long

set db = currentDb
set rec = db.openrecordset("Select count(IssueID) from YourTableName WHERE IssueID = " & Me.IssueID & " AND Type = '" & Me.Type & "'")

cnt=0
if not rec.eof then cnt=rec.fields(0)

If cnt > 0 then msgbox "This already exists"
于 2013-07-11T08:35:00.740 に答える