質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

14824閲覧

access vba 自身のテーブルの一列を取得し、特定の値が存在の有無をチェックするイベント

nekomura

総合スコア132

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

1クリップ

投稿2016/03/17 09:05

よろしくお願いいたします。

自身のテーブル(access)の一列を取得し、"○○"という値が存在するのか否かをチェックするイベントを、フォームのボタンに記述したいです。
(実際に使用するテーブルに”○○”は存在しています。確認済み)
コードにある
If objRec(F_1).Value = "○○" Then
では、一番上にある値に対して結果を出してしまうので、
(本当は”○○”は存在しているのに)
結果は
MsgBox "○○はありません"
となってしまいます。

レコード一列値を取得して、その中に特定の値があるかどうかをチェックできるロジックにするにはどうすればよろしいでしょか。

有職者の皆様、お知恵を貸してください。

Private

1 2 '列名称 3 Const F_1 = "列名" 4 5 6 Dim blnFlg As Boolean: blnFlg = False '変数宣言と初期値設定 7 Dim objRec As Recordset 8 9 Set objRec = CurrentDb().OpenRecordset("select 列名, Value from テーブル) 10 11 Do Until objRec.EOF 12 If objRec(F_1).Value = "○○" Then //→列の一番上の値だけを参照しているので、”○○”まで探しにいかず、else側の答えになってします。 13 14 15 MsgBox "○○は存在します" 16 Else 17 MsgBox "○○はありません" 18 19 objRec.MoveNext 20 Loop 21 End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

順番の問題ですね。

Do Until objRec.EOF If objRec(F_1).Value = "○○" Then //→列の一番上の値だけを参照しているので、”○○”まで探しにいかず、else側の答えになってします。 MsgBox "○○は存在します" GoTo EndOfSearch End If objRec.MoveNext Loop MsgBox "○○はありません" EndOfSearch:

「○○はありません」というのを表示するのはテーブルに値がないときですから、こうすればその時だけ表示されますね。

投稿2016/03/17 09:15

tkturbo

総合スコア5572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nekomura

2016/03/17 09:21

tkturbo様 いつもお世話になっております。 思っていたとおりの動きになりました! Dlook関数などのやり方も調べていたところだったんですが、 このやり方も勉強になりました。 本当にありがとうございます、いつも感謝です!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問