過去の質問内容にも類似したものがあったのですが、アドバイス願います。
現在エクセル作成された会員名簿のようなものを利用しています。名簿ですので住所、氏名などなど一般的な項目と、いつの入会か、いつの退会か(現会員のみでなく永久保存となっているため、亡くなった会員も名簿には残っています。)など、また会費の納入状況も掲載しています。そのデータを基に未納者の洗い出しや、会費の請求書発行などをし利用しています。
ただ、項目も多いし、データを更新する者がたくさん居るため、おっちょこちょいの者が更新してしまうと段をずれて変更したりすることもあり・・・ほとほと困っています。印刷してのチェックに疲れています。そうすると、データベース化してカード形式の入力とするとそのページ(画面)はその会員の情報のみが表示されているということなので入力ミスが防げるのではないかと考えたわけです。エクセルだとその都度、加工していろんなレポートを出力しているのですが、アクセスだとその都度の加工が必要ないですよね?たぶん・・・
・・・・というわけで、結局の質問は、『現在のエクセルデータをアクセスにそのまま移すことができるのか』ということです。
また、『この作業(アクセスの構築)を外注するといくらくらいかかるのでしょうか?』という2点です。
アクセスの知識がほとんどないので、お馬鹿な質問をしているかもしれませんが、お時間のある方・・よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

現在のエクセルデータをアクセス・・・


 エクセルの元ファイルとアクセスの新ファイルがマイドキュメントにある
 という前提で回答します

 アクセスの無地を作成します
 ファイル→外部データの取り込み→インポート
 ファイルの種類をエクセルにしファイル名を選択しインポート

以上でエクセルからアクセスへのデータ移行終了です

なにか分からなければ補足して下さい。

ごめんなさい、
この作業(アクセスの構築)を外注するといくらくらいかかるのでしょうか・・
の回答は、ただです 
 
    • good
    • 0
この回答へのお礼

簡単明瞭なお答え、ありがとうございます。
早速に実行してみたいと思います。
アクセスを使うことにうんざりしていたのですが、がんばれそうです。

お礼日時:2001/09/29 02:44

まずExcelでもVBAとFormを使用すればあなたが要求している殆どが可能です。


次に「現在のエクセルデータをアクセスにそのまま移すことができるのか」については「できます」が、格納領域、レスポンス、一意キーの設定などで後々
問題が発生する可能性があります。Access化の失敗の多くは現データをそのまま移行することで発生します。表の正規化、コード化といったDB設計を十分に行う必要があります。
この作業(移行処理、入力機能、出力機能、障害対応の構築)は2,3人月(一人の人が作業して二、三ヶ月)はかかると思います。
費用はバラツキがあるので一概には言えません(百万以下では無理だと思います)。
あなたの行いたい業務に近い市販のパッケージを購入し、パッケージへのデータ入力を外注会社へ依頼したほうが安いと思われます。
    • good
    • 0
この回答へのお礼

ご丁寧な回答ありがとうございます。
すべてをそのまま移すというのは、やはりむずかしいようですね。
むずかしそうな言葉=はじめて聞いたような言葉 がたくさんあり、もっと勉強しなくちゃと思いました。

お礼日時:2001/09/29 02:33

現在のExcelのデータは、普通の表形式なら簡単に移行出来ます。

また、カード形式の入力用のフォームも、Accessにはウィザード機能が充実しているので、よく知らなくても基本的なものは出来ます。
Excel(というかWindowsソフト)が使えるのなら、Accessの習得はそんなにむずかしくありません。
あなたなら、入門書程度のものを読めばすぐ出来ますよ。
したがって、この作業は金を取ってやるような仕事ではありません。
まあ、案ずるより生むが易しですよ。がんばって下さい。
では。
    • good
    • 0
この回答へのお礼

なんだかとっても励まされました。
アクセスのテキストは1冊持っていますが、もっと分厚くてわかりやすそうなものを見つけましたので購入して勉強しようと思います。
ありがとうございました。

お礼日時:2001/09/29 02:36

kahomamaさんはEXCELは十分に使いこなしていらっしゃるんですよね。



だとしたらACCESSの指南書などを手に入れて、ご自分でコンバートされたほうがいいですよ。コンバート自体は簡単に出来ます。

先ずは入力や出力のためのフォームやレポートを作ったりするだけで移行できます。

リレーショナルの構造等がわかってきてからクエリーや関連付けなどに取り組めば良いと思いますが。

外注の金額は見当もつきませんが・・。御自分で出来ますよ
    • good
    • 0
この回答へのお礼

ありがとうございます。
エクセルの方はまったくの独学ですが、仕事でかなり必要としておりましたので使っていました。アクセスを使えるようになると今後の仕事の幅も増えると思っていますのでがんばります。もっと仕組みを理解しなくちゃいけませんね。
勉強して、自分でやってみます。

お礼日時:2001/09/29 02:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aと関連する良く見られている質問

Qアクセス 項目ごとに自動採番

講座名ごとに受付番号を自動採番したいのですが、出来るのでしょうか?

テーブル名 セミナー受付(講座名、受付番号・・・)
講座名     受付番号
セミナーA   1001、1002、1003のように連番
セミナーB   2001、2002、2003のように連番

他のサイトを見ても解決できなかったので、ご指導をお願いします。

Aベストアンサー

#3です

コンボボックス「セミナー名」のクリック時イベントに以下を記述してみてください。

Private Sub セミナー名_Click()
  Dim iNumS As Long
  Dim vTmp As Variant

  If (IsNull(Me.セミナー名)) Then
    Me.受付番号 = Null
    Exit Sub
  End If

  Select Case Me.セミナー名
    Case "セミナーA": iNumS = 1000
    Case "セミナーB": iNumS = 2000
    Case "セミナーC": iNumS = 3000
  End Select

  Me.受付番号 = Nz(DMax("受付番号", "セミナー受付", "セミナー名 ='" & Me.セミナー名 & "'"), iNumS) + 1
End Sub


※ 
選択したセミナー名の採番初期値を設定しておきます。
セミナー受付テーブルから、登録されているセミナー名の受付番号最大値を求めます。
なかったら、採番初期値+1を、あったら、最大値+1を受付番号に設定します。


※ この書き方になるとセミナー名が変わったとか・・・で修正が必要になります。
そこでコンボボックスに非表示で採番初期値を設定しておきます。

テーブル「T講座一覧」
講座ID 講座名  採番初期値
1   セミナーA  1000
2   セミナーB  2000
3   セミナーC  3000

コンボボックスの値集合ソースは、
SELECT 講座名, 採番初期値 FROM T講座一覧 ORDER BY 講座名;
として、
連結列: 1
列数: 2
列幅:4cm;0cm (2列目を表示しないように0に:4部分は適当に)

としておけば、

  Select Case Me.セミナー名
    Case "セミナーA": iNumS = 1000
    Case "セミナーB": iNumS = 2000
    Case "セミナーC": iNumS = 3000
  End Select

部分は、

  iNumS = Me.セミナー名.Column(1)

で、後々修正が要らなくなります。
(テーブルの内容を書き換えるだけの修正になります)

#3です

コンボボックス「セミナー名」のクリック時イベントに以下を記述してみてください。

Private Sub セミナー名_Click()
  Dim iNumS As Long
  Dim vTmp As Variant

  If (IsNull(Me.セミナー名)) Then
    Me.受付番号 = Null
    Exit Sub
  End If

  Select Case Me.セミナー名
    Case "セミナーA": iNumS = 1000
    Case "セミナーB": iNumS = 2000
    Case "セミナーC": iNumS = 3000
  End Select

  Me.受付番号 = Nz(DMax("受付番号...続きを読む

Qアクセスでフォームに追加項目を増やす場合、サブフォームにしたほうがよいのか、しないほうがよいのか教えてください。

Access2003を使用しています。
「取引先マスタ」という取引先の住所などが入ったフォームに契約書に関するデータも入力できるようにして欲しいと依頼が入りました。
それは契約の種別ごとに「契約締結日」、「取引先契約者」、「弊社担当者名」を設けます。
このような場合、契約書に関するデータは別のテーブルに入力してサブフォームにしたほうがよいのでしょうか?
それとも「取引先マスタ」と同じフォームのなかに入れたほうがよいのでしょうか?
あとで支障が出にくい方法をとりたいのですが、Accessに熟練されている方はどちらの方法を取られているのでしょうか?
アドバイスをお願いいたします。

Aベストアンサー

基本的な考え方としてはテーブル構成の正規化を考える必要があります。
「取引先マスタ」に契約書に関するデータを追加する場合、同じ取引先で契約が追加されたり、複数の契約が発生することはないのでしょうか?

取引先1件に関して必ず1契約のみであれば、取引先マスタに必要な項目を追加することも考えられると思いますが、一般的には契約内容を登録する別テーブルに、「取引先コード」、「契約種類」、「契約締結日」、「取引先契約者」、「弊社担当者名」などのフィールドを作成し、取引先コードでリレーションシップを作成することが一般的かと思います。

その上でサブフォームなどを作成し、画面で複数契約を同時に確認できるようにするか、フィルタなどを使い契約の種類を条件にして対象を絞り込むように作る方が後々支障が出にくいと思います。

Qアクセス コンボボックスで全項目表示

アクセス2000で発注書をつくっています

発注書フォームのサブフォーム「発注書sub」内で
「大項目」「中項目」「小項目」「商品コード」の
4つのコンボボックスを設置し、
絞込み検索で商品明細を入力しています

新規レコードに移動するときに
「大項目」「中項目」「小項目」の値を空白にし、
4つめの「商品コード」コンボボックスで
全商品を表示させたいのですが

どう記述していいのかわかりません

現在は

Private Sub 商品コード_AfterUpdate()
Me.品番 = Me.商品コード.Column(1)
Me.商品名 = Me.商品コード.Column(2)
Me.色 = Me.商品コード.Column(3)
Me.サイズ = Me.商品コード.Column(4)
Me.商品単価 = Me.商品コード.Column(5)

End Sub

Private Sub 小項目_Enter()
Me!商品コード.Requery
End Sub

Private Sub 大項目_AfterUpdate()
Me!中項目.Requery
End Sub

Private Sub 中項目_AfterUpdate()
Me!小項目.Requery
End Sub

Private Sub 小項目_AfterUpdate()
Me!商品コード.Requery
End Sub

'フォーカスが移ると同時にドロップダウンさせる
Private Sub 大項目_GotFocus()
Me.大項目.Dropdown
End Sub
Private Sub 中項目_GotFocus()
Me.中項目.Dropdown
End Sub
Private Sub 小項目_GotFocus()
Me.小項目.Dropdown
End Sub

'テスト
Private Sub 摘要_LostFocus()
Me!大項目 = Null
Me!中項目 = Null
Me!小項目 = Null
Me!商品コード.Requery
End Sub
です。
発注書フォーム(単票フォーム)
レコードソース「発注書」
サブフォーム名「発注書sub」(帳票形式)
レコードソース「発注書明細」
リンク親フィールド子フィールドともに「発注書コード」
(他に表記が必要なのがあるかもしれませんが。。)

テーブル
●発注書明細
「明細コード」「発注書コード」「商品コード」「品番」「商品名」「色」「サイズ」「商品単価」「数量」「摘要」です
●商品マスタ
「商品コード」「品番」「種類」「大項目」「中項目」「色」「商品名」「サイズ」「商品単価」
です。

どなたか
ご指導のほどよろしくお願いいたします

アクセス2000で発注書をつくっています

発注書フォームのサブフォーム「発注書sub」内で
「大項目」「中項目」「小項目」「商品コード」の
4つのコンボボックスを設置し、
絞込み検索で商品明細を入力しています

新規レコードに移動するときに
「大項目」「中項目」「小項目」の値を空白にし、
4つめの「商品コード」コンボボックスで
全商品を表示させたいのですが

どう記述していいのかわかりません

現在は

Private Sub 商品コード_AfterUpdate()
Me.品番 = Me.商品コード.Column(1)
...続きを読む

Aベストアンサー

各コンボボックスの制御(絞込み)をどうやっているのか分かりませんが、
例えば、大項目が決まると一致した商品だけが「商品コード」のリストに
表れ、中項目が決まると更に絞り込まれるといった仕様なのですか?
それで、新規の場合、大項目=Nullなので、全商品がリストされるとか?
ポイントは「商品コード」の元になっているクエリですね。それの
SQLを変更するか、動的にSQLをプログラムでSQLを組み立てて、
「商品コード」のControlSourceを書き替えるなどが考えられます。

Qデータ項目の文字間空白の除去について

顧客データの重複をなくすため、顧客データのクレンジングを行っております。
氏名項目の姓・名間の空白を簡単に除去する方法はありますか?
(『山田△太郎』⇒『山田太郎』のように空白を詰めて全データを同一形式にしたい)

MS-ACCESS2000、Excel2003を主なツールとしております。
もしお分かりになる方がいらっしゃいましたらご教授宜しくお願い致します。

Aベストアンサー

Access2002以降なら、クエリでReplace関数を使用してスペースを空文字に
変換するのが簡単・・・なのですが、Access2000では、クエリにReplace関数を
使用しようするとエラーが発生してしまうので、その分、細工が必要になります。


1)クエリ用の代替関数・QReplaceの宣言(標準モジュールに貼り付けて下さい):

Private Function QReplace(StrExp As String, StrFind As String, StrRpl As String, _
  Optional LngStrt As Long = 1, Optional LngCnt As Long = -1, _
  Optional Comp As VbCompareMethod = vbBinaryCompare)
'引数の名前は変えていますが、実質Replace関数の引数と同じですので、
'詳細は同関数のヘルプを参照して下さい。

  QReplace = Replace(StrExp, StrFind, StrRpl, LngStrt, LngCnt, Comp)

End Function


2)上記関数を使用したクエリの作成:

クエリ(SQL文):

Update 顧客情報 Set 顧客情報.氏名 = QReplace(顧客情報.氏名, " ", "");

※新規クエリを開いたら、『テーブルの表示』ダイアログは何もせずに閉じ、
  メニューで「表示(V)→SQL ビュー(Q)」を選択した後、上記SQL文を貼付
  (テーブル名を「顧客情報」、フィールド名を「氏名」と仮定したものですので、
  必要に応じて修正してください)


ここまで行ったら、後は上記クエリを実行すれば、指定したフィールドのスペース
(" ")が、空文字("")に置換されます。
※念のため、実行前にデータのバックアップを行うことをお勧めします。

Access2002以降なら、クエリでReplace関数を使用してスペースを空文字に
変換するのが簡単・・・なのですが、Access2000では、クエリにReplace関数を
使用しようするとエラーが発生してしまうので、その分、細工が必要になります。


1)クエリ用の代替関数・QReplaceの宣言(標準モジュールに貼り付けて下さい):

Private Function QReplace(StrExp As String, StrFind As String, StrRpl As String, _
  Optional LngStrt As Long = 1, Optional LngCnt As Long = -1, _
  Optional Comp As VbCompa...続きを読む

Qデータの加工方法(SQL)について

「TABLE1」から「TABLE2」というテーブルを作成したいと考えております。

TABLE1ではNAMEという項目がキーとなってデータが入っていました。
それをIDという項目をキーとした形にデータ加工したいと考えています。
各IDにおけるNAMEの数はMAXでも5個までとなります。

何か良い方法は有りますでしょうか?

SQLのSELECT文で行う事を考えていますが、方法がわかりませんでした。
(EXCELなどで他に容易な方法があれば他の方法でもかまいません)

よろしくお願いいたします。


■TABLE1
-------------
IDNAME
-------------
1000AAA
1000BBB
1000CCC
1000DDD
1001EEE
1001FFF
-------------

■TABLE2
----------------------------------------------
IDNAME1NAME2NAME3NAME4NAME5
----------------------------------------------
1000AAABBBCCCDDD
1001EEEFFF
----------------------------------------------

「TABLE1」から「TABLE2」というテーブルを作成したいと考えております。

TABLE1ではNAMEという項目がキーとなってデータが入っていました。
それをIDという項目をキーとした形にデータ加工したいと考えています。
各IDにおけるNAMEの数はMAXでも5個までとなります。

何か良い方法は有りますでしょうか?

SQLのSELECT文で行う事を考えていますが、方法がわかりませんでした。
(EXCELなどで他に容易な方法があれば他の方法でもかまいません)

よろしくお願いいたします。


■TABLE1
----------...続きを読む

Aベストアンサー

エクセルで次のマクロを使うと実行できます。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2009/11/11 ユーザー名 :
'
Dim mygyo1 As Integer, myretu1 As Integer, mygyo2 As Integer, myretu2 As Integer, myid As Integer, mymygyo1 As Integer
mygyo2 = 2

mygyo1 = 2
myretu1 = 2
Do
myretu2 = 4
Cells(mygyo2, myretu2).Value = Cells(mygyo1, 1).Value
myretu2 = myretu2 + 1
Do
Cells(mygyo2, myretu2).Value = Cells(mygyo1, 2).Value
'Cells(mygyo2, myretu2).Value = Cells(mygyo1, myretu1).Value
mymygyo1 = mygyo1
mygyo1 = mygyo1 + 1
myretu2 = myretu2 + 1
Loop While Cells(mygyo1, 1) = Cells(mymygyo1, 1)
mygyo2 = mygyo2 + 1
Loop While mygyo1 < 8
'

End Sub

エクセルで次のマクロを使うと実行できます。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2009/11/11 ユーザー名 :
'
Dim mygyo1 As Integer, myretu1 As Integer, mygyo2 As Integer, myretu2 As Integer, myid As Integer, mymygyo1 As Integer
mygyo2 = 2

mygyo1 = 2
myretu1 = 2
Do
myretu2 = 4
Cells(mygyo2, myretu2).Value = Cells(mygyo1, 1).Value
myretu2 = myretu2 + 1
Do
Cells(mygyo2, myretu2).Value = Cells(mygyo1, 2).Value
'Cells(mygyo2, myretu2).Value = Cells(myg...続きを読む


人気Q&Aランキング

おすすめ情報