度々すみません。
どうしてもお伺いしたいのですが

csvファイルのインポートを
コマンドボタンで行いたいのですが
「外部テーブルのファーマットが正しくありません」と
エラーが出てしまいます。
下記に何が問題あるのでしょうか、教えて下さい。

ちなみにファイル名はhead.csvでシート名もheadです。
インポートしたいテーブル名はheadです。

テーブルの形式はすべてあわせてあります。
テーブルをカラにしてみたり
ヘッダー部分のみの状態でも同じエラーでした。

Private Sub コマンド3_Click()
On Error GoTo Err_コマンド3_Click

Dim stDocName As String

stDocName = "マクロ1"
DoCmd.TransferSpreadsheet acImport, , "head", "C:\My Documents\hea
d.csv", True, "head"

Exit_コマンド3_Click:
Exit Sub

Err_コマンド3_Click:
MsgBox Err.Description
Resume Exit_コマンド3_Click

End Sub
----------------------------------------
OSは、Windows 98
アプリケーションは、Access 2000 です
----------------------------------------

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

A 回答 (1件)

cvsはExcelから作成したものですか?


であれば、読み込みはは、cvsでなくExcelにしてください。

DoCmd.TransferSpreadsheet acImport, , "head", "C:\My Documents\hea
d.csv", True, "head"
とした場合は、Excel形式を想定しています。
(acImportの後ろのパラメータが 形式指定です。省略時はExcel形式です。Excelとか1-2-3形式とcvs形式などあります。詳しくはAccess VBAのヘルプを参照してください。)
    • good
    • 0
この回答へのお礼

ありがとうございました
いろいろと試してみて
TransferText acImportDelimでうまくインポートが
出来たのですが一点エラーが出てしまいます

フィールド型が違うとのエラーでインポートエラーになってしまいます
数値とアルファベットの混ざったナンバーなのでテキスト型にしているのですが
インポートしたときにどうしてか数値型に変わってしまいこのフィールドだけが
インポートされません。

どうすればいいのでしょうか?

On Error Resume Next
DoCmd.DeleteObject acTable, "head"
On Error GoTo 0

On Error Resume Next
DoCmd.DeleteObject acTable, "details"
On Error GoTo 0

DoCmd.TransferText acImportDelim, "", _
"user", "C:\My Documents\iモード受注\受注\user.csv", _
True, ""
DoCmd.TransferText acImportDelim, "", _
"head", "c:\My Documents\iモード受注\受注\head.csv", _
True, ""
DoCmd.TransferText acImportDelim, "", _
"details", "c:\My Documents\iモード受注\受注\details.csv", _
True, ""
End Sub

お礼日時:2001/08/28 12:40

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

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

QVBAで指定したパスが存在しなければ、アラートを表示させずにExit Subの処理をしたい

Sub s()
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate ("X:")
End Sub

上記のVBAを実行するとXドライブがなければ
「'file:///X:' が見つかりません。パスまたはインターネットアドレスが正しいかどうかを確認してください。」と表示されます。
指定したパスが存在しなければ、このメッセージを表示させずにExit Subの処理をするようにするにはどうすればよいのでしょうか?

使用OS:Windows XP
使用ソフト:Microsoft Excel 2003

ご存知の方がおられましたらご回答をよろしくお願いします。

Aベストアンサー

こんばんは。
インターネット共用となると、以下のコードでは中途半端になりますが、以下のように区分けは出来ます。


'---------------------------
  Dim fso As Object
  Dim objIE As Object
  Dim flg As Boolean
  Const mDrive As String = "C:"
  If InStr(1, mDrive, "HTTP://", vbTextCompare) = 0 Then
    Set fso = CreateObject("Scripting.FileSystemObject")
    flg = fso.DriveExists(mDrive)
    If flg Then
      Set objIE = CreateObject("InternetExplorer.Application")
      objIE.Navigate mDrive
    End If
    Set fso = Nothing
    Set objIE = Nothing
  End If
'---------------------------

こんばんは。
インターネット共用となると、以下のコードでは中途半端になりますが、以下のように区分けは出来ます。


'---------------------------
  Dim fso As Object
  Dim objIE As Object
  Dim flg As Boolean
  Const mDrive As String = "C:"
  If InStr(1, mDrive, "HTTP://", vbTextCompare) = 0 Then
    Set fso = CreateObject("Scripting.FileSystemObject")
    flg = fso.DriveExists(mDrive)
    If flg Then
      Set objIE = CreateObject("Inte...続きを読む

QVBA Private Sub Worksheet_Calculate()

「ユーザー定義関数」で計算されるセルがセルB2にある場合、シートモジュールの
Private Sub Worksheet_Calculate()で、他の再計算は無視し、そのユーザー定義関数が計算されたことを判断するためにはどのような記述をすればいいのでしょうか?

Aベストアンサー

こんにちは。

大分梃子摺っていらっしゃいますね。
今回のコードでシート名の変更を捕らえたければ
Calculateイベントではなく
ユーザー定義関数そのものでやったらどうですか。

間違いなくする為に、新しいブックで以下のコードをテストしてください。


簡単の為に、"sheet1"だけの変更に対応。

---------------------------------------------
(標準モジュール)


Public OldName As String 'パブリック変数


Function Sheetname(ByVal Target As Range) As String

 Application.Volatile
 Sheetname = Target.Parent.Name

 If OldName = "" Then
   OldName = Sheetname
 End If

 If OldName <> Sheetname Then
  MsgBox OldName & "が " & Sheetname & " に変更されました"
  OldName = Sheetname
  End If

End Function
---------------------------------------------

コードを書いたあと、Sheet1のA1に、=sheetname(A1) を入れておく


ようは、以前のシート名を保持しておき
ユーザー定義関数が再計算されるとき比較するだけです。

もちろん、Calculateイベントで同様のことをしてもOKですよね。

何回も言うようですが、このサンプルは、ユーザー定義関数の入っている、シート1つだけに対応です。

全てのシートに対応したい場合は、ちょっと考えてみてください。
以上です。
 

こんにちは。

大分梃子摺っていらっしゃいますね。
今回のコードでシート名の変更を捕らえたければ
Calculateイベントではなく
ユーザー定義関数そのものでやったらどうですか。

間違いなくする為に、新しいブックで以下のコードをテストしてください。


簡単の為に、"sheet1"だけの変更に対応。

---------------------------------------------
(標準モジュール)


Public OldName As String 'パブリック変数


Function Sheetname(ByVal Target As Range) As String

 Application...続きを読む

Qアクセスで複数テーブルをひとつにする方法 以下3つのテーブルがあります。 Aテーブル Bテーブル C

アクセスで複数テーブルをひとつにする方法

以下3つのテーブルがあります。
Aテーブル
Bテーブル
Cテーブル
共にフィールド数、フィールド名は共通です。
3つのテーブルのレコードをまとめてDテーブルを作る場合はどのように操作するのでしょうか?

Aベストアンサー

「ユニオンクエリ」について調べてください。

QCSVデータをピボットテーブルで集計?

こんばんは。
タイトルの通りなのですが 会社で各社員が日々勤務時間を入力する独自のソフトがあります。
それを CSVデータとして出して excelのピボットテーブルで集計して色々な形で分析していく・・・と
私にとっては????なことを担当業務の一つにさせられることになり戸惑っています。。
excelはある程度は使えますがv-lookupをたまに使う程度で初心者が少し進化したようなもので
CSVデータをピボットテーブルで集計というのは 難しいものでしょうか?
そもそもcsvデータというのもよくわからず あと1週間でピボットテーブルというのを
テキストを買ってきて 毎日家で 夜に練習しようと思うのですが 
間に合いそうなレベル(難易度)のものでしょうか?
どんな時に多く使うものなのかなど 色々何でも良いので教えて下さい(><)
お願いいたします

Aベストアンサー

課題としては2つですね。
1,日々勤務時間を入力する独自のソフトからcsvファイルをはき出させる

こちらは、そのソフトのファイル保存形式にcsv形式があるかどうかで手間が全然違いますね。でも普通、あるはずですから、まずそのソフトをよく調べてください。ファイル→保存→保存形式 というところで見つかります。要するに拡張子が○○○.csvとなります。
csvファイルというのは、まぁ、言ってみればテキストファイルみたいなものです。テキストファイルで保存すると、一太郎のファイルをWordで読んだり出来ますよね。それと同じ事で、独自のソフトの保存形式だとExcelでは読み込みが出来ないから、csv形式にしなさい、という意味です。
もちろんcsvはExcelでも読み込みが出来る(Excelのファイルをcsv形式で保存することも出来ます)ファイル形式です。

2.ピポットテーブルについて
私がピポットテーブルを全く知らない人に教える場合(Excelはある程度使える人なら)1時間で基本的な内容は教えることが出来ます。半日あればそれなりに使えるようになります。
その後は操作方法というよりも、むしろどのように分析をするかという分析方法の問題です。意味があるデータが出せるかどうか、というのは操作方法ではなくて、操作をする人の分析力の問題ですよね。まぁ、本を読んで勉強ということだともう少し時間がかかるかもしれませんが、それにしても1週間あれば十分すぎるくらいです。

課題としては2つですね。
1,日々勤務時間を入力する独自のソフトからcsvファイルをはき出させる

こちらは、そのソフトのファイル保存形式にcsv形式があるかどうかで手間が全然違いますね。でも普通、あるはずですから、まずそのソフトをよく調べてください。ファイル→保存→保存形式 というところで見つかります。要するに拡張子が○○○.csvとなります。
csvファイルというのは、まぁ、言ってみればテキストファイルみたいなものです。テキストファイルで保存すると、一太郎のファイルをWordで読んだり出来...続きを読む

QテーブルをCSV形式で保存できますか?

よろしくお願いします。
Access2000と2002 OSはWIN2000とXPです。

Accessで作ったテーブルをCSV形式で保存をしたいのですが、
エクスポートのところを見ても、CSV形式が無いため保存することが出来ません。

現在は、コピー、ペーストでEXCELに貼り付けて、保存をしているのですが、

できれば、フォームか何かで、ボタンを押すと、保存できるような感じに
していきたいのですが、無理でしょうか?(マクロであれば可能ですか?)

よろしくお願いします。

Aベストアンサー

 ちがっていたらすみません。私はアクセス2000を使っています。エクスポートに種類の一つにテキストファイル(*.txt,*.csv…)があると思うのですが。

 テーブルのデータの表形式の表示画面の【ファイル(F)】-【エクスポート(E)】で【テーブルをエクスポートの画面】が表示されたら【ファイルの種類(T)】のボックスの中に【テキストファイル(*.txt,*.csv…)】という表示があるので選択し適当な名前のファイル名を指定します。そのあと範囲を選択してないなら【すべて保存】ボタンを押し【区切り記号つき…】のチェックを入れ【次へ】-【カンマ】を選び【次へ】-【完了】で、私のPCは大丈夫のようです。ひょっとしたら機能の追加インストールが必要なのかもしれません。そのときは御容赦を。


人気Q&Aランキング

おすすめ情報