CSVをMDBにインポートする際に、1行目をスキップする方法


ももきち  2004-10-22 19:12:26  No: 117133

皆様
どうぞ、ご教授ください。

CSVをMDBに取り込む処理を書いているのですが、
そのCSVの1行目をどうしてもスキップさせる必要性があります。
可能な限り"INSERT INTO "で取り込む方法は変えたくないので 
CSVの1行目だけを飛ばして処理を開始するようにしたいのですが
どのように記述すればいいものなのでしょうか。

どうかよろしくお願いいたします。

Public Sub Import(strDbPath As String, strTblName As String, strTxtPath As String)
    Dim ws As Workspace
    Dim db As Database
    Dim rs As Recordset
    Dim wsTxt As Workspace
    Dim dbTxt As Database
    Dim rsTbl As Recordset
    Dim strConnect As String
    Dim strSql As String
    Dim intRet As Integer

    On Error GoTo ErrHandler

    Set wsTxt = DBEngine.Workspaces(0)
    Set dbTxt = wsTxt.OpenDatabase(StripFileName(strTxtPath), 0, 0, "Text;")

    Set ws = DBEngine.Workspaces(0)
    Set db = ws.OpenDatabase(strDbPath, False, False)

    strConnect = "[Text;database=" & StripFileName(strTxtPath) & "]."
    'テーブルにテキストデータの内容を追加(見出しレコードは必要  ※2行目)
    strSql = "INSERT INTO " & strTblName & " SELECT * FROM " & strConnect & MakeFilename(strTxtPath)
    db.Execute strSql

    db.Close
    dbTxt.Close
    ws.Close
    wsTxt.Close
    Exit Sub
ErrHandler:
    intRet = MsgBox("<" & Err & ">" & Error(Err), vbOKOnly, "Import")
End Sub


特攻隊長まるるう  2004-10-22 19:34:21  No: 117134

素人でもすぐに思いつくのは一時ファイルを作成して
2行目以降のデータをコピーし、そのファイルを
読み込む。


Say  2004-10-22 21:39:59  No: 117135

HDRをYESにするとかNOにするとかいう話では?


ももきち  2004-10-23 00:30:54  No: 117136

みなさま

ありがとうございます。
HDR = NO はどこにいれればいいのでしょうか?
入れることができません。。

教えてさんでもうしわけございませんが
よろしくお願いいたします。


特攻隊長まるるう  2004-10-23 00:53:20  No: 117137

ここの過去ログ検索『HDR』でサンプルが引っ掛かりますが?


ももきち  2004-10-26 20:14:42  No: 117138

ありがとうございます。
HDR = NO は1行目を列見出しに設定しないというものであり、
確かに1行目は飛ばしたいのですが、2行目を列見出しにしたいので
適さないように思われます。
(列見出しが設定されない。)

他に方法はございますでしょうか??


魔界の仮面弁士  2004-10-27 03:59:17  No: 117139

> strConnect = "[Text;database=" & StripFileName(strTxtPath) & "]."

JetのText I-ISAMを使った手法では、データ行の読み飛ばしはできません。
インポート後、余計な行を削除するようにして見てください。

なお、列名については SCHEMA.INI にて指定可能です。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加