EXCELからSQL抽出するには?

解決


yCat  2005-10-28 03:51:08  No: 127037

yCatです。
過去にも同じなログがありましたが、若干SQLの書き方が異なったので
投稿しました。
関連する過去ログでは、全ての項目を抽出(*を使用)にしているのですが、
ある項目だけを抽出したい場合は、SQL文中にどのように記載したらよいのでしょうか。

↓プログラム
シート(R001_S1)のF1
Private Sub Form_Load()
    Dim dbExcel As Database
    Dim rsExcel As Recordset
    Dim strSQL As String
    Dim strMsg As String
    
    Set dbExcel = DBEngine.Workspaces(0).OpenDatabase_
("E:\R001.xls", False, False, "Excel 8.0;HDR=No;")

'---↓問題のSQL
'抽出したいデータは、3項目(列名はExcelのデフォルト名称)で
'条件として、F列が数値の10に該当し、かつF列とH列が等しいデータを
'抽出したい。
'シート名称は、「R001_S1」
'D列、F列、J列の各セルは数値で定義している。
    strSQL = "SELECT [D],[F],[J] FROM [R001_S1$] " & _
             "WHERE [F]=10 AND [F]=[H]"
'---↑

    Set rsExcel = dbExcel.OpenRecordset(strSQL)
    
    Do Until rsExcel.EOF
        strMsg = rsExcel.Fields(1) & " " & _
                 rsExcel.Fields(0) & " " & _
                 rsExcel.Fields(2)
                 
        rsExcel.MoveNext
    Loop
    
    rsExcel.Close
    dbExcel.Close
    Set rsExcel = Nothing
    Set dbExcel = Nothing
    
    MsgBox strMsg

End Sub

↓過去ログ
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200207/02070027.txt

以上  宜しくお願いします。


yCat  2005-10-28 03:53:04  No: 127038

投稿した内容に誤った文がありました。
「↓プログラム」の次の行に「シート(R001_S1)のF1」とありますが、
この文は無視して下さい。


もげ  2005-10-28 04:17:55  No: 127039

この場合(DAOでHDR=NO)は、
F1,F2,F3....
となったかと。


yCat  2005-10-28 04:46:46  No: 127040

もげさん、ありがとうございます。

以下の過去ログに答えが記載されてました。
http://madia.world.coocan.jp/vb/vb_bbs/200309_03090083.html

とりあえず、DBオープン時のHDR=YESにし、
もともとのExcelシートの先頭行に見出しを入れました。
これにより、見出しを列名としてSQLを組んだところ、ちゃんとデータが
取れました!!

ありがとうございました。


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




  


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