[リストへもどる]
一括表示

投稿時間:2002/12/25(Wed) 11:54
投稿者名:Ken2
Eメール:
URL :
タイトル:
テーブルをExcelにコピーした時
今、データベース関係を勉強中です。
DAO(3.6)を使って取得したテーブルをExcelにコピーしているのですが
最初の行のデータがコピーされず、2行目からのコピーとなります。
最初の行からコピーするにはどうすればいいのでしょうか?
Webでも検索して調べて見たのですが、特にそのような記述が見当たらず
解らないので質問しました。よろしくお願いします。
取得方法とコピーは下記のようにしております。

Set rst = Mdb.OpenRecordset("テーブル名")

xlSheet.Cells(2, 1).CopyFromRecordset rst

投稿時間:2002/12/25(Wed) 13:01
投稿者名:Say
Eメール:
URL :
タイトル:
Re: テーブルをExcelにコピーした時
> 最初の行のデータがコピーされず、2行目からのコピーとなります。
> xlSheet.Cells(2, 1).CopyFromRecordset rst

Sheetの2行目からコピーされる、ということならそういう指定をしているからです。

xlSheet.Cells(1, 1).CopyFromRecordset rst

投稿時間:2002/12/25(Wed) 13:31
投稿者名:Ken2
Eメール:
URL :
タイトル:
Re^2: テーブルをExcelにコピーした時
> > 最初の行のデータがコピーされず、2行目からのコピーとなります。
> > xlSheet.Cells(2, 1).CopyFromRecordset rst
>
> Sheetの2行目からコピーされる、ということならそういう指定をしているからです。
>
> xlSheet.Cells(1, 1).CopyFromRecordset rst

早速のレスありがとうございます。私の説明が悪かったようです。
Excelのシートの2行目ではなく テーブルデータの2行目からと
いう事です。(1行目=フィルド名?(項目行))何分データベースの
勉強を始めてばかりなので、用語もろくに知らなくてすみません。

投稿時間:2002/12/25(Wed) 14:37
投稿者名:Say
Eメール:
URL :
タイトル:
Re^3: テーブルをExcelにコピーした時
たとえばAccessでテーブルを表示したとき、
一番上のフィールド名を書いてある部分は「行」ではありません。

フィールド名なら、例えばこんな感じで取得できます。
(xlSheetやrstの設定は済んでいるものとします。)

    Dim daoFld As DAO.Field
    Dim lngFldCnt As Long


    For Each daoFld In rst.Fields
        xlSheet.Cells(1, lngFldCnt).Value = daoFld.Name
        lngFldCnt = lngFldCnt + 1
    Next

投稿時間:2002/12/25(Wed) 14:47
投稿者名:Ken2
Eメール:
URL :
タイトル:
Re^4: テーブルをExcelにコピーした時
回答、ありがとうございます。やはりその方法しかないのですね。
Dataコントロールを使ってMSFlexGridに表示させた時には
フィールド名から表示したものですから、何か方法があるかな
と思ったのですが?
別々に取得する事にします。
ありがとうございました。