- ベストアンサー
エクセルからアクセスへの移行
- 仕事で身障者向け移送サービスの管理をするシステムをエクセルで開発していますが、うまくいきません。
- エクセルとアクセスが同じバージョンならデータの移行は比較的簡単にできますが、VBAのマクロは移行できない可能性があります。
- アクセスを使ってWEBアプリにすることも可能で、セキュリティ設定も行えますが、少し勉強が必要です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
うまくいかない原因や構造によるので、詳細な部分は答えようがありません。 なので、基本的な部分のみ。 ・シートのインポート/リンク→バージョンが異なっていても可能です。ただし、データ型が一致しないケースが往々にしてあり、インポートエラーとなる場合が多々あります。その辺については勉強されてください。 ・VBAは「ExcelとAccessでは別物で新たに作り直す必要がある」くらいに思っていた方が良いと思います。根幹のオブジェクトがほぼ違いますし、どっちにもありそうな関数がなかったり別の名前の関数だったりしますので。AccessのFormat関数(ExcelではTEXT関数に相当)などがその例ですね。 ・WEBアプリ化については「面倒だからやめた方が良い」の一言です。費用的な面で各PCにAccess2010をインストールしたくないためにWEBアプリというのであれば、そのデータベースをメンテナンスするPC以外にはランタイム版をインストールすればよいです。ランタイム版にはインターフェイス部分のみにして、共有するDBにはODBCで接続する構造にしておけばよいと思います。
その他の回答 (1)
- chayamati
- ベストアンサー率41% (260/624)
>3~4年かけてしまっているので 大変ですね WEB絡みは未体験ですが、その他の件でアドバイスさせて頂きます。 ・エクセルでは、セルの単位で計算式を組立できますが、アクセスは計算の基本はテーブルのレコード単位です。 例 数量、単価、金額、金額合計を処理するとき エクセルでは、全ての項目のセルをデータの数の行をシート上に展開しますが アクセスでは、数量、単価のみ定義し、データの発生都度レコードを追加し、 金額、合計金額はレポート作成時に計算することになります。 ・アクセスはテーブル、クエリ、フォーム、レポートが独立して設計します。 お気付きのように、テーブル設計が最重要です。 一つのテーブル纏めないで、発生内容によってテーブルを分けます。 必要によって、リレーションシップで繋ぐことができます。 次のようなテーブルが必要かと 1.プロフィール(1レコードのみ)事業所の事業所名、住所等の概要を登録するテーブル 請求書、指示書作成時に表示する、 2.利用者テーブル 3.協力者テーブル 4.車両テーブル 5.サービス予定、実績テーブル お気付きのように、テーブル設計が最重要です。 エクセルのデータを貼り付けるだけで出来ますが、 理解するため作成タブ⇒テーブルデザインと入ります。 利用者テーブルの設計 利用者名:テキスト型 フィールドサイズ_8、値要求_はい、IME入力モード_オンIME変換モード_人名/地名 ふりがな機能を起動 振り仮名 生年月日:日付型/時刻型 年齢にすると毎年変更が必要です。アクセスでもDATEDIF関数は有効です。 郵便番号 都道府県 市区町村 住所末尾 ここまで定義すると下の方に隠れている住所入力支援を起動 その他、必要な項目も定義し終わるとIDと呼ぶ主キーが付きますこれは受け入れます。 >エクセルとアクセスが同じバージョンであれば… 、データ移行はバージョンに関係なく可能です。 >VBAでマクロを組んでやっていたのですが、マクロはそのまま移行するわけにはいかないと思いますが VBAの内容がわかりませんが、恐らく全て捨てることになります。 >アクセスでは、データ一つ一つに、型や文字数等のプロパティを前もって決めておく… その通りです。数値項目に一つでも空白または文字列があるとそれを含む演算は無効になります。 これを回避するため根テーブル設計で規定値を0にします。 >アクセス2010を使い、入出力をブラウザから行なう事は可能でしょうか。 >この際、同時に同レコードに読み書きが出来ないようにセキュリティ設定も出来ますよね? 条件が違いますが、次はが参考になるでしょうか http://okwave.jp/qa/q112375.html
お礼
ありがとうございました。 >WEBアプリ化については「面倒だからやめた方が良い」の一言です。費用的な面で各PCにAccess2010をインストールしたくないためにWEBアプリというのであれば、そのデータベースをメンテナンスするPC以外にはランタイム版をインストールすればよいです。 ということでしたが、所長や先輩との話し合いの結果、私も未体験なのですが、『将来、外部からのアクセスも出来たら汎用性も利便性も広がり、緊急対応も出来て良い。』という話になり、SQL-SERVERにするようになりました。 ある程度MS-ACCESSで作ってからということも考えられましたが、私が『どうせ未経験の事をするんだから、初めからSQL-SERVERで行こう』と想い、決めさせてもらいました。 参考文献を読みながらの勉強になると思いますが、こちらでも過去問を読ませて頂いたり、質問をさせて頂いたりするつもりですので、その時はよろしくお願い致します。