こんにちは。Access2000について質問させてください。よろしくお願いいたします。


csvファイル内のデータをAccess2000に作成したデータベースにインポートしたいんのですが、どうすれば良いでしょうか?

何を調べたらいいかもわからない状態で…

どなかかご存知の方がいらっしゃったら教えて下さい。なにとぞ宜しくお願いいたします。

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

A 回答 (2件)

メニューのファイルメニューから外部データの取り込みを選択するかデータベースウィンドウ上で右クリックしインポートを選択します。


ファイルの種類をテキストファイルに設定しcsvファイルのあるフォルダを開きファイルを指定しインポートボタンをクリックするとインポートウィザードが開きますので順次従って進めればできます。
データを保存する場所で既存のテーブルに保存したければ次のテーブルで指定します。ウィザードの設定が終わったら完了ボタンでインポートできます。
ウィザードにある設定ボタンをクリックすればインポート定義を登録できます。インポート定義を登録すれば次回からフィールドの設定などしなくてインポート定義を使って同様のデータ構成のファイルはインポートできるようになります。
ヘルプでインポートで検索すれば出てきますのでそちらも参照してください。
    • good
    • 2
この回答へのお礼

丁寧なご回答ありがとうございます!
インポート出来ました! 

お礼日時:2005/10/29 02:28

「ファイル」→「外部データの取り込み」→「インポート」→「ファイルの種類:テキストファイル」でインポートできます。

    • good
    • 1
この回答へのお礼

うまく出来ました! ありがとうございました ペコm(_ _;m)三(m;_ _)mペコ

お礼日時:2005/10/29 02:29

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

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

このQ&Aを見た人が検索しているワード

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

Q任意のCSVファイルをAccessに取り込むには?

同様の質問が発見できなかったため質問させて頂きます。

アクセスを利用して日々の電力監視のデータを管理しようと思います。
データを出力するシステムの都合で、日々のデータがcsv形式で毎日1ファイル生成されます。
ファイル名は[AT20070925.csv]のような形です。
このファイルをアクセスにインポートする際、ファイル名をダイレクトに指定しなくてもインポートするファイルを指定することは出来るのでしょうか?

具体的には
(1)毎日指定した時間にデータを取り込むものとして、本日の(または前日の)ファイル名のデータを取り込む
(例えば9月26日0時2分に9月25日のデータ[AT20070925.csv]を自動的にインポートする)

(2)処理を行う際に随時指定した日付のファイル名のデータを取り込む
(フォームで日付を指定し、例えば9月25日と指定したら[AT20070925.csv]を随時インポートする)

インポートするファイル名に変数を使うことは可能なのでしょうか?

また実際にはインポートでなくリンクを使用する可能性もあるのですが、リンクでも同じ様な処理は出来るのでしょうか?

良い方法等ありましたらご教授いただければと思います。

同様の質問が発見できなかったため質問させて頂きます。

アクセスを利用して日々の電力監視のデータを管理しようと思います。
データを出力するシステムの都合で、日々のデータがcsv形式で毎日1ファイル生成されます。
ファイル名は[AT20070925.csv]のような形です。
このファイルをアクセスにインポートする際、ファイル名をダイレクトに指定しなくてもインポートするファイルを指定することは出来るのでしょうか?

具体的には
(1)毎日指定した時間にデータを取り込むものとして、本日の(または前日の)...続きを読む

Aベストアンサー

>インポートするファイル名に変数を使うことは可能なのでしょうか?
可能です。

1、2ともに「AT20070925.csv]という文字列(日付部分が変化)を生成する方法がわかればよいですよね? サンプルを書きましたので参照されてください。(ファイルがCドライブ直下にある場合の定義です。C:\AT20070925.csv というような文字列になります。)

(1)のパターン 「昨日」
FileName = "C:\AT" & Format(Date-1, "yyyymmdd") & ".csv"

(2)のパターン 「フォーム内のTextBox1の値」
FileName = "C:\AT" & Format(Me.TextBox1.Value, "yyyymmdd") & ".csv"

これで変数FileNameにご希望の文字列が格納されます。

あとは、DoCmd.TransferTextメソッドでこのFileNameを引数に指定してあげれば希望のテーブルにインポート/リンク可能です。インポートの場合の例は下記のとおりです。リンクの場合もほぼ同じです。(デリミトの形式はCSVは省略可です、、、確か。) 

'TableName = "任意のテーブル名(インポート先)"
DoCmd.TransferText acImportDelim, , TableName, FileName

今回は書いていませんが、エラー処理等を忘れずに。

>インポートするファイル名に変数を使うことは可能なのでしょうか?
可能です。

1、2ともに「AT20070925.csv]という文字列(日付部分が変化)を生成する方法がわかればよいですよね? サンプルを書きましたので参照されてください。(ファイルがCドライブ直下にある場合の定義です。C:\AT20070925.csv というような文字列になります。)

(1)のパターン 「昨日」
FileName = "C:\AT" & Format(Date-1, "yyyymmdd") & ".csv"

(2)のパターン 「フォーム内のTextBox1の値」
FileName =...続きを読む

QACCESSで毎回CSVファイルをテーブルにインポートする

ACCESSでGUIで毎回CSVファイルをインポートしていますが、
(テーブル→新規作成→デーブルのインポート)
自動化?VBA?することはできるのでしょうか。
ACCSESSは初心者でよくわかっていません。
よろしくおねがいします。

Aベストアンサー

>「マクロに設定」のやり方がわかりません。
え、そうなんですか。
アクセスを開くと左側に「マクロ」ってありませんか。
そこで新規作成します。
テーブルを削除するとか、クエリを開く(実行する)とか、動作を順番に設定するのです。
任意に実行したいなら、マクロ名は任意で構いません。
mdbを開いたら、必要なときにマクロを実行するだけです。

>こちらはoffのする方法が、チェックを外せばいいということでしょうか。
見つけましたよね。そのチェックを外します。

あのー、とりあえず解説書などお持ちではないですか。
最低限のことはそういう書籍で勉強して欲しいのですが。(マクロがわからないことにびっくりしたので)
ここで一つ一つやり取りするわけにもいかないので。

Qインポート時のエラー「データ型の変換エラー」

ACCESS2000を使用しています。
CSVファイルをマクロを使い、インポートしようとしているのですが、ある列に「33300G2」というデータがあります。
インポートのマクロを実行するとそのデータのみがインポートエラー(エラー内容は「データ型の変換エラー」)となってしまいます。
ちなみに、エラーが出る列は、「33300G2」以外全てが数字のみなのですが関係あるのでしょうか。
もし原因らしきものがわかればアドバイスよろしくお願いいたします。

Aベストアンサー

インポート定義をして下さい。
インポート→設定→データ型を変更して下さい。
何かあれば補足して下さい。
がんばれ

QACCESSのVBAでCSVを取込処理について

ACCESS初心者です。
ACCESSのVBAでCSV取込をしようとしていますが、
うまくいきません。
CSVとテーブルの項目の場所が違ったりオートナンバーが設定されていたりしているので、
そこのところが全くわかりません。
いろいろ調べて試しましたが、うまくいがず行き詰っています。
VBAでなくてもクエリやマクロといったやり方でもいいので、
教えてください。
-------------------------------------------------------------------
VBAプログラム
'処理実行確認画面
rc = MsgBox("処理を実行しますか?", vbOKCancel, "注文データ処理")
If rc = vbCancel Then
Exit Sub
End If

'[ファイルを開く]ダイアログボックスを作成
Set dlgOpen = Application.FileDialog(msoFileDialogOpen)

'ダイアログボックスの初期値をセット
dlgOpen.AllowMultiSelect = False
dlgOpen.Filters.Clear
dlgOpen.Filters.Add "CSVファイル", "*.csv"
dlgOpen.InitialFileName = CurrentProject.Path

'ダイアログボックス表示
retDialog = dlgOpen.Show

'[キャンセル]ボタン
If retDialog = 0 Then
Exit Sub

'[開く]ボタン
Else
'選択したファイル名を表示
Me!txtファイル名IN = dlgOpen.SelectedItems(1)
End If

Const ForRading = 1

strFilePath = txtファイル名IN

Set Con = CurrentProject.Connection
Rec.Open "order_list", Con, adOpenDynamic, adLockOptimistic


Open strFilePath For Input As #FNo
'ファイルの1行目の項目名部分を読み込む(何も処理しない)
Line Input #FNo, txtData

On Error GoTo ErrHndl
'エラーが発生した場合にデータのインポートをなかったこと(ロールバック)
'にするためにトランザクション処理として実行
Con.BeginTrans
'実際のデータ部分(2行目)からの処理
Do While Not EOF(FNo)
Line Input #FNo, txtData
Debug.Print txtData
Loop

Con.CommitTrans

Close #FNo

MsgBox ("処理が完了しました。")

Exit Sub

ErrHndl:
Close #FNo
Con.RollbackTrans
MsgBox "以下のエラーが発生したためロールバックしました。" & vbCrLf & _
Err.Description, vbCritical
----------------------------------------------------------------------------------------

ACCESS初心者です。
ACCESSのVBAでCSV取込をしようとしていますが、
うまくいきません。
CSVとテーブルの項目の場所が違ったりオートナンバーが設定されていたりしているので、
そこのところが全くわかりません。
いろいろ調べて試しましたが、うまくいがず行き詰っています。
VBAでなくてもクエリやマクロといったやり方でもいいので、
教えてください。
-------------------------------------------------------------------
VBAプログラム
'処理実行確認画面
rc = MsgBox("処理を実行します...続きを読む

Aベストアンサー

CSVファイルにタイトル行が有り、テーブルのフィールド名と同じ、
列数も同じ(オートナンバー型フィールドは除く)、
ならTransferTextメソッドでインポートはだめですか。
安全のためインポート定義を利用するべき
オートナンバー型フィールドは考えなくとも自動的に処理されます。
トランザクション処理が出来ないからNGか・・・。

インポート出来ないデータ型(数値に文字など)の場合は
インポートエラーテーブルが自動生成され記録されます。
テキスト型に255超の文字数の場合、超過分は黙って切り捨てられ
エラーは記録されません。

姑息な方法かもしれませんがインポート前にオートナンバーの最大値を控え
インポート処理後にエラーテーブルの有無・レコード数の増加をチェックし
変化が有れば削除クエリで元に戻す。
オートナンバーが大きく飛ぶので最適化で修正
Access VBA 自身を最適化 でGoogleとVBAサンプルもあるけど。。。

・・・
現状の方向だと
dim v() as variant,i as integer
v=split(txtData,",") '配列に格納
for i= lbound(v(i)) to ubound(v(i))
debug.print i,v(i) '添え字と値(タイトル)の確認
next

with rec
.addnew
!購入者氏名(漢字)= v(2)
!注文日時= cdate(v(0) ) 'Cdate 要らないかも?
・・のように対応する配列を指定
.update
end with
のようになるかと思います。
ただ、CSVファイルを、,カンマで分割して配列に入れているだけなので
ExcelでCSV出力した時のようなフォーマット
(位取り有りの数値にダブルクォートがついて、"1,100")
区切り以外でカンマが使われていると項目数・データとも崩れます。
Rollbackすることに。

CSVファイルにタイトル行が有り、テーブルのフィールド名と同じ、
列数も同じ(オートナンバー型フィールドは除く)、
ならTransferTextメソッドでインポートはだめですか。
安全のためインポート定義を利用するべき
オートナンバー型フィールドは考えなくとも自動的に処理されます。
トランザクション処理が出来ないからNGか・・・。

インポート出来ないデータ型(数値に文字など)の場合は
インポートエラーテーブルが自動生成され記録されます。
テキスト型に255超の文字数の場合、超過分は黙って切...続きを読む

Qマクロにてaccessへテキストファイルをインポートする方法

マクロを利用しaccessへテキストファイルをインポートしようとしているのですが、
どのHPを参照しても、
マクロを利用してのテキストインポートはできないみたいなことが書かれてます。
一度、CSVに落として実行するしか方法はないのでしょうか?

Aベストアンサー

1度、「ファイル」「外部データの取り込み」でテキストファイルを参照
左下の「設定」ボタンでフィールドの設定をして定義を保存します。

マクロにて「テキスト変換」を選び
[変換の種類]区切り記号付きインポート 又は 固定長インポート
[定 義 名]上記で保存した定義
[テーブル名]保存するテーブル
[ファイル名]テキストファイル名(パス付き)

これでできると思いますが...

QACCESSにCSVインポート時の文字化け

お世話になります。
あるCSVデータをアクセスの外部データの取り込み作業をする際、
例えば
レ003005 は Ś003005
レ003002 は ±003002
カ025002 は ¶025002
の様に文字化けをおこします。
なぜこのような文字化けが起こるのか、また対処法がおわかりの方、よろしくお願いします。
なおACCESS2000を使用しています。

Aベストアンサー

souta_nさん、こんにちは。

テキストインポートウィザードの最初の画面で、
左下に「設定」ボタンがないですか?

ここをクリックすると、
文字コードを設定できる画面に入れますので、
ここで適当な文字コードに設定してやってください。
(ShiftJISとかUnicodeとか。)

文字コードがわからないときは、
手当たり次第にやってみると、文字化けしないものが見つかると思います。

QAccessでcsvデータをインポートするマクロを作成したいのですが・・・

Accessでcsvデータをインポートするマクロを作成したのですが、貼付先のデータにはF1フィールドがありませんとでました。でF1フィールドを追加するとF2フィールドがありません。F2を追加するとF3フィールドが~。F3を追加するとF4フィールドが~。という具合にずっとでてしまいインポートできません。ご解答宜しくお願い致します。

Aベストアンサー

インポート先のテーブルは既存のものですか?
その場合は上記のメッセージが出ると思います。

方法1.手動でインポートで左下の「設定」をクリック
フィールド名と形式を選択して「保存」してください。
マクロにてインポートの定義名に先に保存した物を選択して実行にします。

方法2.マクロのインポートの前の行に「オブジェクトの削除」で
当該のテーブルを削除するようにしてください。

1の場合は形式が一定になり、クエリやフォームでの表示もスムーズにできます。
2の場合は、元のデータによって形式が毎回変わる可能性があります。

QAccessのマクロでCSVファイルをインポートする

Accessのマクロ・VBAにてCSVファイルを
インポートしたいのですが、うまくいきません。

DoCmd.TransferText acImportDelim, , "C:\Documents and Settings\yoshimi\My Documents\顧客マスタテーブル.csv", False
現在のコードです。

「オブジェクト'0.txt’が見つかりませんでした。
オブジェクトが存在していること、名前やパス名が正しいことを確認
してください。」
とエラーが表示されます。

過去ログを検索し、似たようなものを見つけ同じようにしたつもりです。
http://okweb.jp/kotaeru.php3?q=1691138
(回答のANo.1の定義の保存場所が分からずしていません)

どこがおかしいのか教えていただきたいです・・・

Aベストアンサー

インポート先(保存先)となるテーブルが指定されていないようです。

その分、カンマ(,)が1個少ないなっているために引数がずれて判断され、インポートするファイルが「C:\~顧客マスタテーブル.csv」ではなく、「0.txt」だと判断されているのではないかと思います。
(「False」がファイル名と解釈され(False=0)、テキストファイルと解釈されて拡張子「.txt」をつけてエラー表示された、と)

とりあえず、「Test」テーブルを作成し(フィールドは仮でF1,F2の2つでテキスト型)、「,"C:\~」の前に「,"Test"」を入れて実行してみて下さい。
(csvファイルが3列以上の構成であれば、「テーブル'Test'にはF3フィールドがありません」とのエラーが表示されるようになりると思いますので、適宜F3,F4,・・・と、必要な列数を追加して下さい:定義のかわりです)

QACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ

ACCESSで空白のデーターをクエリで判定/識別する方法を教えてください。
EXCELでは空白を""で判定/識別表していますがACCESSではどうなるのでしょうか。

下の例はフィールドに試験番号があればその番号を、空白なら”欠席”と表示しようとしています。
IIf(([試験番号]="空白の場合何を入れる?"),[試験番号],"欠席")

Aベストアンサー

もうひとつの書き方は
式1: IIf([試験番号] Is Not Null,[試験番号],"欠席")
第2、第3引数の、質問の順序にあわせるとこうなる。

QACCESS IIF関数 複数条件の設定について

 選択クエリにおいて、あるフィールド「 X」 のレコード数値が
 
  0<[X]<=50   であれば A 
  50<[X]<=100  であれば B 
  100<[X]<=150  であれば C

 と表記させるフィールド「Y」を追加したいと考えています。
 この場合、Yのフィールド設定で指定する数式についてご教授願います。

 一応、
  IIf(0<[X]<=50,"A","") Or IIf(50<[X]<=100,"B","") Or IIf(100<[X]<=150,"C","")

  としましたが、実行すると、Yの列がすべて「-1」と表記されてしまいます。

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

Aベストアンサー

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A", [X]<=100, "B", [X]<=150, "C", True, "")


なお、数学あるいは一般生活では確かに「0<[X]<=50」という表記をしますが、
Accessの関数などではこれだと正しい結果が得られません。
正しく認識させるためには、等号・不等号を挟んだ式は、「左辺」と「右辺」の
2つの要素からなる形にする必要があります。
(「0<[X]<=50」は「[X]>0 And [X]>=50」と分割してやる、と)

但し、今回のご質問のような『連続した範囲』であれば、前(左)で既出となる
式の要素で「[X]<=0」が「真(=-1)」とならなかった時点で、「[X]>0」が保証
されますので、上記のように、「[X]>0」を省略して「[X]<=50」だけを条件として
指定すればOk、ということになります。
(「0<[X]<=50」の次が「80<[X]<120」などのように、「50~80」が欠けた
 場合は、省略ができない、と)


【参考】
「0<[X]<=50」は、このままだと「0 < ([X]<=50)」という式と解釈されます。
この場合、「[X]<=50」は、「真(=-1)」か「偽(=0)」か「Null」のいずれかに
なります。
何にせよ、「0<[X]<=50」全体として「正(=-1)」となることがないため、
ご質問の式では、IIF関数は常に第3引数に指定された値「""」を返す
ことになります。

この結果、式全体としては「"" Or "" Or ""」という形となり、「0かNull」
以外なので、「真(=-1)」という値が返された、ということです。

なお、Nullについては、以前、他の方の質問につけた回答も、併せて参考までに:
http://oshiete.goo.ne.jp/qa/4850675.html

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A"...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報