アクセスのプログラムを効率的に作成する方法

このQ&Aのポイント
  • アクセス95で作ったプログラムを2000に作り直す必要がありますが、どうやって作成すればいいのでしょうか?現在、ホストから送られてきた棚卸データをバッチ処理し、テーブルとぶつけて棚卸を行った店舗のリストを作成していますが、バッチ処理の方法がわかりません。
  • 異動によりサーバーを扱うことになったため、アクセス95で作成したプログラムを2000に作り直さなければなりません。具体的には、ホストから送られてくる棚卸データをバッチ処理して、棚卸を行った店舗のリストを作成する必要があります。しかし、バッチ処理の方法がわからず困っています。
  • アクセス95で作成したプログラムを2000に作り直す必要がありますが、バッチ処理の方法がわかりません。具体的には、ホストから送られてくる棚卸データを処理して、棚卸を行った店舗のリストを作成する必要があります。どのような手順でプログラムを作成すればいいのでしょうか?
回答を見る
  • ベストアンサー

アクセスのプログラム

こんにちわ 異動でサーバーとかを扱うようになったのですが まったくわからずにいる状況です。 アクセス95で作ったプログラムを そのうちに2000で作り直さなければならないのですが まったくわかりません。 困り果てています。 ちなみにどういうプログラムかというと、 端末ID、店舗名、棚卸日などのテーブルがあり、 月の20日以降になると、プログラムでホストから 送られてきた棚卸データをバッチ処理し、そのテーブルと ぶつけ、どの店舗が棚卸を行ったかがリストで出るようになっています。 まずはホストからのデータをバッチ処理する方法が わかりません。 ぶつけるのは、端末IDでぶつかったら新たにテーブルを 作るって言う感じはわかるのですが・・・。 どうやったらいいんでしょう?

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

  • ベストアンサー
  • nanashan
  • ベストアンサー率37% (11/29)
回答No.1

大変お困りのようですね。 通常、95で作ったものを2000で使う事が出来ます。 95で問題なく動くようであれば大丈夫です。 ただ、起動のとき(2000で起動しそのmdbを開くと言う事です)以前のアクセスで作られていますというようなメッセージボックスが出ます。かまわず、2000で起動してくださいね。 >ぶつけるのは、端末IDでぶつかったら新たにテーブルを 作るって言う感じはわかるのですが・・・。 どうやったらいいんでしょう? と、急に言われてもこちらではどういう環境なのか分からないので、もうちょっと詳しく教えていただけないでしょうか?ただ、聞いているだけでよく分かりませんが、さしずめ、ホストコンピューターから固定長(長さが決まっている)もしくは、CSV(データとデータの間がコンマで区切ってある)形式のファイルになっているのでしょう。(ファイルと言ってもテキストファイルです。) そうしますと、大抵はアクセスでインポートというコマンドを使い、テーブルに読み込ませます。それから、やりたい処理をすると言った流れになります。 DoCmd.TransferText acImportDelim, "インポート定義A","売上テーブル", "C:\売上\売上.txt" こういった感じで、最初テキストファイルを読みこみます。又何かありましたら、ご遠慮なく聞いてくださいね。

junichihirobe
質問者

お礼

ありがとうございます。 なんとなく仕組みがわかってきました。 また質問させていただくとこがあると思います。 そのときはよろしくお願い致します。

関連するQ&A

  • プログラムの考え方とDBの扱いかたについて

    技術的な質問ではなく、考え方についての質問です。 こっちを立てるとあっちが立たずのような状態で困ってます。 どのカテゴリで質問するか悩んだのですが、直近の投稿数が多いのでC言語のところで質問させて頂きます。 ご教示ください。 現在こういうバッチプログラムがあります。 バッチA  > (1)外部から前日分の確定データリストを取得  > (2)データリストに基づいて特定処理の実施  > (3)特定処理の対象になったものをDB(テーブルA)に格納 ※1つのプログラムで3つの処理を行ってます 今度、データリストの取得先に外部2が追加されます。 仕様が同じであれば、バッチAと同様のものを作ればいいのですが、 外部2の場合、1か月の間データが確定されないという仕様があります。 前日分のデータが確定するのは、 1カ月後までの間に取得するデータリストにキャンセルデータが無かった場合です。 1.そこでこのように考えました。 バッチA  > 外部2から1カ月分のデータリストを取得  > 取得データから、1か月前のデータを対象に1ヶ月間キャンセルデータが無いものを抽出する  > (2)データリストに基づいて特定処理の実施  > (3)特定処理の対象になったものをDBに格納 2.でも、毎日1か月分のデータを取得して抽出処理を行うのは負担になるし、 毎日ほぼ同じデータを取得するのはあほらしいと思い、以下のように考えました。 バッチA  > 外部2から前日分のデータリストをDB(テーブルB)に格納  > DBから1か月前のデータを対象に1ヶ月間キャンセルデータが無いものを抽出する  > (2)データリストに基づいて特定処理の実施  > (3)特定処理の対象になったものをDB(テーブルA)に格納 3.今度はそもそもバッチ分けた方がいいんじゃないかと思い、以下のように考えました。 バッチ1  > 外部2から前日分のデータリストをDB(テーブルB)に格納 バッチA  > DBから1か月前のデータを対象に1ヶ月間キャンセルデータが無いものを抽出する  > (2)抽出したデータリストに基づいて特定処理の実施  > (3)特定処理の対象になったものをDB(テーブルA)に格納 4.さらに、キャンセルデータの処理も別バッチにすれば、   バッチAでの処理がわかりやすくなるじゃないかと思い、以下のように考えました。 バッチ1  > 外部2から前日分のデータリストをDB(テーブルB)に格納 バッチ2  > DB(テーブルB)から1か月前のデータを対象に1ヶ月間キャンセルデータが無いものを抽出する  > 抽出したデータのキャンセルデータのレコードをDB(テーブルB)から削除 バッチA  > (1)DB(テーブルB)から前日分のデータリストを取得  > (2)データリストに基づいて特定処理の実施  > (3)特定処理の対象になったものをDB(テーブルA)に格納 ここまで考えてどうするのがスマートなのかよくわからなくなってきてしまいました。 3か4でいこうと思うのですが、3の時にバッチAで抽出処理をするのはいまいちって思ってます。 それで4にしようと思ったのですが、 テーブルBは取得データをそのままの状態で入れておくって当初考えてたので、 それをあとからレコード削除したりするのもどうなんだろうと思ってます。 確定したデータと未確定のデータが混在するのもなんだか腑に落ちません。 それだったら、新たにテーブルCを作って、確定データを突っ込んでおくってことも考えたのですが、 そうなると、バッチA最後に格納しているテーブルAと何も変わらないようなものがもう一つできてしまいます。 どういうのがスマートというか良い考え方なのでしょうか。

  • バッチプログラムでSQLSever2008を操作

    教えてください。 (1) SQLSever2008内にあるデータベース1のテーブルAのデータを削除 (2) 同じインスタンス内にあるデータベース2のテーブルAのデータを、DB1のテーブルAにコピー (3) (2)の処理が失敗したらロールバック 上記のことを、バッチプログラムで行いたいと思っております。 単にコマンドプロンプトで入力するというのであれば(1)も(2)もできるのですが、 バッチプログラムで行うとなると、どうやっていいのか見当もつきません。 さらに(3)は、(2)でSQLを実行した戻り値も見なければならないと思います。 データベース1のテーブルAとデータベース2のテーブルAはまったく同じ構成です。 自分なりに色々調べてはいるのですがどうしてもわかりません。 もしどなたかご存知の方がいらっしゃったらぜひ教えてください。 どうぞよろしくお願いいたします。

  • 【C#】プログラム作動中のファイルのアクセス制限

    プログラム作動中のファイルのアクセス制限について教えてください。 C#でバッチファイルを定期的に動かして、ファイルをサーバーにUploadするプログラムを作りました。 バッチファイルにはユーザーIDとパスワードが入っているので、 起動中にプログラム以外から読み込めないようにしたいのですが方法がわかりません。 どなたかご教示お願いいたします。よろしくお願いいたします。

  • perlプログラムの連続起動方法

    perlのバッチプログラムをレンタルサーバー(ロリポップ)で動かそうとしているのですが、サーバーの制約により処理が途中で中断されてしまいます。 サーバーの制約とは30秒を超える処理を起動してはならないというものです。 では、入力データ量を1プログラムあたり30秒以内に収まる範囲に分割し、プログラムを連続して起動することで制約を回避しようと思うのですが、プログラム起動の方法がわかりません。 プログラム終了をトリガとして後続プログラムを起動する仕組みの実現方法を教えてください。

    • ベストアンサー
    • Perl
  • Access2002の検索について

    社員マスターテーブル 社員ID   テキスト型 氏名   テキスト型 しめい   テキスト型 部署名   テキスト型 研修マスターテーブル 研修ID   数値型 研修名   テキスト型 受講リストテーブル 受付ID   数値型 受付日   日付時刻型 受講日   日付時刻型 社員ID   テキスト型 研修ID   数値型 研修受付クエリ 社員ID   テキスト型(受講リストテーブル) 氏名   テキスト型(社員マスターテーブル) しめい   テキスト型(社員マスターテーブル) 部署名   テキスト型(社員マスターテーブル) 受付ID   数値型  (受講リストテーブル) 受付日   日付時刻型(受講リストテーブル) 受講日   日付時刻型(受講リストテーブル) 研修ID   数値型(受講リストテーブル) 研修名   テキスト型(研修マスターテーブル) 社員が何の研修を受講したのか履歴がほしかったので「社員マスターテーブル」と「研修受付クエリ」を使ってメインサブフォームを作りました。 やりたい事は、このメインサブフォームに検索のボタンを作りたいのです。 社員IDまたは社員名または受講日のいずれかを入力するし検索ボタンをクリックするとメインサブフォームに結果を出したいのです。 マクロのフィルタ?をやってみたのですがよく意味が分からずできませんでした。 どうぞお手数ですがご教授頂けないでしょうか?

  • サーバーへアクセスする bat ファイルを作りたい

    windows 2000 のサーバー(ホスト名:dango,IP 192.12.33.5)に、takoyaki という共有フォルダーがあります。 ここの保存している ashita.exe というプログラムを 実行するバッチファイルを作りたいのですが、やり方がまったくわかりません。 ご指導よろしくお願いします。

  • accessでフィールドを連携させたい

    access2002をつかっています。 テーブルAの中のリストに、IDのフィールドがあり、 そこにひもづいたテーブルBがあります。 (例えば、テーブルAが人のデータで、  テーブルBがその人との対応履歴です。) フォームで、テーブルAの一覧リスト(表形式)がまず見られるものをつくりました。 そこから、「詳細をみる」というボタンをつけて、 押すと、リストBの中でひもづいているものだけ見えます。(単票形式で) 見る分にはこれでよかったのですが、 そこから新規にテーブルBに書き込むときに、 AのIDを勝手に書き込んでほしいのです。 (引き継いでほしい。) でも、現状では、そのボタンを押して、 その先で新規に、Bへデータを書き込もうとすると、 ID部分は引き継がれません。 最初からサブフォームなどのウィザードでつくれば よかったのかもしれませんが、 この状態からうまくできる方法はありませんか? とっても分りづらい説明で申し訳ないのですが、 もしわかる方がいらっしゃいましたら、教えてください。

  • Access2003のコンボボックスで

    テーブルにある ID 名前 誕生日 住所 データをフォームで IDをコンボボックスで選択し テキストボックスA,B,Cに 名前、誕生日、住所を表示させたいのですが どの様な処理を行なえばよろしいのでしょうか?

  • DBの利用状況をAccessから把握したい

    MS Access 2003 のVBA からSQL Server 2005 の利用状況を参照できるのでしょうか? 知りたい情報は↓です。 DB、テーブル、レコードへの接続台数(もしくは接続の有無) 上記に接続しているユーザー名とかコンピュータ名、ホスト名など特定できる情報 <やりたい事> 更新テーブル(ワークテーブル)にデータを移してメンテナンスし、処理が完了したらストアドで 元のテーブルにデータを戻すのですが、その間元のテーブルのレコードにロックをかけたい。 (現在はワークテーブルに対して主キーでDcountで確認している) 誰かが特定のテーブルを使っている時は、締切処理が出来ないようにしたい。 誰かがADPを起動している時はバックアップ処理を出来ないようにしたい。

  • 当年度の商品別の棚卸し状況を表示したい。

    商品テーブル  商品コード  商品名 棚卸履歴テーブル  商品コード  棚卸日 棚卸履歴テーブルより当年データのみを抽出したテーブルと商品テーブルとを突き合わせを行う。  (1)棚卸テーブルよりいつ実施しても当年の4月1日以降を抽出する記述方法がわかりません。  (2)多段クエリの記述方法がわかりません。 上記テーブルを例をもとに記述方法を教えて頂けないでしょうか? 宜しくお願いします。