更新クエリの使い方

このQ&Aのポイント
  • 更新クエリの使い方について助言いただけますか。
  • 著者フィールドのうち、カタカナ判別関数にあてはまるものについて区分フィールドに「カタカナ」と入力するのは面倒でしょうか。
  • CheckKatakanaVBSというvbscriptの関数を使用してカタカナ判別を行う。
回答を見る
  • ベストアンサー

更新クエリの使い方

accessの更新クエリの使い方について助言いただけますか。下記はOKWEBで教えていただいたカタカナ判別の関数なのですが、「著者」というフィールドのうち、この関数にあてはまるものについて「区分」のフィールドに「カタカナ」と入力するのは面倒でしょうか。下記はvbscriptの関数です。 Function CheckKatakanaVBS( strMoji )   Dim objChkKatakana   Set objChkKatakana = New RegExp   objChkKatakana.Pattern = "[ア-ン]"   CheckKatakanaVBS = objChkKatakana.Test( strMoji ) End Function

質問者が選んだベストアンサー

  • ベストアンサー
  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

多分、objChkKatakana.Test(...)はTrue or False を返すんでしょうけど、そうだと仮定して CheckKatakanaVBSの戻り値をstrMoji or "カタカナ" としてあげます。 次に、クエリーの中でQBEグリッドの一番上のセル (「フィールド:」欄)に「objChkKatakana.Test([項目名])」と書けばお望みの動作になるかと、、、 # あくまで仮定の元ですが、、、

関連するQ&A

  • カタカナ判別

    下記は他のサイトで見たカタカナ判別の関数です。 javascriptはさっぱりまだわからないので、これをvbscriptの関数に変えたいのですが・・。 function checkKatakana(mojiretsu){ for(i=0; i<mojiretsu.length; i++){ if(mojiretsu.charAt(i) < 'ア' || mojiretsu.charAt(i) > 'ン'){ return false; } } return true; }

  • Accessクエリの抽出条件に関するご質問

    Accessクエリの抽出方法に関し、以下のようなことはできるのでしょうか? 特定のフィールド内にカタカナ文字列のみのレコードがあった場合、別のフィールド内の対応するレコードの中身を検索し、ヒットした場合の横の文字列(左横、右横どちらか)がカタカナだった場合のみ抽出させたい。 (例) テーブル名:TEST フィールド:「No」、「文字列」、「例文」 No   文字列          例文 1   ああああ      あいああああお。 2   あアああ      あいあアああお。        3   アアアア       あイアアアアお。 4   アああア       あイアああアお。 5   イイイイ        イイイイアアお。 6   漢字漢字      あイ漢字漢字お。 7   ウウウウ      あウウウウ字お。 <抽出結果> No   文字列          例文       3   アアアア       あイアアアアお。 5   イイイイ        イイイイアアお。 ・No3は、文字列がカタカナのみ、例文中にヒットし、ヒットした左の文字がカタカナ「イ」である。 ・No5は、文字列がカタカナのみ、例文中にヒットし、ヒットした右の文字がカタカナ「ア」である。 ※No1,2,4,6はそもそも文字列がカタカナのみじゃない為、抽出しない。 ※No7は、文字列がカタカナのみ、例文中にヒットしたが、ヒットした左右の文字列がカタカナじゃないため抽出しない。 非常にわかりづらくてすいません。 こんな複雑なことができるかわかりませんが、ご教示のほどよろしくお願いいたします。

  • 更新クエリ 複数の抽出条件の書き方

    いつもアドバイスありがとうございます。 表題の通り、下記コード(一部)で更新クエリをかけてますが、 抽出条件として、「FileNameと区分が空白の場合」という抽出条件を付け加えたいです。 色々調べてみたのですが、 UPDATE句の続きに、「& "where File Name = "" & 区分 = "" "」 をつけたのですが、これをつけると何も更新されなくなってしまいます。 何かアドバイスがあればお願いします。 Name1 = TName & ".csv" Name2 = Left(TName, Len(TName) - 5) ret = MsgBox(Name1 & "をFileName ・ " & Name2 & "を区分に追加しますか?", vbYesNo + vbQuestion, "インポート確認") Dim sql1 As String sql1 = "Update T_Mas SET FileName = '" & Name1 & "',区分 = '" & Name2 & "'" DoCmd.RunSQL sql1

  • Accessのクエリ

    下記のようなテーブルがあります フィールド 利用者 利用日 ア支店  イ支店  ウ支店         Aさん  1/1 たまご   りんご  みかん         Bさん  1/3 りんご   トマト   たまご         Cさん  1/3 ねぎ    たまご  いも クエリ等で、各支店のいずれかで「たまご」を購入した利用者を抽出したい場合 どのように設定したらよいでしょうか? もちろん、各支店のいずれでも「たまご」を購入していない利用者は抽出されないように。 クエリで、ア支店の抽出条件に「たまご」と入れ、イ支店とウ支店にor条件(またはの所) を入れるとア支店の条件が優先されてしまいます。 Access勉強中のものです。ご教授お願いします。  

  • Access2010更新クエリについて

    こんにちは。Access2010を使用し更新クエリをかけたいと思います。 テーブル名、TABLE。対象フィールド名「ID」となります。 やりたいことは、IDには文字列が入っています。その文字列を下記の ルールによって更新をかけたいと思っています。 文字列が7桁以下なら頭に0を付けて8桁にする。 文字列が9桁以上12桁以下なら頭に0を付けて13桁にする。 文字列が8桁なら何もしない(そのまま)。 文字列が13桁なら何もしない(そのまま)。 14桁以上であるならば何もしない(そのまま)。 下記の関数を作り、「レコードの更新」エリアに埋め込みアップデートをしようとすると 意図した更新になりません。 IIF(LEN(TRIM([id]))<=8,FORMAT(TRIM([id]),"00000000"),FORMAT(TRIM([id]),"0000000000000")) どのような関数を組めば、良いかお教え頂けませんでしょうか? よろしくお願い致します。

  • ACCESSの抽出条件更新方法について

    アクセス素人です。 お世話になります。 質問番号:2664266で 複数のクエリーの条件を一括で変更する場合 モジュールで関数を作ることで下記のように解答されています。 >クエリーの条件に >=GetWhere() >とでもしておいて、 >モジュールのほうで、 >Public Function GetWhere() As String >Dim strWhere As String >strWhere = "#2007/1/1#" >GetWhere = strWhere >End Function 上記は日付についてでありますが クエリーの条件が数値型で、たとえば事業所コードを 複数選択したいときは"#2007/1/1#"の所は どのように記述すればいいのでしょうか。 クエリーに直に条件を入れるときのように strWhere = "1010" or "2010" or "3010" と記述してみましたがうまくいきません。 ご教授お願いします。

  • アクセスのクエリでSplit関数は使えないのですか

    レコードにaaa/bbb/cccと入っていて、 クエリで SELECT Split([テーブル1]![フィールド1],"/") AS test FROM テーブル1; とすると、 式に未定義関数 <関数名> があります。(Error 3085) になります。 VBAでやるとしたら Sub test() Dim str As String str = "aaa/bbb/ccc" Debug.Print Split(str, "/")(1) End Sub のような事がしたいのですが クエリでは無理なのでしょうか?

  • 抽出クエリについて

    <環境> SQL Server 2005 クエリについて教えてください。 下記の<TBL>から<SQL1>を実行し直近の収納日を取得します。(☆印のデータ) <SQL1> SELECT 個人番号, Max(収納日) FROM TBL GROUP BY 個人番号 この時、<SQL1>で取得したレコードの"年月"、"区分"フィールドの値を取得するには どうすればよいでしょうか? LOOPで取得するのではなく、1本のSQL文で取得できないかと思っています。 どなたかご教授お願いします。 <TBL> 個人番号  年月    収納日   区分 00000001  2009/04  2009/04/01  1 00000001  2009/05  2009/05/01  2 00000001  2009/06  2009/06/01  3 ☆ 00000002  2009/04  2009/04/01  4 00000002  2009/05  2009/05/01  5 00000002  2009/06  2009/06/01  6 00000002  2009/07  2009/07/01  7 ☆

  • MSアクセス2000で英数の大文字・小文字とかな文字のカタカナ・ひらがなを区別して扱いたい

    クエリーやレホートでテキスト型フィールドに対してグルーピングなどを行う際に英数の大文字・小文字とかな文字のカタカナ・ひらがなを区別して扱いたいのですが、アクセスでは区別できないのでしょうか?オプションやプロパティなどを見ても見つかりません。 設定で区別ができないようなら、区分用のフィールドをつくって区別をしたいと考えています。その際、その区分を自動的に入力したいのです。 たとえば、Aフィールド(テキスト型)のデータを自動的に検査して(大文字・小文字やカタカナ・ひらがなに区別したい)、Bフィールドに自動的にそれを入力する方法などはありますでしょうか?

  • ひらがな、カタカナは同じ?

    アクセス2003でクエリ上にiif関数を使っています。 iif関数を使って、もしAフィールドが「あいうえお」なら○、違うなら×と入れたところ、「アイウエオ」も○となってしまいます。 ひらがなもカタカナも同じとみなされるのでしょうか? どうすれば、ひらがなのみの「あいうえお」が○となるのでしょうか? よろしくお願いします。

専門家に質問してみよう