• ベストアンサー

ACCESS:レコードのデータをフィールドに移動2

↓ここで質問をさせていただき、nicotinismさんより回答をいただき、いったんは解決しましたが、追加の質問が出てきました。 http://okwave.jp/qa/q7611318.html nicotinismさんの回答では >品番はテキスト型ですよね? と問われていますので、品番がテキスト、重量が数値データを前提に回答いただけたと思いますが、それぞれテキスト型の時はどう変えたらいいのでしょうか。 両方テキスト型のデータでやると「抽出条件で型が一致しません」とエラーになります。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

TRANSFORM First(重量) SELECT 品番 FROM T1 GROUP BY 品番 ORDER BY 品番 PIVOT '重量' & DCount("*","T1" ,"品番='" & 品番 & "' And 重量 <= '" & 重量 & "'"); にて。

ticktak
質問者

お礼

感動です!ありがとうございました。

その他の回答 (1)

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.2

重量がテキスト型の場合の書き方は No.1 さんの回答のとおりです。 ただし、大小の比較に関しては、 文字列の比較になりますから 正しい結果は得られません。 文字列では '9' は '10' より大きいのです。 数値として評価しなければならないデータなら 数値型に変更することを強くお勧めします。

関連するQ&A

  • ACCESS:レコードのデータをフィールドに移動3

    以前nicotinismさんから下の質問に対して、回答をいただきました。 http://okwave.jp/qa/q7611318.html その際、昇順にしない場合は”番号”を追加しなければいけないとのことでしたが、どのようにクエリに組み込めばよいか教えていただけませんか。 ************* 品番/重量1/ 重量2/ 重量3 001/  95/  94 002/  140/  143/  142 のように並び順を特定するためには 番号/品番/重量 1/001/95 2/001/94 1/002/140 3/002/143 4/002/142 のような品番ごとの順位を決定するもの([番号])が必要です。

  • 抽出したデータの重量を足したい

    VBA初心者です。 2つのデータ表から品番データを抽出し、データの重量も足したいです。 データ表(A)  品番 B1 10 B2 20 B3 30  データ表(B)  品番          重量 B8 10       C8 1000  B9 12       C9 2300 B10 10      C10 2000 (B)から品番10を抽出し、データにすることはできましたが、同時に品番10の重量も足したいのです。 よろしくおねがいします!

  • 日付によるデータ抽出について

    日付によるデータ抽出について 環境: ACCESS2000 状況: メインフォーム(テキスト期間A、テキスト期間B、テキスト品番、検索ボタン)    サブフォーム(データシート)    管理テーブル( 品番  /  レンタル日  /  返却日)    ※管理テーブルは他テーブルのコピー用 やりたい事: 簡潔にいうと期間と品番による抽出。       但し、テキスト期間Bが空白の場合、テキスト期間A以降のデータ抽出。          テキスト期間Aが空白の場合、テキスト期間B以前のデータ抽出。       さらに、テキスト品番が空白の場合、期間のみでの抽出。       逆にテキスト期間A・Bが空白の場合、テキスト品番で抽出。(品番の履歴抽出) 1度コードを作ってはみたものの、エラーばかりでひどかったので 0から教えて頂けると有難いです。 お手数お掛けしますが、何卒宜しくお願い致します。

  • データの移動

    以前に同じような質問をされている方がいたので参考にしようと思いましたが、初心者のため理解できませんでした。誰か補足宜しくお願いします。 以前の質問内容はfusigi2さんが テーブルに入院患者.TBL と、退院患者.TBL があります。 入院患者.TBL の中に多数フィールドがあり、その中に フィールド「退院あり」 Yes/No 型があります。 本日終了時、yes のレコードだけ、退院患者.TBL に追加移動したいと思っています。 フオーム上で、コマンドボタンをクリックして、一発でやりたいのですが、マクロでの記述を教えてください。宜しくお願いします。 という内容で回答にadol37さんが 入院患者.TBLと退院患者.TBLが同じテーブルデザインである前提で話を進めます。 まず、入院患者.TBLを元に追加クエリーを作成します。 追加先は退院患者.TBLとし、抽出条件として「退院有り」フィールドがyes(true)のものとします。 次に削除クエリーを入院患者テーブルを元にして作成します。 抽出条件は最初の追加クエリーと同じで、削除フィールドは全フィールドとなります。 マクロに「追加クエリー」「削除クエリー」の順にクエリーを開くように登録すればOKです。 気を付けなければならいないのは、削除するとデータは完全に消えますので、くれぐれもクエリー起動の順番を間違えないことです。 本来であれば、移動データをバックアップしながらコピーするか、入院・退院でテーブルを分けるのではなく、単純に入退院サインというフィールドで度力を判断させる方が、スマートなような気がします。 という内容なのですが追加クエリーとか削除クエリーとかはどういう風に作ったら良いのかがわかりません。クエリーでデータの抽出のやり方はわかるのですが、自動的にデータが追加できたり削除できたり作れるのですか? 超初心者のためすいません。

  • アクセス:インポートできないデータ

    色々な型のデータが入ったエクセルデータをアクセスにインポートした時に出るエラーに関してです。 数値と文字列が含まれているためにアクセスのデータ型を”テキスト型”(フィールドサイズ255 書式@)にしております。しかしインポートすると文字列のデータがはじかれます。 アクセス側をテキスト型に設定すればどんなデータが来ても受け入れ可能だと思っていました。 数値、文字列両方のデータがインポートできる設定を教えてください。

  • Access クエリについて

    初めまして。Accessのクエリについての質問です。 Access2003です。 検索フォームを作り、その検索フォームにテキストボックスを2つ作り、そのテキストボックスに検索したい言葉を入力し、コマンドボタンで作った検索ボタンを押すとマクロでフィルタの実行がされデータを抽出できるというものを作りました。フィルタには選択クエリを使用しています。抽出したい2つのフィールドの抽出条件に[forms]![フォーム名]![テキストボックス名]を入れています。 今は2つのテキストボックス両方に言葉を入力するとデータが抽出されますが、これを1つのテキストボックスだけ入力でもデータが抽出されるようにしたいのですが可能ですか?今は一つのテキストボックスに言葉を入力しもう一つを空欄にすると何もデータが出てこない状態です。 2つのテキストボックスをテキスト(1)とテキスト(2)とすると 以下のようにデータを抽出したいです。 ・テキスト(1)とテキスト(2)に入力 →両方の言葉が一致したデータ ・テキスト(1)だけに入力  →テキスト(1)の言葉だけ一致したデータ ・テキスト(2)だけに入力  →テキスト(2)の言葉だけ一致したデータ 初歩的な質問でしたら申し訳ないです。どうかお願いします。

  • 日付によるデータ抽出について

    日付によるデータ抽出について 環境: ACCESS2000 状況: メインフォーム(テキスト期間A、テキスト期間B、テキスト品番、検索ボタン)    サブフォーム(データシート)    管理テーブル( 品番  /  レンタル日  /  返却日)    ※管理テーブルは他テーブルのコピー用 やりたい事: 簡潔にいうと期間と品番による抽出。       但し、テキスト期間Bが空白の場合、テキスト期間A以降のデータ抽出。          テキスト期間Aが空白の場合、テキスト期間B以前のデータ抽出。       さらに、テキスト品番が空白の場合、期間のみでの抽出。    コード: Private Sub 検索ボタン_Click()  Dim db As DAO.Database   Set db = CurrentDb   db.Execute "DELETE * FROM 管理テーブル"   db.Execute "INSERT INTO 管理テーブル SELECT * FROM 他テーブル"  Dim 抽出条件 As String   If IsNull(Me!テキスト期間A)=False And IsNull(Me!テキスト期間B)=True And IsNull(Me!テキスト品番)= True Then    抽出条件 = "[レンタル日] <= '" & Me!テキスト期間A & "'"   End If   If IsNull(Me!テキスト期間A)=True And IsNull(Me!テキスト期間B)=False And IsNull(Me!テキスト品番)= True Then    抽出条件 = "[レンタル日] >= '" & Me!テキスト期間B & "'"   End If   If IsNull(Me!テキスト期間A)=False And IsNull(Me!テキスト期間B)=False And IsNull(Me!テキスト品番)= True Then    抽出条件 = "[品番] <= '" & Me!テキスト品番 & "'"   End If   If IsNull(Me!テキスト期間A)=False And IsNull(Me!テキスト期間B)=True And IsNull(Me!テキスト品番)= False Then    抽出条件 = "[レンタル日] >= '" & Me!テキスト期間A & "'" And "[品番]='" & Me!テキスト品番 & "'"   End If   If IsNull(Me!テキスト期間A)=False And IsNull(Me!テキスト期間B)=False And IsNull(Me!テキスト品番)= False Then    抽出条件 = "[レンタル日] Between " $ Me!テキスト期間A & " & Me!テキスト期間B And "[品番] = '" & Me!テキスト品番 & "'"   End If Me!サブフォーム.Form.Filter = 抽出条件 ← 実行時エラー2465 指定した式で参照されている'サブフォーム'フィールドが見つかりません。 Me!サブフォーム.Form.FilterOn = True End Sub 上記エラーが出てしまうのですが、まだまだ未熟で どこが悪いかわからなくて困っております。 間違っていたりと上手くないコードだとは思いますが ご教授の程宜しくお願い致します。   

  • ACCESS:レコードのデータをフィールドに移動

    たとえば以下のようなテーブルにデータが入っているとします。 品番/重量 001/95 001/94 002/140 002/143 002/142 これを次のようにクエリでしたいのですがどうしたらよいでしょうか。 品番/重量1/重量2 001/95/94 002/140/143/142

  • レコードの検索・移動

    こんにちは。 先日、レコードの検索・移動で、お尋ねしたのですが、 やはり、解決できません。Q&Aで、"レコード" "検索"で調べましたが、 ヒットした53件の中には、ちょうどいいのがありませんでした。 もう一度、質問させていただきたいと思います。お願いします。Access2000です。 現在あるフォームを利用して、 フォームヘッダにテキストボックスを作成し、 その中に、[ID]の番号を入力したら、検索して、 その番号のレコードに移動し、欲を言えば、 その後に、[フィールド1]にカーソルが移動して欲しいのです。 [ID]のデータ型は、テーブルのデザインビューにて、 オートナンバー型でなく、数値型にしています。 フィールドサイズは、整数型。書式:数値、小数点以下桁数:0、 値要求:いいえ、インデックス:はい(重複なし)。です。 お願いできませんでしょうか?

  • オートナンバー型を抽出条件にするとき

    いつもお世話になります。 VB.NET2003+Access2000環境です。 あるテーブルにはオートナンバー型を使って新規発生データの管理番号を振っていますが、別のテーブルでその番号を見て手入力しているフィールドがあります。 SQLの抽出条件でこのオートナンバーと手入力したデータと一致したデータを抽出しようとやっているのですがうまくいきません。 オートナンバーのデータを参照して入力するほうのフィールドを数値型にしてもテキストにしてもいずれも「型が一致しない」というエラーが起こります。 こういう場合はどういう風な処理をするのが一般的なのでしょうか? よろしくお願いいたします。

専門家に質問してみよう