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

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

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

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

Q&A

1回答

1757閲覧

Access2016 先頭に0がつくフィールドのパラメータークエリでの抽出方法について

0531

総合スコア15

Access

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

0グッド

0クリップ

投稿2021/08/05 01:53

編集2021/08/05 02:59

Access2016のパラメータークエリで部課CDというフィールドをパラメータークエリで抽出したいと思いますが、クエリを開いたときに「パラメーターの入力:部課CDの入力」で部課CDを入力する際にex)010111と入力してOKをクリックすると「式が正しく入力せれていないか、複雑すぎるために評価できません。例えば数式に複雑な要素が多すぎます。変数に式の一部を割り当て、式を簡単にしてください」というエラーメッセージが表示されます。
部課CDの先頭は必ず0から始まる6桁の数字です。どうすれば抽出できますでしょうか?教えていただけると助かります。よろしくお願いいたします。

修正
データ型は数値型になります。 コンボボックスで部課CDを一覧から選択するとほかのフィールドも入力されるように設定しています。 クエリのSQLはこんなかんじでよろしいでしょうか? PARAMETERS 部課CDの入力 Text ( 255 ); SELECT [社内(車番検索)].通しNo, [社内(車番検索)].部課CD, [社内(車番検索)].部課, [社内(車番検索)].所属, [社内(車番検索)].車番, [社内(車番検索)].車名, [社内(車番検索)].[ナンバー], [社内(車番検索)].初年度日付, [社内(車番検索)].[メーカー], [社内(車番検索)].電池型式, [社内(車番検索)].電池品番, [社内(車番検索)].製造番号, [社内(車番検索)].製造年, [社内(車番検索)].製造月, [社内(車番検索)].電池容量, [社内(車番検索)].[ハンガー], [社内(車番検索)].補水装置 FROM [社内(車番検索)] WHERE ((([社内(車番検索)].部課CD)=[部課CDの入力]));
社内(車番検索)はテーブル名になります。
よろしくお願いいたします。

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

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

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

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

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

hatena19

2021/08/05 02:23

部課CDフィールドのデータ型は何でしょうか。(数値型orテキスト型) パラメータークエリのSQLをコピーして質問に張り付けてください。
0531

2021/08/05 02:36

データ型は数値型になります。 コンボボックスで部課CDを一覧から選択するとほかのフィールドも入力されるように設定しています。 クエリのSQLはこんなかんじでよろしいでしょうか? PARAMETERS 部課CDの入力 Text ( 255 ); SELECT [社内(車番検索)].通しNo, [社内(車番検索)].部課CD, [社内(車番検索)].部課, [社内(車番検索)].所属, [社内(車番検索)].車番, [社内(車番検索)].車名, [社内(車番検索)].[ナンバー], [社内(車番検索)].初年度日付, [社内(車番検索)].[メーカー], [社内(車番検索)].電池型式, [社内(車番検索)].電池品番, [社内(車番検索)].製造番号, [社内(車番検索)].製造年, [社内(車番検索)].製造月, [社内(車番検索)].電池容量, [社内(車番検索)].[ハンガー], [社内(車番検索)].補水装置 FROM [社内(車番検索)] WHERE ((([社内(車番検索)].部課CD)=[部課CDの入力])); よろしくお願いします。
sazi

2021/08/05 02:55

質問は編集できますので、コメントではなく質問を修正して下さい。 また、「社内(車番検索)」はテーブルではなくクエリーでは無いですか? クエリーの場合、その内容も質問に追記して下さい。
0531

2021/08/05 03:00

ご迷惑おかけして申し訳ございません。 質問欄に記入しました。 よろしくお願いします。
sazi

2021/08/05 03:10 編集

SQLは「```」で括って下さい。 クエリーを単独で実行してもエラーが出ますか? 手元で同じテーブルを作成して、クエリーを実行してもエラーは出ません。 上記のクエリーはフォームと連結(例えばレコードソースで指定しているなど)していませんか?
0531

2021/08/05 04:47

パラメーターを入力せずにそのまま実行した場合はエラーはでませんが、なにも表示されません。 テスト段階なので連結させてないですが、うまく表示できるようになったらフォームと連結させる予定です。
guest

回答1

0

部課CDフィールドが数値型なら、パラメータのデータ型も数値型にそろえる必要があります。(現状はテキスト型になってます。)

sql

1PARAMETERS 部課CDの入力 Text ( 255 );

上記の部分を下記に修正すればいいでしょう。

sql

1PARAMETERS 部課CDの入力 Long;

投稿2021/08/05 03:35

hatena19

総合スコア33715

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

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

0531

2021/08/05 04:14

回答ありがとうございます。 変更してみたところ、エラーはでなくなりましたが、該当レコードがあるのに表示されませんでした。 どうすればよいでしょうか?
hatena19

2021/08/05 05:24

当方で作成したサンプルでは問題なく表示されます。 [社内(車番検索)] に間違いなく該当データは存在しますか。
hatena19

2021/08/05 05:31

試しに下記のSQLで該当レコードは表示されますか。 SELECT [社内(車番検索)].* FROM [社内(車番検索)] WHERE [社内(車番検索)].部課CD=10111; 表示されないなら該当レコードはないということです。
0531

2021/08/05 23:45

試してみましたが、レコードは表示されませんでした。 元のテーブルを見たところ部課CDフィールドには4件010111がありました 社内(車番検索)テーブルの部課CDのフィールドはこんなかんじになっています。 部課CD 040221 040221 010111 040221 040221 040221 010111 040221 010111 040221 040221 010511 040221 010111
hatena19

2021/08/06 01:52 編集

確認ですが、部課CDフィールドのデータ型は間違いなく数値型ですか。 また、部課CDフィールドの書式プロパティの設定はどうなってますか。 000000 と設定されてますか。 [社内(車番検索)]はテーブルですか。それともクエリですか。クエリなら、そのSQLも質問に追記してください。
0531

2021/08/06 02:24

部課CDのデータ型は数値型です。 はじめは短いテキストで設定していましたが、ルックアップウィザードで他テーブルの部課CDというフィールドを一覧から値を選択できるように設定したため数値型に自動で変更されました。 部課CDの書式のプロパティは設定していなかったため000000と設定しクエリで再度試したところうまくいきませんでした。 社内(車番検索)はテーブルになります。 よろしくお願いします。
hatena19

2021/08/06 08:20 編集

フィールドのルックアップが設定されているのですね。 そのルックアップの設定を外して、書式プロパティの設定も外したときに、どのような表示になりますか。 ルックアップや書式が設定されていると、実際に格納されている値とは別の表示になりますので、まずはそれを外してどのような値が格納されているのか確認してください。 例えば数値型の場合、010111 というような値にはなりません。
0531

2021/08/16 01:07

長期連休で返信が遅くなってしまい申し訳ございません。 なるほど、そういうことでしたか。 ルックアップの設定を変更し、短いテキストに変更しました。 部課CD(車番)テーブルの部課CDフィールドの値を確認したところ以下のように表示されました。 部課CD 040221 040221 010111 040221 040221 040221 010111 040221 010111 040221 040221 010511 040221 020111 020111 よろしくお願いいたします。
hatena19

2021/08/16 02:07

テーブルの「部課CD」フィールドの設定を下記のようにしてください。 データ型 数値型 ルックアップ テキストボックス 書式 なにも設定しない(空欄のまま) これで、実際に格納されている値と表示が一致するようになります。 この状態でどのように表示されますか。 40221 というように表示されるはずです。 パラメータに 40221 と入力すれば該当レコードが表示されるはずです。 ルックアップや書式プロパティは便利な機能なのですが、 設定すると格納されている値と表示が一致しないことがありますので、 テーブルでは設定せずに、表示を変更したい場合はフォームやレポート上で設定すると 紛れがないと思います。
0531

2021/08/16 04:18

回答ありがとうございます。 上記のように設定しましたところテーブルの部課CDフィールドの値が、040221→408のように変わってしましました。 部課CDのフィールドを1つテストで40221に変えてパラメータークエリで試したところうまく表示できましたが、パラメータークエリで040221と入力して表示されるようにすることは可能でしょうか? 現在は入力専用のフォームと入力したレコード達を修正する修正専用のフォームの2つがあります。 理想は修正専用のフォームを開いたときにパラメーターが表示され部課CDを入力すると該当のレコードが表示されるようにしたいです。 わかりづらいかもしれませんがこのようなかんじです。 よろしくお願いいたします。
hatena19

2021/08/16 06:19

> 上記のように設定しましたところテーブルの部課CDフィールドの値が、040221→408のように変わってしましました。 040221 が 40211 とならずに、408 となったということですか?
0531

2021/08/16 07:00

そういうことです。 以下のようになりました。 部課CD 398 398 1 398 398 398 1 398 1 398 398 1 398 1 398 423 411
hatena19

2021/08/16 07:46

部課のマスターテーブルがあると思いますが、そのテーブルのフィールド構成とデータ例を提示してもらえますか。
0531

2021/08/17 00:56

テーブル名が「社内(車番・車名一覧)」で部課No(オートナンバー)、部課CD(短いテキスト)、部課(短いテキスト)、所属(短いテキスト)、車番(短いテキスト)、車名(短いテキスト)、ナンバー(短いテキスト)、初年度日付(日付/時刻型)になります。 データ例は、 部課No  部課CD  部課   所属      車番   車名  ナンバー  初年度日付 1     010111 一般管理  役員       総1   LS  10000   2021年2月24日 2     010111 一般管理  役員     総10  クラウン 500    2021年2月10日 398    040221  物流  ワイパ製品課   物E-01 くるる  100    2021年6月10日 になります。 フォームで部課CDを選択すると部課、所属、車番、車名、ナンバー、初年度日付の値もフィールドに入るようになってます。(複数のコンボボックス)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問