Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Access 2003)
バーコード入力でいらない文字を除去したい
投稿日時: 17/03/20 17:57:49
投稿者: ぼーぼー

お世話になります。
コンボボックスに、現在は品番を手入力してクエリで抽出しています
 
Like [Forms]![F_次機種切替サポート画面]![cbo_品番] & "*")
 
バーコードリーダーでもコンボボックスに部品の品番を入力しようと
思っておりまして、バーコードで読み込まれる頭の文字で"3N1"という表示が
入ってしまうので、これを除いて検索するようにしたいのです。
全部の品番がそうなっているわけではなく、普通に品番が読みこまれるときも
あるので、この場合どのようにしたらよいかわからなくて困ってます。
ちなみにSQL文は下記のようになっているのですが、どなたか詳しい方教えてください。
宜しくお願いします。
 
 
SELECT DISTINCT T_NC配列統合.機種, T_NC配列統合.[Z No#], T_NC配列統合.[Part Name]
FROM T_NC配列統合
GROUP BY T_NC配列統合.機種, T_NC配列統合.[Z No#], T_NC配列統合.[Part Name]
HAVING (((T_NC配列統合.機種)=[Forms]![F_次機種切替サポート画面]![cbo_機種]) AND ((T_NC配列統合.[Part Name]) Like [Forms]![F_次機種切替サポート画面]![cbo_品番] & "*") AND (([Forms]![F_次機種切替サポート画面]![cbo_機種]) Is Not Null) AND (([Forms]![F_次機種切替サポート画面]![cbo_ZNo]) Is Null) AND (([Forms]![F_次機種切替サポート画面]![cbo_品番]) Is Not Null)) OR ((([Forms]![F_次機種切替サポート画面]![cbo_機種]) Is Null) AND (([Forms]![F_次機種切替サポート画面]![cbo_ZNo]) Is Null) AND (([Forms]![F_次機種切替サポート画面]![cbo_品番]) Is Null)) OR (((T_NC配列統合.機種)=[Forms]![F_次機種切替サポート画面]![cbo_機種]) AND (([Forms]![F_次機種切替サポート画面]![cbo_機種]) Is Not Null) AND (([Forms]![F_次機種切替サポート画面]![cbo_ZNo]) Is Null) AND (([Forms]![F_次機種切替サポート画面]![cbo_品番]) Is Null)) OR (((T_NC配列統合.[Part Name]) Like [Forms]![F_次機種切替サポート画面]![cbo_品番] & "*") AND (([Forms]![F_次機種切替サポート画面]![cbo_機種]) Is Null) AND (([Forms]![F_次機種切替サポート画面]![cbo_ZNo]) Is Null) AND (([Forms]![F_次機種切替サポート画面]![cbo_品番]) Is Not Null)) OR (((T_NC配列統合.機種)=[Forms]![F_次機種切替サポート画面]![cbo_機種]) AND ((T_NC配列統合.[Z No#])=[Forms]![F_次機種切替サポート画面]![cbo_ZNo]) AND (([Forms]![F_次機種切替サポート画面]![cbo_機種]) Is Not Null) AND (([Forms]![F_次機種切替サポート画面]![cbo_ZNo]) Is Not Null) AND (([Forms]![F_次機種切替サポート画面]![cbo_品番]) Is Null)) OR (((T_NC配列統合.[Z No#])=[Forms]![F_次機種切替サポート画面]![cbo_ZNo]) AND (([Forms]![F_次機種切替サポート画面]![cbo_機種]) Is Null) AND (([Forms]![F_次機種切替サポート画面]![cbo_ZNo]) Is Not Null) AND (([Forms]![F_次機種切替サポート画面]![cbo_品番]) Is Null)) OR (((T_NC配列統合.機種)=[Forms]![F_次機種切替サポート画面]![cbo_機種]) AND (([Forms]![F_次機種切替サポート画面]![cbo_機種]) Is Not Null) AND (([Forms]![F_次機種切替サポート画面]![cbo_ZNo]) Is Null) AND (([Forms]![F_次機種切替サポート画面]![cbo_品番]) Is Null)) OR ((([Forms]![F_次機種切替サポート画面]![cbo_機種]) Is Null) AND (([Forms]![F_次機種切替サポート画面]![cbo_ZNo]) Is Null) AND (([Forms]![F_次機種切替サポート画面]![cbo_品番]) Is Null));

回答
投稿日時: 17/03/21 08:25:03
投稿者: hatena
投稿者のウェブサイトに移動

ぼーぼー さんの引用:
バーコードリーダーでもコンボボックスに部品の品番を入力しようと
思っておりまして、バーコードで読み込まれる頭の文字で"3N1"という表示が
入ってしまうので、これを除いて検索するようにしたいのです。

バーコードリーダーで読み込んだ値をコンボボックスへ代入したあと、
または検索する前に、下記のVBAを実行して、先頭の"3N1"を削除すればどうでしょう。
 
If Me.cbo_品番 Like "3N1*" Then
    Me.cbo_品番 = Mid(Me.cbo_品番,4)
End If

 
あるいは、抽出条件を
 
Like IIf([Forms]![F_次機種切替サポート画面]![cbo_品番] Like "3N1*",Mid([Forms]![F_次機種切替サポート画面]![cbo_品番],4),[Forms]![F_次機種切替サポート画面]![cbo_品番]) & "*"

投稿日時: 17/03/21 21:50:25
投稿者: ぼーぼー

hatena様
 
 お世話になります。
 なるほど、そういうやり方があるのですね。
 いろいろと勉強になります。
 
 早速実施してみます。
 どうもありがとうございました。
 助かりました。