痔になりやすい生活習慣とは?

CSVファイルの2行目をフィールド、3行目以降をデータとして

Accessへインポートしたいのですが、CSVファイルの1行目を手動で削除せず、

そのまま2行目以降をインポートするいい方法はないですか?

A 回答 (1件)

こちらの MukkuMuku さんの回答が参考になるでしょう。



Access CSVファイルを2行目からインポートしたい
https://answers.microsoft.com/ja-jp/msoffice/for …
    • good
    • 0

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

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

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

QACCESS テーブルに2行目から取り込む方法

Access2013で、
指定の場所に置いてあるCSVファイルに対して、
「リンクテーブルを作成してソースデータにリンクする」設定にてテーブルを作成し、
このCSVファイルが更新されても最新の状態にてレポートを出力できるようにしています。

しかしこのCSVデータが作成される仕様により、1行目に余計な文字列、2行目に項目名、3行目以降にデータが入っているため、毎回CSVデータの1行目を削除する手作業が発生しています。
2行目以降をリンクするようにするとか、テーブルの3行目以降を取り出すクエリとか方法はありませんでしょうか?

Aベストアンサー

>2行目以降をリンクするようにするとか、
>テーブルの3行目以降を取り出すクエリとか方法はありませんでしょうか?
D:\ナントカ\コントカ\オリジナル.csv
に余計な一行があったとして下記のコードを標準モジュールに作成し

Sub LineCut1()
Dim fSo As Object
Dim buf As Variant
Dim f As Object
Set fSo = CreateObject("Scripting.FileSystemObject")

With fSo.GetFile("D:\ナントカ\コントカ\オリジナル.csv").OpenAsTextStream
.SkipLine
buf = .readall
.Close
End With

Set f = fSo.OpenTextFile("D:\ナントカ\コントカ\オリジナル_改.csv", 2, True)
f.Write buf
f.Close
End Sub

出来た"D:\ナントカ\コントカ\オリジナル_改.csv"をリンクテーブルとさせればよいのでは?

オリジナル.csv が更新される都度実行する必要がありますが
>2行目以降をリンクするようにするとか、
CSVのようなテキストファイルでは無いかと。
>テーブルの3行目以降を取り出すクエリとか方法はありませんでしょうか?
一旦取り込んでからだとデータ型の変更などが必要になりそうなので
厄介です。

オリジナル.csv の使われ方がイマイチ不明なのですが
上記のSub LineCut1() を、 Function LineCut1() に改名して
autoexec マクロに
プロシージャの実行に、LineCut1()
としても良いかもですね。

>2行目以降をリンクするようにするとか、
>テーブルの3行目以降を取り出すクエリとか方法はありませんでしょうか?
D:\ナントカ\コントカ\オリジナル.csv
に余計な一行があったとして下記のコードを標準モジュールに作成し

Sub LineCut1()
Dim fSo As Object
Dim buf As Variant
Dim f As Object
Set fSo = CreateObject("Scripting.FileSystemObject")

With fSo.GetFile("D:\ナントカ\コントカ\オリジナル.csv").OpenAsTextStream
.SkipLine
buf = .readall
.Close
...続きを読む

Qアクセス 正味の算出 フィールド1 オートID フィールド2 顧客No フィールド3 商品名 フィー

アクセス 正味の算出

フィールド1 オートID
フィールド2 顧客No
フィールド3 商品名
フィールド4 単価

このようなテーブル構成で、顧客Noでグループ化して、IDのカウントした結果が1、2となります。
その際、1の場合は1、2の場合は0.5と別フィールドに記載する方法を教えて下さい。

Aベストアンサー

>本当はIDのカウントが2以下なら1を3以上なら999(数値で0、1以外なら何でも良いです)

IIf([IDのカウントした結果のフィールド名]>=3,999,1)

Qアクセス フォーム テーブルを引用し、フォームを作成しました。 投入した結果がテーブルに上書きされま

アクセス フォーム

テーブルを引用し、フォームを作成しました。
投入した結果がテーブルに上書きされません。
設定方法を教えて下さい。
また、投入時は1か0を選択するプルダウンを作りたいのですが、どのように作るのでしょうか?

Aベストアンサー

テーブルの引用とのことですが、それはレコードソースに設定してあるということですか?
各テキストボックス等のコントロールソースも設定してありますか?
プロパティで確認してください。

レコードソース、コントロールソースが分からない場合は、ウィザードを使ってフォームを作りましょう。

Qvbsでは漢字の変数は使えないのでしょうか。

下記はエラーになります。
Option Explicit
Dim 氏名

氏名=InputBox("氏名を入力して下さい")
MsgBox(氏名)

ここで、氏名をnameに変更すると正しく実行します。
Option Explicit
Dim name

name=InputBox("氏名を入力して下さい")
MsgBox(name)

漢字の変数を使う方法は無いのでしょうか。

Aベストアンサー

もうお答えは出ているようですが、私からも回答します。

2byte 文字を変数にすると、

\kanjitest.vbs(2, 5)
「Microsoft VBScript コンパイル エラー: 文字が正しくありません。」

のエラーが出ます。
Unicode VBSにしても、やはりエラーが出ます。

もともと、String 型で認められる所以外では、2byte 文字は、ハングしますから、仕方がありません。VBAとは違いますから。
これを、HTA にして、Charset を、UTF-8 にしても、エラーは出ます。諦めることでしょうね。

QACCESS 指定のエクセルデータをテーブルに取り込む方法 VBA

ACCESS、VBA初心者です。おしえてください。
テーブルにエクセルファイルを指定して取り込みを行いたいです。
テーブルのフィールドのごとにエクセルファイルは並べてあります。
下記の式ではどの部分を修正すればよろしいでしょうか。

VBAにお詳しい方がいらっしゃいましたら教えてください。

sub sample()

Set xlApp = CreateObject("Excel.Application")
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "テーブル名", xlApp.GetOpenFilename("Microsoft Excelブック,*.xlsx")

Sub End

Aベストアンサー

Sub End

End Sub

xlApp.GetOpenFilename("Microsoft Excelブック,*.xlsx")を変数に入れて
ファイルが選択されたか確認し、選択されていればTransferSpreadsheetを実行

Qエクセルで条件付で合計を出したい

下のようなシートがあります。

【記録1】【記録2】【合計】
50     20
0       45
33      0
※【記録1】がA1、【記録2】がB1、【合計】がC1になります

条件としましては、【記録1】【記録2】のどちらかが
0の時は、【合計】は0となることです。
この時の合計を求めたいのでが
どのような数式にするとよいのでしょうか。

お願いします。

Aベストアンサー

IF関数を使って、条件に
 (記録1)×(記録2)≠0
を設定して
条件が満たされたら
 (記録1)+(記録2)
条件が満たされなかったら
 0
を返せばよいと思う。

同じことをSUMIF関数でもできる。

 =IF(A1*B1<>0,A1+B1,0)

みたいにね。

QAccessでサブフォーム側の値の総計を出す式について

現在Access2016で以下のようなフォームを作っております。
帳票形式のサブフォームを含むメインフォームでサブフォームにはDBテーブルから抽出した各種項目をテキストボックスに表示するようしてあります。
メインフォーム側にサブフォームで表示する「売上額」の値の合計値をテキストボックスに表示させようと思い、サブフォーム側に不可視のテキストボックス「合計総額」を作り、コントロールに

=Sum([売上額])

と入力。

メインフォーム側の総額を表示させたいテキストボックスに

=[サブフォーム]![合計総額]

と入力しメインフォーム側で総額を表示させるように作りました。

・・・が、しかしサブフォーム側の抽出で売上額が0件だった時、サブフォーム側に何も表示されなかった場合、総額の項目には#エラーと出ています。

個人的にはデータがないんだから、これでも問題ないと思い公開したら、使用しているユーザーからエラーが出たと問い合わせが多数来ているので、データ抽出が無かった時には0の表記にしたいです。

どなたか解決策を教えて下さい。

現在Access2016で以下のようなフォームを作っております。
帳票形式のサブフォームを含むメインフォームでサブフォームにはDBテーブルから抽出した各種項目をテキストボックスに表示するようしてあります。
メインフォーム側にサブフォームで表示する「売上額」の値の合計値をテキストボックスに表示させようと思い、サブフォーム側に不可視のテキストボックス「合計総額」を作り、コントロールに

=Sum([売上額])

と入力。

メインフォーム側の総額を表示させたいテキストボックスに

=[サブフォーム]...続きを読む

Aベストアンサー

エラーなら0、それ以外なら[サブフォーム]![合計総額]

=IIf(IsError([サブフォーム]![合計総額]),0,[サブフォーム]![合計総額])

Qフォームのテキストボックスの表示を変更する方法について

フォーム
  テキストボックス:日付を表示する「txt_日付」
  ボタンA:リンクテーブルAに切替える
  ボタンB:リンクテーブルBに切替える
  ボタンC:リンクテーブルCに切替える
    ※リンクテーブルA~Cは世代(データ基準日)が異なるだけで、テーブル名および項目名、
     項目の数は同じです(上記では便宜上、A、B,Cと言う名前を付けました)

フォームを開いた時、txt_日付にリンクテーブルAの日付を表示するよう、プロパティのレコードソースにリンクテーブルAを指定し、「txt_日付」のコントロールソースには、リンクテーブルAで保有する日付項目「作成基準日」を指定しています。

また、ボタンB,ボタンCのボタンを押下した時、リンクテーブルがB,Cへ切り替わります。

ここでやりたいことですが、

リンクテーブルBまたはCに切り替わった後、リンクテーブルBまたはCで保有する日付項目「作成基準日」の値を「txt_日付」に表示するようにしたいのです。
いろいろやってもうまくできません。

ご指導のほど、宜しくお願いします。

フォーム
  テキストボックス:日付を表示する「txt_日付」
  ボタンA:リンクテーブルAに切替える
  ボタンB:リンクテーブルBに切替える
  ボタンC:リンクテーブルCに切替える
    ※リンクテーブルA~Cは世代(データ基準日)が異なるだけで、テーブル名および項目名、
     項目の数は同じです(上記では便宜上、A、B,Cと言う名前を付けました)

フォームを開いた時、txt_日付にリンクテーブルAの日付を表示するよう、プロパティのレコードソースにリンクテーブルAを...続きを読む

Aベストアンサー

>例えば、現在のデータベースの状態は以下のとおりです。
>リンクテーブルA(2017/01/31)
>リンクテーブルB(2016/12/31)
>リンクテーブルB(2016/11/30)

最後はリンクテーブルCの間違いだとして
フォームのボタンA、B、Cをクリックすると
txt_日付に2017/01/31、2016/12/31、2016/11/30と表示したいとすると

リンクテーブルAには2017/01/01~2017/01/31のデータが1レコード以上入っているという前提で

Me!txt_日付 = DateSerial(Year(DMin("作成基準日","リンクテーブルA")),Month(DMin("作成基準日","リンクテーブルA")+1,1)-1

リンクテーブルAにある1レコードの日付から翌月1日を計算しその前日を出す(月末日)

Qデータベース一新

おはようございます。

会社のデータベースを一新しようと思います。
現在はMSアクセスで作ったもの(見積・請求書用)と、外注して当社用に作ってもらったもの(色々機能はあるけど今は日報管理くらいにしか使っていません)を使用しています。
これらを一本化したいのですが、何を使うのが良いでしょうか?
会社の規模は従業員20人くらいで、年商は4,5億です。データベースに同時アクセスする可能性のあるPCは5台です。もちろん、5台同時にアクセスするなんてまずありませんが、2台くらいなら頻繁にあると思います。

MSアクセスで作っても良いのですが、やはり共有化の問題と扱えるデータ数が気になります。
MSアクセスをクライアントにして他のデータベースソフトを使うという方法も聞いたことがあります。

何が一番良いと言うのは人それぞれとは思いますが、価格や作りやすさ等、アドバイスいただければと思います。

よろしくお願いします。

Aベストアンサー

無料の SQL Server 2016 Express Edition で十分だと思います。無料ですが商用利用も可能です。

SQL Server 2016 SP1 Express エディション
https://www.microsoft.com/ja-jp/sql-server/sql-server-editions-express

SQL Server 2016 のエディションとコンポーネント
https://msdn.microsoft.com/ja-jp/library/ms144275.aspx

QVBAエディタのコード画面で、カーソル位置の行番号表示の方法

当方のPCは、Win8.1(64ビット)、エクセル2013です。
最近まで、Codeの上にカーソルを置くと、
画面の上部に行番号が表示されていました。
MsgBox "行番号121のCode実行結果 = " & xy結果、
と言う様な使い方をしていました。
最近、この行番号が表示されなくなりました。
何か、設定を変えれば、元に戻せますでしょうか?
*****
(なお、WEB検索では、「VB6ideAddLineNumbersAddin.dll」があるようですが、
regsvr32で、」うまく登録できません。)

Aベストアンサー

下図のようなものでしょうか?
「表示」「ツールバー」の「標準」にチェックを入れてみてください。


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

人気Q&Aランキング