Microsoft Access Club Access超初心者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトルメッセージボックスの関数について
記事No83132
投稿日: 2017/07/13(Thu) 16:29
投稿者薩摩芋
OS:Windows7
Access Version:Access2013

Accessのテーブルに登録する際、フォームにて登録ボタンを押すと
フィールド「対応」部分に「変更」という文字が入っていればポップアップが出るようにしたいです。

フィールド「お客様番号」と新規登録する「客番」が一致していた場合
上記の条件を満たす、というようにしたいと思っております。

VBAを使用して下記のような構文を作ってみましたが、エラーで登録すらできないようになってしまいました。

vercheck = IIf(strkyakuban = [お客様番号] & [対応], FROM Like "変更", MsgBox("変更必要です。", vbexlamation), False)

msgboxにはIIf構文は使用できないのでしょうか。
よろしくお願い申し上げます。

タイトルRe: メッセージボックスの関数について
記事No83133
投稿日: 2017/07/13(Thu) 19:35
投稿者tkwan
> vercheck = IIf(strkyakuban = [お客様番号] & [対応], FROM Like "変更", MsgBox("変更必要です。", vbexlamation), False)
この式の意図(あるいは意味)は?

> VBAを使用して
VBAなら、IIf関数よりも、こっちのほうが良いでしょうね。

Access VBA 入門講座:If〜Else文
http://accessvba.pc-users.net/syntax/if_else.html

> msgboxにはIIf構文は使用できないのでしょうか。
そんな事はありませんよ。使い方によるでしょう。

タイトルRe^2: メッセージボックスの関数について
記事No83134
投稿日: 2017/07/14(Fri) 10:18
投稿者薩摩芋
> > vercheck = IIf(strkyakuban = [お客様番号] & [対応], FROM Like "変更", MsgBox("変更必要です。", vbexlamation), False)
> この式の意図(あるいは意味)は?

>登録フォームのお客様番号と[henkou]テーブルのお客様番号が一致し、
なおかつ[対応]フィールドに"変更"という文字が入っていた場合にポップアップで"変更が必要です。"
と表示させたいと思っています。
>
> > VBAを使用して
> VBAなら、IIf関数よりも、こっちのほうが良いでしょうね。
>
> Access VBA 入門講座:If〜Else文
> http://accessvba.pc-users.net/syntax/if_else.html
>

>ありがとうございます!これを使用して下記構文を作成しましたがエラー「指定した式で参照されている"/1"フィールドが見つかりません。」と出ます…。

If Me.物件コード = [T_henkou].[物件コード] & [T_henkou].[対応] Like "変更" Then

MsgBox "変更対応が必要です。"

End If

タイトルRe^3: メッセージボックスの関数について
記事No83135
投稿日: 2017/07/14(Fri) 15:58
投稿者tkwan
> > 登録フォームのお客様番号と[henkou]テーブルのお客様番号が一致し、
> > なおかつ[対応]フィールドに"変更"という文字が入っていた場合にポップアップで"変更が必要です。"
> > と表示させたいと思っています。

> If Me.物件コード = [T_henkou].[物件コード] & [T_henkou].[対応] Like "変更" Then

--------------------------------------------------------
基礎から始めるVBA講座:演算子(基礎編)
http://www.geocities.jp/cbc_vbnet/kisuhen/enzanshi.html
--------------------------------------------------------
1."なおかつ"は & 演算子 ではなく、AND 演算子です。
 04.文字列連結演算子(文字列の連結を行うときに使用する演算子)
 05.論理演算子(論理演算を行うときに使用する演算子)

2.Like 演算子の使い方が間違っています。
 03.比較演算子(比較を行うときに使用する演算子)
   Like演算子は,対象となる文字列が指定の文字パターンに一致するときはTrue(-1),
   一致しないときはFalse(0)を返します。
   【書式】 文字列 Like 文字パターン     
   文字パターンにはワイルドカード,文字リスト,文字範囲などの文字列を指定します。
 上記の式なら、= 演算子で十分でしょう。


なお、上記を修正しても正しい結果を得られるとは思えません。
T_henkouテーブルの参照法が間違っていると思うからです。

タイトルRe^4: メッセージボックスの関数について
記事No83136
投稿日: 2017/07/19(Wed) 15:55
投稿者薩摩芋
> > > 登録フォームのお客様番号と[henkou]テーブルのお客様番号が一致し、
> > > なおかつ[対応]フィールドに"変更"という文字が入っていた場合にポップアップで"変更が必要です。"
> > > と表示させたいと思っています。
>
> > If Me.物件コード = [T_henkou].[物件コード] & [T_henkou].[対応] Like "変更" Then
>
> --------------------------------------------------------
> 基礎から始めるVBA講座:演算子(基礎編)
> http://www.geocities.jp/cbc_vbnet/kisuhen/enzanshi.html
> --------------------------------------------------------
> 1."なおかつ"は & 演算子 ではなく、AND 演算子です。
>  04.文字列連結演算子(文字列の連結を行うときに使用する演算子)
>  05.論理演算子(論理演算を行うときに使用する演算子)
>
> 2.Like 演算子の使い方が間違っています。
>  03.比較演算子(比較を行うときに使用する演算子)
>    Like演算子は,対象となる文字列が指定の文字パターンに一致するときはTrue(-1),
>    一致しないときはFalse(0)を返します。
>    【書式】 文字列 Like 文字パターン     
>    文字パターンにはワイルドカード,文字リスト,文字範囲などの文字列を指定します。
>  上記の式なら、= 演算子で十分でしょう。
>
>
> なお、上記を修正しても正しい結果を得られるとは思えません。
> T_henkouテーブルの参照法が間違っていると思うからです。

ありがとうございます!
返信大変遅くなり申し訳ございません。

そもそも演算の使用法、テーブルの参照法が間違えていたんですね。
大変お恥ずかしいお話でございます。

テーブルの特定フィールド内に"変更"という文字は入っているのですが、
他にも数種類の言葉が入っています。
その場合もLike演算子でなく=を使用すべきなのでしょうか。

タイトルRe^5: メッセージボックスの関数について
記事No83137
投稿日: 2017/07/19(Wed) 19:31
投稿者tkwan
> テーブルの特定フィールド内に"変更"という文字は入っているのですが、
> 他にも数種類の言葉が入っています。
> その場合もLike演算子でなく=を使用すべきなのでしょうか。

たとえば、「変更かな?」と「ここを変更」とかを抽出するのなら
 Like "*変更*" 
ですが、「変更」とだけ入っているものを抽出するのなら、
 = "変更"
です。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る