ADOを使ってExcel 用ファイルをMSHFlexGridに表示する (SNo.069) | |
使用コントロール | Button1 AxMSHFlexGrid1 |
その他条件 | WindowsXP(Vista) Visual Basic 2005(VB2008) ツールボックスを右クリックして、アイテムの追加と削除より、COMコンポーネント内のMicrosoft Hierarchical FlexGrid Control 6.0(SP4)(OLEDB) にチェックを入れて下さい。(VB6.0 が別途必要です) プロジェクト→参照の追加→COM→Microsoft ActiveX Data Objects *.* Library を参照して下さい |
★ ADOを使ってExcel 用ファイルをMSHFlexGridに表示する
Private Sub Button1_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button1.Click 'ADOを使ってExcel用ファイルをMSHFlexGridに表示する Dim CN As New ADODB.Connection Dim RS As New ADODB.Recordset Dim FileName, SheetNeme As String Dim strSQL As String AxMSHFlexGrid1.Clear() : System.Windows.Forms.Application.DoEvents() AxMSHFlexGrid1.FixedCols = 0 AxMSHFlexGrid1.FixedRows = 0 'なぜ必要かコメントアウトして見てネ 'データファイルの読込み処理 FileName = "..\..\Test01.xls" 'データファイルのフルパス SheetNeme = "Sheet1" 'Excelファイルのシート名 'データベースに接続するための情報を設定する CN.Provider = "Microsoft.Jet.OLEDB.4.0" CN.Properties("Extended Properties").Value = "Excel 8.0;HDR=NO;IMEX=1" CN.Open(FileName) 'Connection をオープン 'Recordsetオブジェクトのオープン strSQL = "Select * From [" & SheetNeme & "$]" RS.Open(strSQL, CN, ADODB.CursorTypeEnum.adOpenDynamic, _ ADODB.LockTypeEnum.adLockOptimistic, ADODB.CommandTypeEnum.adCmdText) AxMSHFlexGrid1.DataSource = RS 'MSHFlexGridにデータを代入 '接続終了処理 RS.Close() 'Recordset・Connection を閉じる CN.Close() System.Runtime.InteropServices.Marshal.ReleaseComObject(RS) RS = Nothing '参照を解放。 System.Runtime.InteropServices.Marshal.ReleaseComObject(CN) CN = Nothing AxMSHFlexGrid1.FixedRows = 1 'なぜ必要かコメントアウトして見てネ End Sub |
|
表示する *.xls ファイルはご用意下さい。ファイルのパスの設定とシート名はファイルに合せて変更して下さい。 元々は、VB6.0で使っていたものを.NET用に移植したものです。 |