• 締切済み

【至急】Accessデータ検索について

すごく急いでいて困っています! csvデーターからインポートしたAccessのテーブルがあります。 そこに「個人ID」「テストNo」「解答1」「解答2」…と解答が続きます。 できればフォームで以下のことを指定して、一致しないデータが存在する場合には 「"個人ID" の "テストNo(○枚目)" がありません。」 というメッセージを表示したいです。 <ユーザーフォームで指定したいこと>  ・個人ID(出席者把握のため)  ・テストが何枚あるか(毎回枚数が違うため) csvのデータでは、 セルA1:個人ID「123」 セルB1:枚数「1(枚目)」 セルC1:1枚目の1問目の回答 以下続く という感じで、それをインポートしています。 ユーザーフォームでの「個人ID」の選択方法についても良いアドバイスがありましたらご教授下さい。 ※ID数は20~30くらいで、毎回全員いるとは限りません。 よろしくお願い致します。

みんなの回答

  • ky2605
  • ベストアンサー率100% (2/2)
回答No.1

データの前提を見ると、CSVのA1とB2のデータは、C1の数分、重複ありのデータになるかと思いますので、集計クエリを作って、それを元にフォーム化すれば良いのではないでしょうか? SELECT 個人ID, 枚数 FROM CSVテーブル GROUP BY 個人ID.枚数; とすれば、回答数によらず、個人と枚数の集計が出ると思いますが? さらに個人を絞り込んだり、枚数が正常かをチェックする方法は、私ならVBAを組み込んで行います。 フォームヘッダにボタンとテキストボックスを設置して、ボタンのクリック時のイベントに、 Me.RecordSource ="SELECT 個人ID, 枚数 FROM CSVテーブル GROUP BY 個人ID.枚数 HAVING 個人ID=" & テキスト1.Value & ";" としたら、テキストに入れたIDに絞り込みができると思います。 推察のデータでやってみただけなので、ハズしていたらすみません。

関連するQ&A

  • フォームでのデータ検索

    ACCESS 2000 OSはWin2000を使っています。 フォーム内にコード検索の枠とボタンを作成して、データを検索しています。 フォームには個人データが表示されており、検索枠に個人コード(例えば:00131)を入力して検索ボタンを押すとフィルタがかかるようになっています。 VBAのコードを書いていて、他のフォームで同様のことをするとうまくいくのですが、このフォームではどうしてもうまくいきません。 しかも個人コードではなく、もう一つ別のコードなどで検索をかけるとうまくいったりします。 どうしてこのような問題が発生するのでしょうか? そして、どうすれば解決できるのでしょうか? どなたか、ご教授お願いします。 下記にVBAコードも表示させておきます。 Private Sub 個人NO検索_bt_Click()  Me.Filter = "[個人NO] Like " & Me.[個人NO検索]  Me.FilterOn = True End Sub 個人NO:個人NOがあらかじめ表示されているテキストボックスです。 個人NO検索:検索したい個人NOを入力するところです。

  • AccessでCSVの数値データをインポート

    AccessでTransferTextを用いてCSVファイルのデータをインポートする際、CSVの最初の数行で勝手にデータの型を解釈されてしまい、小数点以下が省略されてしまうようです。毎回CSVファイルに数行付け足してから手動でインポートすればインポート出来るのかもしれませんが、業務量を考えると不可能です。TransferTextで小数を含むダミーのCSVをインポートしてから続けて欲しいデータをインポートして、その後ダミーのデータを削除するという方法も考えたのですが上手くいきませんでした。何か良い方法はございませんでしょうか。

  • ACCESS:97→2002のモジュールの変換エラーについて

    ACCESS97で作成したファイルをACCESS2002に変換したいのですが、 変換中にコンパイルエラー発生しましたとメッセージが表示されてしまいました。 ファイル自体は変換できておりエラーテーブルを見るとモジュールが変換エラーを起こしていました。そのモジュールを実行させるとやはりエラーが出て止まってしまいます。 ~モジュールの内容は~ テーブルを削除するために削除クエリーの実行(これはうまく動いてます。) フォームに入力されたパスのCSVファイルをインポートする。定義名:CSVインポート定義"インポート先:"CSVテーブル" (これがうまく動かないようです。実行させると「このファイルをインポートできません」とメッセージがでます。) 以下のものになります。 Option Compare Database Option Explicit '------------------------------------------------------------ ' CSVインポート ' '------------------------------------------------------------ Function CSVインポート() On Error GoTo CSVインポート_Err Dim parm1 As String parm1 = Forms!報告書作成!インポートパス & " " ' 入力データ削除query DoCmd.OpenQuery "全て削除クエリー", acNormal, acEdit ' インポート実施 DoCmd.TransferText acImportDelim, "CSVインポート定義", "CSVテーブル", parm1, False, "" CSVインポート_Exit: Exit Function CSVインポート_Err: MsgBox Error$ Resume CSVインポート_Exit End Function もし不足な点がありましたら補足させていただきます。 よろしくお願いします。

  • Access→csv カウント数メッセージ

    こんにちは Access2010を使用しています。 Accessからcsvファイルをエクスポートするシステムを作成中なのですが、 例えば、フォームのcsvエクスポート実行のマクロボタンをクリックすると「○○件のデータをエクスポートします。 よろしいですか?」みたいなメッセージが出たら幸いと思いまして。。。 現在は、フォームの実行ボタンをクリックすると、黙って指定したフォルダへのcsvエクスポートが完了してい ます。なので、データ数はcsvファイルを開くまで分かりません。 元になるクエリには[状況]というフィールドが[受注]のみという抽出条件なので、毎回データ数が違います。 何分、VBAが未習得でして。。。フォーム内の実行ボタンのプロパティシートの何処かに何か入れる 様なイメージなのかな?くらいしか分かりません。 出来れば、モジュール画面からの編集は避けたいです。 どなたかお分かりになる方宜しくお願い致します。 宜しくお願い致します。

  • ActiveDirectoryのユーザー一括登録

    Win2008r2でADを構築し、ユーザー情報の抜出(export)、一括登録(import)を csvdeコマンドで練習しております。 C:>csvde -u -f export.csv -r objectCategory=user コマンドにより、なんとかCSV形式で、ADに登録されている情報を抜き出すことはできました。 ecportしたファイルを基にしてimport用データーを作成したのですが、上手く行かない状態です。 登録するユーザー ⇒user03とuser04 import.csvの中身↓↓ N,objectClass,cn,name,userAccountControl,sAMAccountName,sn,displayName,userPrincipalName "CN=user03,OU=Test-OU,DC=test,DC=local",user,user03,user03,512,user03,user03,user03,user03@test.local "CN=user04,OU=Test-OU,DC=test,DC=local",user,user04,user04,512,user04,user04,user04,user04@test.local import.csvを実行すると。 C:>csvde -i -f import.csv "(null)" に接続しています SSPI を使って現在のユーザーとしてログインしています ファイル "import.csv" からディレクトリをインポートしています 入力ファイルを開くときにエラーがありました 0 個のエントリを正しく修正しました。 プログラムでエラーが発生しました ログはファイルに書き込まれませんでした。ログ ファイルを生成するには、 -j オプションを使ってログ ファイルへのパスを指定してください。 という状態になってしまいます。 以下のサイトを参照して行っています。 http://itpro.nikkeibp.co.jp/article/COLUMN/20080125/292017/ どなたかご教授下さい。

  • Access:複数条件の重複データを削除する方法

    とあるQ&Aサイトで以下のSQLを見つけました。機能は「複数条件の重複データを削除する方法」です。自分なりにステートメントを解釈してみましたのでおかしいところがあれば指摘いただけないでしょうか。 <SQL> テーブル名:TEST DELETE * FROM TEST AS T1 WHERE ID <> (Select Min(ID) From TEST As T2 WHERE T2.受付日 = T1.受付日 And T2.シリアルNO = T1.シリアルNO); <私の解釈> テーブル「TEST」をT1、T2と名づけ、T1とT2の受付日とシリアルNoが同じものの中で、T2中のIDが最小のものと一致しない(つまり最大のもの)IDを削除する。

  • SQL*Loader 別フィールドのデータを編集

    SQL*LoaderでCSVをインポートする際に、 次のようなCSVデータがあるとします。 DENPYO_NO | SALES_QTY | PRICE  1001-01-0001     1      2000 1001-01-0002     2      4000 このデータのDENPYO_NOフィールドの左4桁を取得して別のフィールドにインポートすることは 可能でしょうか? 説明がわかりにくいと思いますが、テーブルに取り込んだ時に以下のようにしたいです。 SECTION | DENPYO_NO | SALES_QTY | PRICE 1001     1001-01-0001     1      2000 1001     1001-01-0002     2      4000 要は一つのCSVフィールドを使用して、複数のテーブルフィールドを更新可能か? ということです。また、そのときの制御ファイルのフィールド項目の定義はどのように記述したらよいのでしょうか? よろしくお願いします。

  • ACCESS・VBAが全く分かりません。

    次のようなことをやるにはどういうコードを書けばいいですか? (患者情報テーブル) ID 氏名 1  阿部 2  伊藤 3  宇治 (表示フォーム) ID  1    氏名 阿部  表示フォームのIDを1から2へ変更したら、 自動的に氏名も阿部から伊藤へ変わってほしいのです。 これを実現する方法を教えて下さい。 それと、ユーザーが任意で指定できるのはIDだけにしたいので、 氏名はテキストボックスでなくてラベルで充分なのですが、 アクセスではラベルの表示をVBAで変えることはできるのでしょうか。 エクセルならそれができましたよね。

  • 特定条件の全データを指定データに一括追加したい

    以下の2つのテーブルがあります T_個人情報 T_履歴情報 それぞれのフィールドは以下になります T_個人情報 【ID】オートナンバー、【個人番号】テキスト、【氏名】テキスト…【チェック20】yes/no T_履歴情報 …、【個人番号】テキスト、【オーダー番号】テキスト、【ポイント】テキスト… ※各テーブルの【個人番号】はリレーション F_処理フォーム フォームAにて【テキスト01】非連結、【テキスト02】非連結、【コマンド01】コマンドボタン <実現したい事> F_処理フォームにてT_個人情報のチェック20がONの該当者のみに以下の処理 【コマンド01】クリック→【テキスト01】に入力したデータを【オーダー番号】に 【テキスト02】に入力したデータを【ポイント】に、それぞれ追加したい。 例) T_個人情報  001,123456,テスト次郎,…,yes  002,123457,テスト三郎,…,yes F_処理フォーム  テキスト01:55555 テキスト02:1000 コマンドボタン T_履歴情報  …,123456,1111,200  …,123456,2222,500  …,123456,1133,800  …,123457,1233,100   ↓   ↓  …,123456,55555,1000  …,123456,1111,200  …,123456,2222,500  …,123456,1133,800  …,123457,55555,1000  …,123457,1233,100 よろしくお願いします

  • Access:ページについて教えてください。

    アクセスで作ったフォームをデータアクセスページ(htmlページ)で入力、閲覧できるようにしました。 しかし、フォームではちゃんと動く機能(以下)が動きません。 データアクセスページでは使えないのでしょうか? ・入力日時のオート入力(=now()) ・ボタン機能(フォームではクリックすると、指定したチェックボックスにチェックが入ります)

専門家に質問してみよう