• ベストアンサー

ACCESSでの桁数を指定して数値を抜き出し、カンマ区切り表示にする方法

30246kikuの回答

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.4

#2です > 構文エラー:クエリ式に演算子がありません(構文エラー) このメッセージで一緒に表示されていた文字列は何でしたか。 クエリ式 '・・・・・・・・・・'の 構文エラー:演算子がありません。 の ・・・・・・・・・ 部分になります。 良く間違うのは、( ) や、スペースを全角にしてしまうとか、、、(半角で記述します) で、そのメッセージを閉じた時、どの部分が反転表示されていますか。 その近辺でエラーとなっています。(反転表示されない時もあります) ※ 実現するための方法、やり方は1つということはありません。 複数フィールドに対して同じ処理をしたいということだったので、今後の修正/変更のしやすさからユーザ定義関数を使う方法を提示させていただきました。 現在は7文字ですが、5文字、10文字に変更する時は1箇所変更することで対処できます。 この変更くらいでは、不具合を作りこむことはまずないと思います。 (今後変更なければ、余計なお世話ということに) 処理を確かにするためには、フィールド内の文字の桁が7に満たない時の処理を盛り込むくらいでしょうか。 (それはない、であれば今のままでも)   Dim i As Integer, j As Integer   Const MaxMojiLen As Integer = 7   On Error Resume Next   sRet = ""   If (Not IsNull(vQ)) Then     j = Len(vQ)     If (j > MaxMojiLen) Then j = MaxMojiLen     For i = 1 To j とか、 ※ 実物を見ることができないので、メッセージに表示される内容、メッセージを閉じた後で反転表示される近辺など、少しあたってみてください。 どうしてもダメであれば、そのSQLビューの内容をそのまま提示してください。 (わけあって提示できない内容であれば、一度メモ帳にコピーし、フィールド名/テーブル名を置換機能をつかって置き換えたものを提示してください) (自分で文字消したり追加したりしないでください) (提示される場合は、テーブルのサンプルも5~10行程度欲しいです)

KTN1123
質問者

補足

30246kiku 様 早々のご回答をありがとうございます。 大変分かりやすいご説明をいただき恐縮でございます。 ご指導いただきました「構文エラー」については、テーブル名とフィールド名の記述に誤りがあったようで、それを修正することで解決いたしました。 今回教えていただきました「文字の桁が7に満たない時の処理」の SQL文は、前回教えて頂いたSQL文の後ろに追加でよろしいでしょうか? 追加するとコンパイルエラーが発生し、以下のエラーメッセージが 表示されます。 「同じ適用範囲内で宣言が重複しています」 また、今回のSQLだけを記述した場合は、結果が全て「#エラー」になります。 原因は、私の記述方法にあると思うのですが、アドバイスをいただけると幸いでございます。 お手数お掛け致しますが、宜しくお願い致します。

関連するQ&A

  • 数値データの一括変換方法について

    「EXCEL」または「ACCESS」でのデータ変換について質問です。 下記のような「0」と「1」からなる10桁の数値があり、 それを特定のルールに従い一括変換する方法があれば教えて下さい。 例(1))0000000000 →0 例(2))1111111111 →1|2|3|4|5|6|7|8|9|10 例(3))1010110000 →1|3|5|6 例(4))0000110010 →5|6|9 例(5))0000000001 →10 10桁の数値の左側から順に「1」になっていれば、その桁の数値に置き換える。(1桁目は「1」、3桁目は「3」、10桁目は「10」) また置き換えた数値が2個以上ある場合は、「|」の記号で区切る。 上記のような数値データが数万個あり、それらを一括で変換できる方法があれば教えて頂けると助かります。 お忙しい所 大変恐縮ではございますが、何卒宜しくお願い致します。    

  • 数値データの最後尾の値から判定し一括変換する

    「EXCEL」または「ACCESS」でのデータ変換について質問です。 下記のような「0」と「1」からなる10桁の数値があり、 値の末尾からみて数値を以下のように括変換する方法があれば教えて下さい。 (本来は10桁の数値なのですが、EXCELの仕様で先頭の「0」は非表示) 例(1)0      →0 例(2)1111111111 →1|2|3|4|5|6|7|8|9|10 例(3)1010110000 →1|3|5|6 例(4)110010   →5|6|9 例(5)1000000010 →1|9 例(6)1      →10 10桁の数値の左側から順に「1」になっていれば、その桁の数値に置き換える。(末尾1桁目は「10」、末尾3桁目は「7」、末尾10桁目は「1」) また置き換えた数値が2個以上ある場合は、「|」の記号で区切る。 上記のような数値データが数万個あり、それらを一括で変換できる方法があれば教えて頂けると助かります。 お忙しい所 大変恐縮ではございますが、何卒宜しくお願い致します。

  • accessで数値の表示桁数を指定する方法

    access2007使用です。 テーブルでは数値の指定が出来ますが、それによって計算結果を出すクエリを作ったところ、小数点で表示されてしまいます。 小数点2桁で全て表示を揃えたいのですが、どこの画面でどのような設定をしたらいいのか分かりません。 その設定の画面と設定方法を教えてください。

  • Accessでテキスト型→数値型への変換方法

    Access2000を使用しており、クエリを作成しています。 テーブルから[回答]というフィールドをひっぱってきています。 フィールド[回答]にて、最初の3文字に対応時間を入れており、 Mid関数にて対応時間を抽出しました。 対応時間:Mid([回答],1,3) しかし、Mid関数でとったフィールドは文字列として認識されています。(Ex:001など) この文字列を数値に変換する関数、又は方法などお教えくださいませ。 よろしくお願い致します。 以下にイメージ図を記載致します。 ================================= 回答            対応時間 001 ●●●~        001 ================================= (対応時間を数値で扱えるようにしたい、ということです)

  • ACCESSでの桁数のあわせ方

    EXCELで (1)ERPソフトからの抽出データと (2)手入力で管理しているデータ をACCESSで取り込んで、加工をします。 それぞれ入力方法が (1)のERPからのデータは必ず10桁(0000012345とか0000000123)で (2)は有効分(12345とか123) となっていますのでACCESSへ、インポートする際に 桁数が異なってしまい、クエリーで結び付けられません。 そこで、(2)のデータを(1)のように必ず10桁にして 桁数あわせに0が入るといった方法、つまり12345なら0000012345、123なら0000000123と変換させる 方法はありませんでしょうか。 出来れば、(2)をACESSで取り込んでからACCESSで処理をしたいです。

  • アクセスの数値入力

    アクセス2002で作製したテーブルの フィールドに受注コードを入力したいの ですが、数値が思うように入力できませ ん。 5桁で00001や00234などと入 力したいのですが、1や234と表示さ れてしまいます。 解決方法をご存知の方アドバイスをお願 いいたします。

  • アクセスで桁数を増やしたい

    アクセスで桁数を増やしたい 従業員のデータベースをアクセスで作成しているのですが、 諸般の事情と従業員の出入りが激しいので桁数を増やしたいのですが、 方法がわかりませんのでお願いします 今現在は、 従業員の個人コードを10001の5桁で管理しておりますが、 それを、7桁にしたいのです。 最初の1は、部署を表し、0001は、個人コードです。 部署 1を11と2桁にし 個人コード0001の4桁を00001の5桁にしたいのです たとえば                   旧個人コード  新個人コード 最初の1を11に  10001   1100001    1を11に  12222   1102222       2を12に  23333   1203333    3を13に  32222   1302222    4を21に  43333   2103333    5を22に  51234   2201234    6を31に  68888   3108888    7を41に  70001   4100001したいのです このフィールドのデータ型は数値型で主インデックスです OSはXP ソフトはオフィス2003です。

  • 【Access97】指定した桁数で区切りたい

    txtファイルをAccessへインポートした後、項目毎に区切るためにMid関数を使用していますが、全角文字を2桁として認識してくれず区切り位置がおかしくなってしまいます。 同様の作業をExcelでやっても同じでした(添付画像参照、データは一部項目のみ抜粋)。 項目数=30個、桁数=一行につき255桁(固定)、1つのtxtファイル内のデータ行=200行以上、そのtxtファイル数が数十個あるので毎回Excelの『区切り位置指定ウィザード』を使用するのも大変です。 何とかAccessの更新クエリーで作業したいのですが、指定した位置で区切る方法、もしくは全角文字を2桁として認識させる方法はありませんか?

  • エクセルで桁数の表示について

    エクセルで入力した数字を6桁の表記変換にする事ってできますか? 例  1   →000001  123  →000123  123456→123456 と言う形に変換したいのですが。 目的は、VLOOKUP検索で検索する値がすべて6桁の 表記になっているので、6桁の文字列にしないと いけないからなんですが。 とりあえず、下記に示すif関数で変換してるんですが もっと簡単なやり方ってないものですか? 宜しくお願いいたします。 現在している変換方法 =IF(C2<10,"00000"&C2,IF(C2<100,"0000"&C2,IF(C2<1000,"000"&C2,IF(C2<10000,"00"&C2,IF(C2<100000,"0"&C2,C2))))) (C2セルに数値を入力)

  • Access フィールド内の値で、右端から5桁目の値だけを抽出する方法について

    Accessのフィールド内にある半角英数字(10桁~20桁)の右端から5桁目(または左端から5桁目)だけを抽出する方法を教えて下さい。 以下のように 各フィールド内に値が入力されています。 入力されている桁数は10桁以上20桁未満です。(全て半角) ◆元データ(レコードが10万件以上ある)  フィールド1    フィールド2     フィールド3 (1) 12345678910    11aa22bb33cc44dd55  1010101010101010 (2) 9876540000     aaaaaabbbbbb1111    11111111111111 ◆右端から5桁目だけを抽出する  フィールド1    フィールド2     フィールド3 (1)  7          4          0 (2)  4           1           b よろしくお願い致します。